是否可以在 xtable 中使用 cite?

是否可以在 xtable 中使用 cite?

如果我在数据框中存储了一个表:

library(xtable)
tbl <- data.frame(Name=c("A", "B"),Source=c("\\cite{a}", "\\cite{b}"))
tab <- xtable(tbl)
print(tab)

我该如何制作一个 tex 文件,用 bib 引用替换 \cite{a}?最终输出将类似于:

Name Source
A    [1]
B    [2]

不幸的是,knitr 默认用 替换反斜杠$\backslash$。 是否可以防止这种行为?

答案1

在函数中print.xtable,有不同的sanitize函数可以在表格中添加标记。你可以看看部分4.1 表格标记在里面xtable 画廊晕影 ( vignette("xtableGallery"))

对于.Rmd文档,此代码有效:

---
output: pdf_document
---

```{r, results='asis'}
library(xtable)
tbl <- data.frame(Name=c("A", "B"), Source = c("\\cite{a}", "\\cite{b}"))
xtab <- xtable(tbl)
print(xtab, sanitize.text.function = function(x) {x})
```

输出

\begin{table}[ht]
\centering
\begin{tabular}{rll}
  \hline
 & Name & Source \\ 
  \hline
 1 & A & \cite{a} \\ 
 2 & B & \cite{b} \\ 
  \hline
\end{tabular}
\end{table}

相关内容