我正在循环一个子.Rnw
文件,以便我可以重复不同物种的情节。不幸的是,knitr(我认为)的序言在每个循环的开头重复,因此.pdf
将无法编译。如果我手动删除.tex
文件中重复的前导码,一切都很好。我有一种感觉,我错过了父母和孩子之间的一些联系,但无法找到确切的位置。我正在使用R-studio和下面列出的文件。
main.Rnw
:
\documentclass{article}
\begin{document}
<<>>=
some R stuff
@
<<runall, include =FALSE>>=
out<-c()
for(species in c('RH', "GU", "RA", "KI")){
out<- c(out, knit_child('spsummary.Rnw')
}
@
\Sexpr{paste(out, collapse='n')}
\end{document}
子文档(spsummary.Rnw
)在每个物种上循环:
<<>>=
set_parent("main.Rnw")
@
<<>>=
more R stuff
@
\begin{table}
...
\end{table}
\clearpage
\newpage
答案 0 :(得分:0)
您可以从子文档中删除set_parent
,因为您不想独立编译子项。请参阅help:
子文档通常不完整 - 缺少的部分是LaTeX 序言以及
\begin{document}
和\end{document}
。有时我们 可能想要编写这些子文档,就好像它们已经完成一样 LaTeX文档。我们唯一需要做的就是提取一个 来自父文档的适当序言并将其添加到此子项 文献。函数set_parent()
启用此功能; [...] 然后 子文档的行为就像它有一个序言
答案 1 :(得分:0)
我终于回答了我自己的问题。
这是一个缺少反斜杠的简单案例。
父文档(main)的最后一行应该是:
\Sexpr{paste(out, collapse='\n')}
在'n'之前加上反斜杠