3

了解 C++ 的人可能知道我所说的“统一构建”是什么意思:

  1. 项目的 *.cpp 文件都被有效地#include编辑到单个超大源文件中,遵循*.cpp 和 *.h 文件中指定的#include 指令
  2. 这个源文件被送入编译器
  3. 结束!你得到输出二进制文件!

这样做意味着中间文件 (*.o) 更少,文件读取和磁盘 IO 开销更少,编译器调用更少,从而获得更好的构建性能。

我的问题是,这对乳胶有可能吗?我想要它,因为在使用 pdflatex 构建我的最终 .pdf 之前,我想在 .tex 文件上运行一个缓慢的后处理过程。目前,处理我不断增长的 .tex 文件列表大约需要 7 秒。我相信在一个文件上运行这个过程会明显更快。这激发了我的问题!

总而言之,我想

  1. 按照每个 .tex 文件中的\input{} 和 \include{}宏将所有 .tex 文件“合并”成一个超大质量的 .tex 源文件
  2. 将超大质量 .tex 源文件输入到慢速后处理通道(实际上是 Ott tex-filter,fyi)
  3. 将输出直接通过管道传输到pdflatex
  4. 结束!我得到了输出 PDF 文件!

第一步就是这里的问题。欢迎任何想法。如果我不需要编写自己的脚本来执行此步骤,那就最好了!

非常感谢!

4

1 回答 1

3

一个可以处理这个问题的好工具是橡胶,借助它的combine模块。它将收集所有依赖项,并生成一个可供使用的文件。

于 2011-02-20T17:12:38.130 回答