latexmk и xelatex из сценария оболочки

Я задал этот вопрос на TeX - LaTeX Stack Exchange, но я боюсь, что он ближе к вопросу о программировании, чем к вопросу о TeX, поэтому я спрашиваю это здесь. Надеюсь, все в порядке. (Исходный вопрос: Передача аргументов в xelatex с помощью latexmk.)

У меня есть один исходный файл XeLaTeX, который может генерировать две версии документа в зависимости от того, существует ли определенная последовательность команд testcs. Обычно я делаю это с помощью сценария оболочки csh, который генерирует обе версии и выглядит следующим образом:

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

У моего документа теперь есть индекс, и теперь для его набора требуется несколько проходов через xelatex. Я бы обычно использовал latexmk, например

latexmk -pdfxe Document

и это отлично работает, но теперь я хотел бы сгенерировать две версии документа с помощью скрипта.

Другими словами, я хотел бы изменить сценарий оболочки для использования latexmk, но, похоже, не могу передать аргументы xelatex. Я могу пройти -jobname, но мне не повезло пройти \def\textcs{1} любым из вариантов: -xelatex, -pdfxelatex, -pretex,...

Вопрос Есть ли простой способ сделать это?


person José Figueroa-O'Farrill    schedule 06.10.2019    source источник
comment
Не могли бы вы написать краткий ответ на ваши вопросы на tex.se, чтобы показать, что проблема уже решена?   -  person samcarter_is_at_topanswers.xyz    schedule 06.10.2019
comment
@samcarter Подойдет. Спасибо.   -  person José Figueroa-O'Farrill    schedule 06.10.2019
comment
Большой! Желаю вам счастливого текстинга :)   -  person samcarter_is_at_topanswers.xyz    schedule 06.10.2019


Ответы (1)


Небольшая модификация из https://stackoverflow.com/a/57111010. Хитрость заключается в том, что параметр -usepretex необходим, чтобы сообщить latexmk, что он действительно должен делать то, что вы указали в -pretex.

set file = "Document"
latexmk -pdfxe -jobname=${file}"-v1" -pretex="\def\testcs{1}" -usepretex ${file}
person samcarter_is_at_topanswers.xyz    schedule 06.10.2019