在 latexmkrc 中写入 latexmk 命令行选项

在 latexmkrc 中写入 latexmk 命令行选项

有没有办法将任意latexmk命令行选项写入latexmkrc文件?

例如,我认为不要调用

latexmk -pdf -halt-on-error file.tex

我可以放

$pdf_mode = 1
$pdflatex = ’pdflatex -halt-on-error %O %S’

latexmkrc文件中。

但这只适用于pdflatex,所以如果我切换到lualatex,我必须添加以下内容。

$lualatex = ’lualatex -halt-on-error %O %S’

现在为了解决这个问题显然有一种方法可以为所有 Latex 编译器指定选项:

set_tex_cmds( '-halt-on-error %O %S' );

但这仍然需要一些思考,因为我必须将命令行选项识别为传递给 tex 编译器的选项。

有没有办法简单地latexmk在配置文件中写入命令行选项来达到相同的效果?

(我之所以问这个问题,是因为我试图将命令行选项从 vscode latex-workshop 配置复制到latexmkrc。)

答案1

目前 latexmk 中还没有实现任何此类功能。

但是,尽管该语句对于 latexmk 代码本身来说是正确的,但还是有一种方法可以实现您想要的。诀窍是注意 Perl 将命令行参数放在数组中@ARGV,并且 latexmk 在命令行之前处理 latexmkrc 文件。latexmkrc 文件可以修改@ARGV

要将选项-pdf和添加-halt-on-error到命令行,您可以执行以下操作

unshift @ARGV, '-pdf', '-halt-on-error';

这些选项在处理 latexmkrc 文件之后、但在实际命令行上的选项之前处理。

如果您希望在命令行上的选项之后处理额外的选项(例如,覆盖它们),您可以unshift用替换push

相关内容