来自 shell 脚本的 latexmk 和 xelatex

latexmk and xelatex from shell script

我在 TeX - LaTeX Stack Exchange, but I fear it is closer to a programming question than to a TeX question, hence I'm asking it here. I hope this is alright. (The original question is Passing arguments to xelatex using latexmk 上问过这个问题。)

我有一个 XeLaTeX 源文件,它可以生成两个版本的文档,具体取决于某个命令序列 testcs 是否存在。我通常通过 csh shell 脚本执行此操作,该脚本生成两个版本并且看起来像这样:

set file = "Document"
xelatex -jobname="${file}-v1" "\def\testcs{1} \input{${file}.tex}"
xelatex ${file}.tex

我的文档现在有一个索引,排版现在需要经过多次 xelatex。我通常会使用 latexmk,例如

latexmk -pdfxe Document

这工作正常,但我现在想使用脚本生成文档的两个版本。

换句话说,我想修改 shell 脚本以使用 latexmk,但我似乎无法将参数传递给 xelatex。我可以通过 -jobname 但我没有通过任何选项通过 \def\textcs{1} 的运气:-xelatex-pdfxelatex-pretex、.. .

问题有简单的方法吗?

稍作修改。诀窍是 -usepretex 选项是必要的,它告诉 latexmk 实际执行您在 -pretex

中指定的操作
set file = "Document"
latexmk -pdfxe -jobname=${file}"-v1" -pretex="\def\testcs{1}" -usepretex ${file}