我正在编写一个 Python 程序,该程序从网站上抓取 tex 文件中的考试问题,并将它们组合起来以创建新试卷。这些问题是从电子表格中随机挑选出来的,因此可以组合来自不同年份(因此来自不同的 latex 文件)的问题。这里是此类论文的一个例子(1987),并且这里是一篇较新的论文(2018)中的一个例子。
序言非常不同,这使得将它们简单地包含到同一个 latex 文件中非常困难。例如,我如何从旧论文中取出一个特定问题,从新论文中取出另一个问题并生成单个 pdf 文件?我曾尝试使用和subfiles
包standalone
,但错误不断。我也考虑过分别编译每个 latex 文件,然后使用pdfpages
或类似的命令行实用程序将它们连接起来,但我想避免每页只有一个问题。我曾考虑过以编程方式从两个(或更多)文件中检索序言的“并集”,然后在单个\question
latex 文件中简单地替换每个序言,但这是最后的手段。
答案1
我选择使用组合文档类并构建类似下面的主文档:
\documentclass{combine}
\begin{document}
\begin{papers}
\let\clearpage\relax
\import{question-file-1}
\import{question-file-2}
\end{papers}
\end{document}
事实证明,使用papers
环境是必要的,确保文档不会简单地从下一页开始的行也是如此\let\clearpage\relax
。编译主文档会产生一致的 pdf 文件,但会出现许多“X 已定义!”错误,幸运的是,这些错误不会中断 pdf 的编译(尤其是在将参数传递interaction=nonstopmode
给之后latexmk
)。