![如何在使用 pdflatexmk 时启用 --shell-escape?](https://linux22.com/image/277224/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%BD%BF%E7%94%A8%20pdflatexmk%20%E6%97%B6%E5%90%AF%E7%94%A8%20--shell-escape%EF%BC%9F.png)
我想使用该auto-pst-pdf
包,因此我需要--shell-escape
启用该选项。我在 TeXShop 首选项中执行了以下操作:
但是当我使用pdflatexmk
(在第一行写入% !TEX TS-program = pdflatexmk
)编译我的文档时,该选项不被考虑并且auto-pst-pdf
无法使用。
如何使用启用该--shell-escape
命令pdflatexmk
?
我在 Mac OSX 上使用 TeXShop 3.24 和 pdflatexmk 版本 4.37。
答案1
导航到您的~/Library/TeXShop/Engines
文件夹并将文件复制pdflatexmk.engine
到,例如pdflatexmk-shell.engine
。然后使用 TeXShop 本身打开此文件并添加选项-pdflatex="pdflatex --shell-escape %O %S"
:文件应如下所示:
#!/bin/bash
export TSBIN="$HOME/Library/TeXShop/bin/tslatexmk"
export LTMKBIN="$HOME/Library/TeXShop/bin/tslatexmk"
export LTMKEDIT="$HOME/Library/TeXShop/bin"
# make sure latexmkrcedit exists in bin
if [ ! -e "${LTMKEDIT}/latexmkrcedit" ] ; then
cp "${LTMKBIN}/latexmkrcDONTedit" "${LTMKEDIT}/latexmkrcedit"
fi
"${LTMKBIN}"/latexmk -pdf -r "${LTMKEDIT}/latexmkrcedit" -r "${TSBIN}/pdflatexmkrc" -pdflatex="pdflatex --shell-escape %O %S" "$1"
现在,如果你用
% !TEX TS-program = pdflatexmk-shell
将启用 shell 逃逸。
这是处理包含该神奇行的文件时控制台的副本:
Latexmk: This is Latexmk, John Collins, 2 July 2013, version: 4.37.
**** Report bugs etc to John Collins <collins at phys.psu.edu>. ****
Rule 'pdflatex': File changes, etc:
Non-existent destination files:
'bart.pdf'
------------
Run number 1 of rule 'pdflatex'
------------
------------
Running 'pdflatex --shell-escape -recorder "bart.tex"'
------------
Latexmk: applying rule 'pdflatex'...
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013)
\write18 enabled.
entering extended mode
(./bart.tex
LaTeX2e <2011/06/27>
Babel <3.9f> and hyphenation patterns for 78 languages loaded.
(/usr/local/texlive/2013/texmf-dist/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/local/texlive/2013/texmf-dist/tex/latex/base/size10.clo)) (./bart.aux)
[1{/usr/local/texlive/2013/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./bart.aux) )</usr/local/texlive/2013/texmf-dist/fonts/type1/public/amsfonts/c
m/cmr10.pfb>
Output written on bart.pdf (1 page, 11541 bytes).
Transcript written on bart.log.
Latexmk: Log file says output to 'bart.pdf'
Latexmk: All targets (bart.pdf) are up-to-date
线条
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013)
\write18 enabled.
是已启用 shell 逃逸的证明。
答案2
如果你愿意尝试其他自动化工具,我强烈推荐 arara
。与(我假设是您选择的 IDE)和任何其他编辑器的集成TeXShop
都很容易,并且在文档中介绍。
为了让--shell-escape
你能够简单地给出指令
% arara: pdflatex: {shell: yes}