我有一个Rnw文件(大文件),我想显示附录中使用的所有代码。
在一些knitr示例(https://github.com/yihui/knitr-examples/blob/master/073-code-appendix.Rnw,也是一个好的MWE)中建议使用这样的代码块:
<<Rcode, eval=FALSE, ref.label=all_labels()[-1],echo=TRUE, cache=FALSE>>=
@
除了所有代码块相互合并且没有标记之外,这种方法很好。
另一方面,如果我运行purl(myfile.Rnw),它会标记代码块并将它们分成两行,这样可以更容易阅读。
有没有办法在报告附录中使用第二种方法自动列出代码?我知道我可以有一个代码块来运行purl来生成myfile.R作为我报告的一部分,但是如何在我的附录中显示myfile.R中的代码?
答案 0 :(得分:3)
这是一个示例.Rnw文件(称为“example.rnw”):
\documentclass{article}
\begin{document}
<<a>>=
x <- 1:10
x
@
<<b>>=
y <- 10:1
y
@
<<c>>=
z <- 1:5
z
@
\clearpage
\input{example-purl.tex}
\end{document}
如果您在工作目录中创建一个名为“template.rnw”的文件,该文件只包含:
<<%sCHUNK_LABEL_HERE, eval=FALSE>>=
@
然后,你运行:
stitch(purl("example.rnw",output="example-purl.r"),template="template.rnw")
knit("example.rnw")
这有意义吗?基本上,您是purl
,stitch
purl
ed代码,knit
原始文档,然后编译生成的LaTeX(“example.tex”)其中包括knit
和purl
。应该很好地(并且始终如一)地格式化所有内容。