我正在尝试对存储在 ~/path/template.tex 中的特定文件运行 pdflatex,现在我还想让输出位于同一路径中。请注意,我目前正在另一条路径上工作(不是根路径)。
所以我当前在目录 ~/workspace/ 中并发出以下命令:
pdflatex -output-directory=~/path/ ~/path/template.tex
但是这给了我以下错误:
! I can't write on file `template.log'.
(Press Enter to retry, or Control-D to exit; default file extension is `.log')
Please type another transcript file name:
! Emergency stop
! ==> Fatal error occurred, no output PDF file produced!
有人知道如何解决这个问题吗?
我看到有人写道,这可能是因为另一个进程正在使用 pdflatex,或者因为 template.log 已被写入。但这似乎不是这种情况,我检查了正在运行的其他进程。还请注意,它可以找到 template.tex,更重要的是,我可以从计算机的根目录运行 pdflatex 而不会出现问题。
答案1
在正常设置下,TeX 二进制文件不允许写入使用绝对路径或高于工作目录指定的文件。该-output-dir
选项允许指定目录以下正在工作的。
这是为了安全起见;它可以被改变,但我会避免这样做。
Unix shell 的标准方法是
(cd ~/path ; pdflatex template)