使用 concordance=TRUE 在命令行中运行 Sweave

11

我有一个文档,使用 LaTeX Beamer 模板,并在实际文档的开头传递此代码

\usepackage{Sweave}
\begin{document}
\SweaveOpts{concordance=TRUE}

使用RStudio(0.97.248)和R-2.15.2可以成功编译文档。完成文档后,为了确保可重现性,我喜欢从cmd文件中生成整个分析过程(并使用ghostscript压缩PDF)。 相关部分如下:

R CMD Sweave MyDoc
pdflatex MyDoc
bibtex MyDoc
pdflatex MyDoc
pdflatex MyDoc

这会导致错误信息:

 ! LaTeX Error: File `MyDoc-concordance.tex' not found.

这表明Sweave并没有从命令行生成协调表。我找不到命令行开关,我的谷歌搜索也没有帮助...我非常感谢任何指点...


一开始我以为只需要运行命令 R CMD Sweave MyDoc.Rnw --options=concordance=TRUE 就可以了,但事实并非如此。我无法找到在命令行中创建 concordance 文件的方法。有人知道怎么做吗? - FvD
你尝试过运行 pdflatex --shell-escape MyDoc 吗? - Sebastian
最近我一直在使用RStudio,同时也在使用shell脚本进行构建。Yihui Xie建议我使用\begin document %\VignetteEngine{knitr::knitr}而不是\SweaveOpt行。我的脚本现在可以正常工作了。 - jrminter
对于格式化我很抱歉,我的Markdown换行尝试失败了,并且它们限制了尝试的时间。 - jrminter
1个回答

4
通常情况下,当在命令行上解析首次在RStudio中创建的.Rnw文件时,您会遇到此问题。 RStudio Sweave模板在.Rnw文件中默认使用\SweaveOpts{concordance=TRUE}选项。
这似乎是Sweave存在的一个问题,没有得到很多关注。偶尔我会在命令行上遇到这个问题,唯一的解决方法是设置:
\SweaveOpts{concordance=FALSE} 

在文件本身中,删除所有临时的LaTeX代码,然后再次运行R CMD Sweave以创建一个新的.tex文件。生成的文件将适用于pdflatexxelatex
显然无法向Sweave传递有关词汇表文件的请求(我尝试了在注释中提到的R CMD Sweave MyDoc.Rnw --options=concordance=TRUE)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接