我写了一些包含第三方二进制文件的自定义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}}}{"
Run Code Online (Sandbox Code Playgroud)
等等...
有没有办法让Sweave将R的输出视为LaTeX代码?
提前致谢.-Wesley
我想到了!Sweave代码需要如下所示:
<<echo=False, results=tex, include=True>>=
...R code goes here...
@
Run Code Online (Sandbox Code Playgroud)
选项results=tex是关键变化,告诉Sweave将R的输出解释为LaTeX代码.
为了摆脱引号和行号,我需要cat在R中使用命令而不是print.具体来说,我改print(line)到cat( paste(line, "\n", sep='') ).