我们在处理 LaTeX 多文档的时候,常常会遇到这样的情况

有一个主文件,包含需要的 preamble 内容,同时还有其他子文件,各自都有自己的 preamble。现在的问题是,我们想要在主文件里,把其他的子文件都包含进去。这样的意思是,一方面,每个单独的子文件是可以独立 compile 的,同时,又可以把这些子文件统一合并到主文件当中。

LaTeX 有 inputinclude 来包含子文件,但这两个命令都要求不包含 *preamble*。因此,对于原先存在有 preamble 的独立子文件,我们需要这样的命令

能够自动识别并判断 *preamble*,然后自动跳过,只是抽取文档的正文进行编译。

解决这个问题有多种方式,不过我尝试后,方向使用 docmute 包是最好用的。其用法为

  • 1. 在主文件的 preamble 插入 \usepackage{docmute}
  • 2. 对于需要引入的子文件,直接使用 \input{subfile.tex},它会自动识别,并只把正文部分插入进来