如果我在数据框中存储了一个表:
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}