Скомпилируйте дважды, сначала установив логическое значение true, а затем false.

Скомпилируйте дважды, сначала установив логическое значение true, а затем false.

Я только что получил несколько tex-файлов, в которых в начале документа с помощью пакета etoolbox определено логическое значение. Изменение логического значения приводит к немного другому pdf-файлу. Чтобы создать другую версию документа, мне нужно скопировать первый pdf-файл, чтобы не перезаписать его при повторной компиляции, изменить логическое значение и затем скомпилировать второй раз. Есть ли способ скомпилировать документ дважды с логическим значением true и false по отдельности и получить два pdf-файла?

Большое спасибо!

решение1

В моей среде есть что-то похожее, поэтому я использую два файла .tex, один из которых выглядит так:

\documentclass[a4paper,twoside,DIV12,BCOR1.5cm]{scrbook}
%
\osversiontrue
\input{main.tex}

и один как

\documentclass[a4paper,twoside,DIV12,BCOR1.5cm]{scrbook}
%
\input{main.tex}

и main.tex, содержащий все остальное, все, что начинается с \begin{document}и заканчивается на \end{document}.

Когда я компилирую оба файла-обертки, создаются два документа pdf. Различия между двумя документами решаются с помощью булевой переменной osversion.

решение2

Смотрите такжездеськак передать args в tex-файл. Это просто другое решение.

Однако вам придется выполнить компиляцию дважды, поскольку один вызов pdflatex/.. создаст только один PDF-файл.

Создание обеих версий за один раз, в результате чего получается один PDF-файл, и разделение этого PDF-файла «посередине», вероятно, не является более удобным.

Последний вариант, который приходит мне в голову, — проверить существование файла, чтобы определить логическое значение и создать/удалить этот файл между двумя запусками pdflatex.

Связанный контент