我正在尝试使用以下命令在计时器上编译knitr脚本启动控制(一个 launchd GUI,用于在 OSX 上调度类似 cron 的作业)。
我有一个 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 输出。但是,当 launchd 运行 Dispatcher.R 脚本时,我收到此错误:
texi2dvi 中的错误(文件 = 文件,pdf = TRUE,干净 = 干净,安静 = 安静,:
在“my_script.tex”上运行“texi2dvi”失败。
执行停止
.tex 文件已生成,但无法编译。我会说这是我的 LaTeX 安装路径的问题,但因为它可以使用knit2pdf()
我不知道。可能是什么问题?
仍在致力于此。更新:
要使用 LaunchControl 运行 .Rnw 文件进行任务调度,请在同一目录中创建以下文件。然后,在调度程序中运行 *.sh 脚本。瞧!我在原来的帖子中遇到的问题是 LaunchControl 不(至少默认情况下)读取 ~/.bash_profile,因此将 PATH 变量添加到 .sh 脚本中可以解决此问题。
1) 你的 *.Rnw 脚本
这是任何knitr
您可以从 RStudio 毫无问题地编译该脚本。
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
此解决方案适用于 R 版本 3.3.2 (2016-10-31) 上的 OSX Yosemite 10.10.5。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)