我正在使用RStudio 0.98.501和MacTex 2013来运行分析并编写手稿。在我的设置中,我使用了一个定义LaTeX模板的master.rnw
文件。此文件输入协作者贡献的一些手稿.tex文件(实际上是work in Word and I convert to .tex,但这并不重要)。
为了在master.rnw
中保持清洁,我在child .rnw
file中对分析进行编码,并在同一子文件中编写我的分析原稿文本。在此子.rnw
文件中的R代码块中定义对象很容易,例如result <- 1+2
,并在子.rnw
文本中引用此对象,例如{{ 1}}。
我遇到了一种情况,我希望在运行分析子\Sexpr{result}
文件之前引用分析对象 - 在单独的方法部分.rnw
中报告基本N = 100 - 所以我尝试了两种方法在输入引用对象的.tex
文件之前,从master.rnw
文件运行我的基本分析:(a)运行提供methods.tex
文件的子文件,以及(b)获取{{} { 1}}来自.R
文件中的代码块的文件。我认为结果应该存在差异。在我的情况下,没有:他们都失败了。
在我包含的.R
文件中引用时,LaTeX无法识别R对象。当然,当我从master.rnw
文件中引用R对象时它会很好。有没有办法在.tex
文件中使用master.rnw
并让LaTeX获取R对象?
我创建了一个最小的示例,并将文件上传到GitHub,如果有人想破解它的话。
\Sexpr
答案 0 :(得分:2)
knit
不会解析tex命令,因此methods.tex
不会在knit
时读出{。}}。
要解决此问题,请尝试以下方法:
<<knitr, include=FALSE>>=
library(knitr)
opts_knit$set(self.contained=FALSE)
file.copy("methods.tex", "methods.rnw")
@
\documentclass{article}
\begin{document}
<<pre-results1, child='child.rnw', include=FALSE>>=
@
<<pre-results2>>=
source("codeB.R")
@
% Methods section from rnw file
<<child="methods.rnw">>=
@
\end{document}