我使用的是latexmk
4.41 版。调用编译正常,没有任何错误。但是,当我尝试使用以下命令latexmk -pdf document_template.tex
将所有辅助文件输出到文件夹中时:tmp
latexmk -auxdir=./tmp/ -pdf document_template.tex
我收到以下错误:
Latexmk: Errors, so I did not complete making targets
Collected error summary (may duplicate other messages):
pdflatex: (Pdf)LaTeX failed to generate the expected log file 'tmp/document_template.log'
Latexmk: Did not finish processing file 'document_template.tex':
(Pdf)LaTeX failed to generate the expected log file 'tmp/document_template.log'
Latexmk: Use the -f option to force complete processing,
unless error was exceeding maximum runs of latex/pdflatex.
并且只有.aux
和.fdb_latexmk
文件会位于.\tmp
文件夹中,而其余的辅助文件与.tex
文档位于同一文件夹中。我做错了什么?
答案1
我遇到了完全相同的问题。经过一番探索,我发现了以下内容。
诊断
首先,我在 MacOSX 上使用 MacTex 作为 Latex 编译器。文档latexmk
说明如下:
-auxdir=FOO设置 (pdf)latex 辅助输出文件 (.aux、.log 等) 的目录。这通过 (pdf)latex 的 -aux-directory 选项实现其效果,该选项目前仅在 MiKTeX 版本的 (pdf)latex 上实现。(摘自:https://man.cx/latexmk)
我没有使用 MikTex,因此我怀疑这是问题的一部分。(更多信息请点击此处:Latex 发行版。它们的主要区别是什么?)
解决方案
添加选项outdir
并将其指向与 相同的目录auxdir
。在您的例子中将是:
latexmk -auxdir=./tmp/ -outdir=./tmp/ -pdf document_template.tex
这会将所有衍生文件放入tmp
检查是否需要辅助文件夹
如果您在 latex 文档中使用 \include{} 命令,则可能需要在tmp
目录中创建一个目录。更多信息请见此处:(latexmk -outdir 带有 \include)