编译两次,将布尔值第一次设置为 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

也可以看看这里如何将参数传递给 tex 文件。这只是一个不同的解决方案。

但是,您必须编译两次,因为一次调用 pdflatex/.. 只会创建一个 PDF。

一次创建两个版本会产生一个 PDF,而将该 PDF 在“中间”拆分可能并不方便。

我能想到的最后一个选项是,检查文件是否存在以确定布尔值,并在两次 pdflatex 运行之间创建/删除该文件。

相关内容