使用knitr在附录中显示代码

时间:2013-08-22 07:04:03

标签: r knitr

我有一个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中的代码?

1 个答案:

答案 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")

这有意义吗?基本上,您是purlstitch purl ed代码,knit原始文档,然后编译生成的LaTeX(“example.tex”)其中包括knitpurl。应该很好地(并且始终如一)地格式化所有内容。