我正在尝试执行latexmk从我的 Web 应用程序并需要指定其输出目录的路径。(我在 Linux CentOS 6.9 上)
我有我的.tex目录中的文件/home/(路径)(这是相对于 Web 应用程序根目录的绝对路径)并且需要生成.pdf与原始文件位于同一目录中,名称相同.tex文件。
我使用的完整命令如下:
latexmk -pdf -jobname=/home/(the path)/filename /home/(the path)/filename.tex
然而,这不起作用;latexmk 开始执行并停止并显示一条消息
I can't write on file filename.aux
相反,如果我从终端窗口运行类似的命令相对的并不是绝对文件的路径(假设我在目标文件夹的父目录中),例如
latexmk -pdf -jobname= target_dir/filename target_dir/filename.tex
然后它就会按预期工作。此外,跳过工作名称使用 .tex 文件的绝对路径可以正常工作,但问题是输出进入根目录。
我知道这个问题,但绝对路径的问题仍然存在。
如何将输出的绝对路径提供给 latexmk?
答案1
错误消息来自pdflatex
,而不是latexmk
。Latexmk
将 -jobname 选项传递给pdflatex
,但 TeXLive 的默认安全设置禁止使用绝对路径。所提及的问题中接受的答案是,使用 latexmk 时指定 -output-directory,实际上已经过时了,您应该查看第二个答案。
有两个简单的解决方案,对于问题的情况,第一个是首选。
由于您的输出目录与文档目录相同,因此您可以使用 -cd 选项:
latexmk -cd /home/(the path)/filename.tex
。这会导致latexmk
在处理文档之前将目录更改为文档目录。您可以改用 -output-directory 选项,该选项允许使用绝对路径:
latexmk -output-directory=/home/(the path) /home/(the path)/filename.tex