将所有 xtables 提取到 r 中的一个 .tex 文件中

将所有 xtables 提取到 r 中的一个 .tex 文件中

我的 R 脚本中有两个 xtables,我想将它们提取到相同的 .tex 文件中,然后我可以使用 \newcommand 将它们调用到我的 main.tex 中

print(xtable(head(mtcars), digits =2, caption = "Mtcars1", label="tab:tbl1", scalebox="0.8"), file = 'tabl1.tex')
print(xtable(tail(mtcars), digits =2, caption = "Mtcars2", label="tab:tbl2", scalebox="0.8"), file = 'tabl2.tex')

提前谢谢了

答案1

要包含,tabl1.tex您只需\input{tabl1}在 中使用main.tex。但此外,您根本不需要运行 R 脚本将表导出到两个 tex 文件,然后将这些文件包含在主文件中并运行 latex 编译器。

一个文件和一次(显然)运行就足够了:knitr如果尚未安装,请从 R 安装该包。调用下面的文件<whatever>.Rnw(请注意,扩展名不是 .tex!),使用 Rstudio 加载它,然后单击“编译 PDF”底部。瞧。

\documentclass{article}
\begin{document}
<<echo=F,results='asis'>>=
library(xtable)
print(xtable(head(mtcars), digits =2, caption = "Mtcars1", label="tab:tbl1", scalebox="0.8"), file = 'tabl1.tex')
print(xtable(tail(mtcars), digits =2, caption = "Mtcars2", label="tab:tbl2", scalebox="0.8"), file = 'tabl2.tex')
xtable(head(mtcars), digits =2, caption = "Mtcars3", label="tab:tbl3", scalebox="0.8")
xtable(tail(mtcars), digits =2, caption = "Mtcars4", label="tab:tbl4", scalebox="0.8")
@
\input{tabl1}
\input{tabl2}
\end{document}

正如您所看到的,表 1 和 2 包含在您要求的外部文件中,尽管它们是从同一文档创建的,但其他两个表是在没有打印外部文件中的表的情况下创建的。简单地说,R 代码会自动被输出替换。在后台,这是由 完成的knitr,它将文件导出.Rnw到最终像往常一样编译的真实.tex文件。如果您对此方法感兴趣,只需搜索knitr

要将多个输出附加到同一个文件,可以使用append一些 R 函数的选项,例如sink()

\documentclass{article}
\begin{document}
<<echo=F,results='asis'>>=
library(xtable) 
sink('tables.tex')
xtable(head(mtcars), digits =2, caption = "Mtcars1", label="tab:tbl1", scalebox="0.8")
sink()

sink('tables.tex', append=TRUE)
xtable(tail(mtcars), digits =2, caption = "Mtcars2", label="tab:tbl2", scalebox="0.8")
sink()
@
\input{tables}
\end{document}

但请注意,为了在本文档中使用这些表,生成外部文件是完全没有必要的。

相关内容