6

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

4

1 回答 1

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

那有意义吗?基本上,您正在purling、stitching purled 代码、knitting 原始文档,然后编译包含knitting 和purling 的结果 LaTeX(“example.tex”)。一切都应该很好地(并且一致地)格式化。

于 2013-08-22T15:55:57.977 回答