我使用latexmk
它来自动解决需要重新运行的问题。我想将所有构建文件(aux、log、bbl、pdf 等)放在一个子目录中。
我找不到 latexmk 的选项来执行此操作。如果我-output-directory
在 pdflatex 规则中指定如下内容
$pdflatex="pdflatex -interaction=nonstopmode -output-directory=build";
latexmk 在第二次运行时无法找到文件。
有谁找到合适的解决方案吗?
答案1
您可以-jobname
像这样使用 latexmk 的选项:
latexmk -pdf -jobname=path/to/new/output/newfilename currentfile
所有输出文件将被路由到指定目录并被赋予基本名称“newfilename”。例如,与处理 currentfile.tex 相关的所有文件现在都将位于 path/to/new/output/ 中,并被称为 newfilename.pdf、newfilename.bbl 等。请注意,出于安全原因,只有相对路径才有效(请参阅注释)。
答案2
正如宣布的那样通过 latexmk 使用 MiKTeX 选项,我制作了一个新版本的 latexmk,它支持-output-directory
。它是 v. 4.27a,可以在以下位置找到:
http://www.phys.psu.edu/~collins/latexmk/versions.html (它很快就会在 CTAN 上播出。)
latexmkrc
只需在文件中使用以下设置
$pdflatex="pdflatex -interaction=nonstopmode %O %S"; $out_dir ='构建';
答案3
自 2011 年 12 月起,您可以使用 MiKTeX 和 TeXLive
-outdir=FOO 或 -output-directory=FOO
像这样:
latexmk -output-directory="../out"