如何让 latexmk 始终使用 -shell-escape?

如何让 latexmk 始终使用 -shell-escape?

虽然我见过相关的问题,但我还没有看到过专门问这个问题。

我刚刚安装了该minted软件包,发现必须使用命令行选项运行latex/才能运行它。当然,我可以手动执行此操作,但如果我使用 怎么办?pdflatex-shell-escapelatexmk

答案1

您可以直接将参数传递给latexmk

latexmk -shell-escape

手册页中没有提到此选项。手册页建议使用-e第一个答案中也使用的选项。可以使用以下方法找到此选项以及许多其他选项:

latexmk -showextraoptions

命令输出以以下注释开始:

latexmk 识别的额外 latex 和 pdflatex 选项列表。这些选项按原样传递给 (pdf)latex。特定版本的 (pdf)latex 可能无法识别它们。[..]

已测试latexmk版本

  • 2015 年 1 月 1 日。版本 4.41
  • 2019年12月26日,版本:4.67

答案2

如果您只需要执行一次,请运行:

latexmk -e '$latex=q/latex %O -shell-escape %S/'

或者

latexmk -e '$pdflatex=q/pdflatex %O -shell-escape %S/' -pdf

用于 PDF 输出。

如果你latexmk总是启用此选项运行时,您应该将以下内容放入您的.latexmkrc文件中(是​​的,就是这样):

$latex = 'latex  %O  --shell-escape %S';
$pdflatex = 'pdflatex  %O  --shell-escape %S';

警告!

默认启用--shell-escape是危险的,因为它会使 latex 二进制文件在 latex 文件中执行任意 shell 命令。**

答案3

要使用文件启用shell-escape所有*latex命令latexmkrc

set_tex_cmds( '--shell-escape %O %S' );

相关内容