Обработка латексных обратных косых черт в xtable - PullRequest
27 голосов
/ 04 января 2012

У меня есть таблица со следующим столбцом:

 mytable <- data.frame(beta_0 = c(1,2,3)

Что я хочу сделать, это вывести таблицу с заголовком столбца в латексной разметке, например, $\beta_0$

ОднакоЯ не могу понять, как вывести «$ \ beta_0 $», используя print.xtable:

colnames(mytable) <- "$\beta_0$"
library(xtable)
print(xtable(mytable), include.rownames = F)

возвращает заголовок столбца

\eta\_0\$

вместо

$\beta_0$

Я предполагаю, что ответом является аргумент "sanitize.colnames.function" для print.xtable, но для меня не очевидно, как это использовать, и ?print.xtable не дает примеров.

В частности, я хотел бы вывести латексную таблицу, например:

\begin{table}[ht]
 \begin{center}
  \begin{tabular}{r}
    \hline
    $\beta_0$ \\ 
    \hline
    1.00 \\ 
    2.00 \\ 
    3.00 \\ 
    \hline
  \end{tabular}
 \end{center}
\end{table}

1 Ответ

30 голосов
/ 04 января 2012

Два вопроса здесь;Во-первых, вам нужен двойной обратный слеш, так как в противном случае он обрабатывает его как управляющую последовательность.Во-вторых, по умолчанию xtable очищает текст, чтобы он не нарушал LaTeX.Используйте один из параметров sanitize. для управления этим;чтобы не проводить санитарную обработку, передайте ей функцию идентификации.

colnames(mytable) <- "$\\beta_0$"
print(xtable(mytable), include.rownames = F, sanitize.colnames.function = identity)
...