除了在源文件中,如何在使用 TEXShop 中的引擎时指定命令行选项(例如-shell-escape
) ?有没有办法在“首选项”中指定?pdflatex
pdflatexmk
根据 Herb Schultz 的“使用 latexmk 和 TeXShop”指南,指定 pdflatex 命令行选项的一种方法是在源文件本身中。但我希望将源文件和排版程序的命令行选项分开。
答案1
感谢@MajidAbdolshah 和@HerbSchulz 的评论。以下答案基于他们的评论。
有两种选择。各有利弊。
- 按照以下说明创建新引擎tex.stackexchange.com/q/139173。
pdflatexmk.engine
自那篇文章以来,肯定已经发生了变化——现在有一个TSUserCompileOptions
变量。请参阅下面的示例。优点是只有在需要时才能在 TeXShop 中选择此引擎。缺点是需要创建此文件、将其安装在正确的位置等,并且可能无法延续到下一个版本的 TeXShop。 - 在主文件顶部添加一个指令 -
% !TEX parameter = —shell-escape
- (我相信在前 20 行)。优点是该指令仅限于此文件(或项目)。缺点是排版程序的指令嵌入在源文件中。我想这种模式已经实践了很长时间,但尽管如此,对我来说还是有点麻烦。[顺便说一句,这个指令最终成为 bash 脚本中的第二个${2}
参数latexmk
。
新引擎文件(pdflatexmk-shell.engine
,复制自 pdflatexmk.engine
)中的修改应如下所示:
if [ -n "${2}" ] ; then
"${LTMKBIN}"/latexmk -pdf -r "${LTMKEDIT}/latexmkrcedit" -e "\$TSUserCompileOptions='-shell-escape ${2}'" -r "${TSBIN}/pdflatexmkrc" ${localrc} "$1"
else
"${LTMKBIN}"/latexmk -pdf -r "${LTMKEDIT}/latexmkrcedit" -e "\$TSUserCompileOptions=-shell-escape" -r "${TSBIN}/pdflatexmkrc" ${localrc} "$1"
fi
bash 脚本可以在或 中pdflatexmk.engine
找到,您创建的文件需要放在 中。重新启动 TeXShop 后,它应该作为引擎之一出现在顶部的下拉菜单中。~/Library/TeXShop/Engines/
~/Library/TeXShop/Engines/Inactive/Latexmk/
~/Library/TeXShop/Engines/
另一个选项是允许在应用程序首选项中配置每个引擎。此路线适用于某些引擎(例如 LaTeX 和 BibTeX),但不是全部。