8

我编写了一些包装第三方二进制文件的自定义 R 代码。该二进制文件的功能之一是生成带有图形和一些文本的 LaTeX 文档。我的代码的功能之一是解析该文档并返回该图的 LaTeX 代码。

目标是将我的 R 代码嵌入到 Rnw 文档中。运行 Sweave 时,我希望我的代码使用第三方二进制文件生成文档,然后提取图形的 LaTeX 代码并将其放入 Sweave 的 .tex 输出中。然后,当我对该输出运行 Latex 时,由第三方二进制文件生成的图形应该会自动且格式正确地出现在我的报告中。

相反,LaTeX 代码是这样打印出来的:

[1] " %\\begin{landscape}"
[1] " \\begin{center}"
[1] "\\psset{linecolor=black,tnsep=2pt,tnheight=0cm,treesep=.3cm,levelsep=40pt,radius[1] "% \\def\\psedge#1#2{\\ncangle{#2}{#1}}"
[1] "% \\pstree[treemode=R]"
[1] " \\pstree{\\Tcircle{ 1 }~[tnpos=l]{\\shortstack[r]{nwsprec\\\\$\\leq$ 1.93}}}{"

等等...

有没有办法让 Sweave 将 R 的输出视为 LaTeX 代码?

提前致谢。-韦斯利

4

1 回答 1

10

我想到了!Sweave 代码需要如下所示:

<<echo=False, results=tex, include=True>>=
...R code goes here...
@

其中选项results=tex是告诉 Sweave 将 R 的输出解释为 LaTeX 代码的关键更改。

为了摆脱引号和行号,我需要cat在 R 中使用 command 而不是print. 具体来说,我print(line)改为cat( paste(line, "\n", sep='') ).

于 2011-06-15T15:06:01.410 回答