运行 带有 LaunchControl 的 .Rnw 脚本时出现 texi2dvi() 错误

texi2dvi() error when running a .Rnw script with LaunchControl

我正在尝试使用 LaunchControl(用于在 OSX 上安排类似 cron 的作业的已启动 GUI)在计时器上编译一个 knitr 脚本。

我有一个 dispatcher.R 脚本可以执行此操作:

#!/Library/Frameworks/R.framework/Resources/Rscript
library("knitr")
setwd("~/somedirectory")
knit2pdf("my_script.Rnw", output= "my_script.tex")

当我在 RStudio 中以交互方式 运行 时,my_script.Rnw 效果很好。我得到了所需的 PDF 输出。但是,当启动 运行s dispatcher.R 脚本时,我收到此错误:

Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet, : Running 'texi2dvi' on 'my_script.tex' failed. Execution halted

生成了 .tex 文件,但没有编译。我会说这是我的 LaTeX 安装路径的问题,但由于它使用 knit2pdf() 我不确定。可能是什么问题?


仍在努力。更新:

要运行一个使用LaunchControl进行任务调度的.Rnw文件,在同一目录下创建以下文件。然后,运行 调度程序中的 *.sh 脚本。瞧!我在原来的 post 中遇到的问题是 LaunchControl 不(至少默认情况下)读取 ~/.bash_profile,因此将 PATH 变量添加到 .sh 脚本中可以解决这个问题。

1) 你的 *.Rnw 脚本

这是您可以从 RStudio 毫无问题地编译的任何 knitr 脚本。

2) *.R 脚本

#!/Library/Frameworks/R.framework/Resources/Rscript
library("knitr")
setwd("~/some_directory")
knit2pdf("yourscript.Rnw", output = "yourscript.tex")

3) *.sh 脚本

确保您的 LaTeX 安装有 PATH 变量。

#! /bin/bash 

PATH="/usr/texbin:${PATH}"
export PATH

Rscript yourscript_dispatcher.R

此解决方案适用于 OSX Yosemite 10.10.5 on R version 3.3.2 (2016-10-31)。