使用 latexmk 时指定 -output-directory

使用 latexmk 时指定 -output-directory

我使用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"

来源:http://mirrors.ctan.org/support/latexmk/latexmk.pdf

相关内容