pdflatex和shell脚本

时间:2010-12-22 14:29:27

标签: macos pdflatex launchd

我需要注意osx中的特定目录更改,以便查看文件是否已上传,当文件在dir中时我想运行一个非常基本的脚本(只需使用pdflatex'编译'.tex文件),到目前为止我做了什么:

1)启动监控我的目录,这是我的test.plist文件

<plist version="1.0">
<dict>
    <key>Label</key>
 <string>DirMonitor</string>
 <key>ProgramArguments</key>
 <array>
  <string>/Users/Caffeina/Desktop/test.sh</string>
  <string>path modified</string>
 </array>
 <key>QueueDirectories</key>
 <array>
  <string>/Users/Caffeina/Desktop/test_dir/</string>
 </array>
</dict>
</plist>

2)test.sh:

#!/bin/sh
/usr/texbin/pdflatex -interaction=nonstopmode /Users/Caffeina/Desktop/test_dir/test.tex

3)启动显示器:

launchctl load /Users/Caffeina/Library/LaunchAgents/test.plist 

4)测试一切是否正常工作我在受监视的目录中移动文件....但没有任何反应。查看控制台输出我可以重置此错误:

logger[4155]    This is pdfTeX, Version 3.1415926-1.40.11 (TeX Live 2010)
logger[4155]    restricted \write18 enabled.
logger[4155]    entering extended mode
logger[4155]    ! I can't write on file `test.log'.
logger[4155]    (Press Enter to retry, or Control-D to exit; default file extension is `.log')
logger[4155]    Please type another transcript file name
logger[4155]    ! Emergency stop
logger[4155]    !  ==> Fatal error occurred, no output PDF file produced!
    com.apple.launchd.peruser.501[127]  (logger[4155]) Exited with exit code: 1

我不明白为什么这个错误,任何想法?

2 个答案:

答案 0 :(得分:2)

工作目录不正确。我猜工作目录是launchd所在的目录(您可以通过向shell脚本添加'pwd'命令来测试它)。您应该更改它,或者您可以修改pdflatex命令:

/usr/texbin/pdflatex -interaction=nonstopmode -output-directory=/tmp /Users/Caffeina/Desktop/test_dir/test.tex

我添加了-output-directory=/tmp,我现在假设您具有对/ tmp的读写权限。如果这样做,问题在于写权限。然后你可以四处游戏以获得正确的输出目录。您可以通过launchd或shell脚本中的'cd myDir'来完成。

答案 1 :(得分:0)

似乎你没有权限在`test.log'文件上写。