我正在尝试为Sublime Text 2创建knitr/Sweave的构建系统。我目前的简单(且有效)的构建系统如下:
{
"cmd": ["bash", "-c", "/usr/bin/R64 CMD Sweave '${file_name}' && pdflatex '${file_base_name}.tex' -interaction=nonstopmode -synctex=1 %S -f -pdf && /Applications/Skim.app/Contents/MacOS/Skim '${file_base_name}.pdf'"],
"path": "$PATH:/usr/texbin:/usr/local/bin",
"selector": "text.tex.latex.sweave","shell":false,
"file_regex": "^(...*?):([0-9]+): ([0-9]*)([^\\.]+)"
}
(text.text.latex.sweave
上下文在 Sweave Textmate 包中定义,该包在 Sublime Text 中基本可用)
构建系统接受一个 .Rnw
文件,将其转换为 TeX,然后对其运行 pdflatex
。这个构建系统能够工作,但它在打开 Skim 方面有着相当的局限性(它仅仅打开 PDF 文件)。
LaTeXTools Sublime Text 插件则更加稳健,并在高亮修改的行并提供 Skim 的神奇反向搜索的同时打开/刷新 Skim。
我不想重写 LaTeXTools 的构建系统,特别是因为它使用了单独的 Python 脚本来完成大部分的工作(以及 Skim 的魔力)。然而,我非常希望能够使用它来构建从 Sweave 生成的 TeX 文件。
理想情况下,我希望能够嵌套一个构建系统,即将一个 .Rnw
文件转换为 TeX,然后立即运行已经存在的 LaTeXTools 构建系统。伪代码如下:
{
[CONVERT RNW TO ${file_name}.tex && RUN THE LATEXTOOLS BUILD SYSTEM ON ${file_name}.tex]
}
能否从另一个构建系统内部访问构建系统(或者从bash访问构建系统)?
knitr
部分,也许可以这样做:"cmd": ["Rscript", "-e", "knitr::knit('${file_name}')"]
,其余的工作就是你的问题了:如何调用LaTeXTools?我不使用Sublime Text,所以我不知道... - Yihui Xie