добавление \ label {} в вывод латекса kable kableExtra - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь создать таблицу в латексном формате R с параметром \ label {}.

Что-то похожее на

library(tidyverse)
library(knitr)
library(kableExtra)

data_frame(a = 1:3, b = 2:4) %>% 
  kable(align = 'c', format = 'latex') %>% 
  kable_styling(full_width = FALSE)

результирующий вывод ниже, но я бы хотел добавить параметр \ label {label_value} в таблицу латекса с помощью label_value, который я могу определить

\begin{table}[H]
\centering
\begin{tabular}{c|c}
\hline
a & b\\
\hline
1 & 2\\
\hline
2 & 3\\
\hline
3 & 4\\
\hline
\end{tabular}
\end{table}

Я пытаюсь автоматически создать таблицы в R, которые я могу сохранить и затем включить в латексный документ

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Вы можете использовать knitr::opts_current для управления автоматической меткой, созданной с подписью:

> library(knitr)
> library(kableExtra)
> opts_current$set(label = "hello")
> data.frame(a = 1:3, b = 2:4) %>% 
+     kable(align = 'c', format = 'latex', 
+           caption = "Table caption") %>% 
+     kable_styling(full_width = FALSE)
\begin{table}

\caption{\label{tab:hello}Table caption}
\centering
\begin{tabular}[t]{c|c}
\hline
a & b\\
\hline
1 & 2\\
\hline
2 & 3\\
\hline
3 & 4\\
\hline
\end{tabular}
\end{table}
0 голосов
/ 08 января 2019

Если вы добавите в вызов подпись к kable, вы автоматически получите метку на основе имени, которое вы дадите коду кода.
Если вы запускаете его на верхнем уровне, как в вашем примере, это немного неуклюже: вам нужно поместить ярлык в заголовок, и вы получите два ярлыка: ваш и автоматически сгенерированный бесполезный. Например,

library(tidyverse)
library(knitr)
library(kableExtra)

data_frame(a = 1:3, b = 2:4) %>% 
  kable(align = 'c', format = 'latex', 
       caption = "Table caption \\label{tab:example}") %>% 
  kable_styling(full_width = FALSE)

, который производит

\begin{table}[t]

\caption{\label{tab:}Table caption \label{tab:example}}
\centering
\begin{tabular}{c|c}
\hline
a & b\\
\hline
1 & 2\\
\hline
2 & 3\\
\hline
3 & 4\\
\hline
\end{tabular}
\end{table}

Я не уверен, но я ожидаю, что в некоторых случаях вам придется вручную редактировать автоматически сгенерированный ярлык \label{tab:}. Так что используйте knitr или R-markdown и избегайте проблемы.

...