我的 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}
但请注意,为了在本文档中使用这些表,生成外部文件是完全没有必要的。