\includeonly 的变体

\includeonly 的变体

有没有办法让 pdfLaTeX 为每个\included 文件发出单独的 PDF 文件,并以某种方式调整\include/\includeonly机制,以便在使用命令时\includeonly将这些文件插入到生成的 PDF 文件中,但\includeonly实际上只重新编译 ed 文件?

我主要使用该\includeonly机制是为了在处理文档的一部分时加快编译速度,但最终的 PDF 并不完整 — 例如,如果需要引用排除部分中的内容,这有点烦人。对上面简要概述的机制进行修改可以解决这个问题。

答案1

这不是一个完整的答案,而是一个关于它如何运作的想法。然而,对于评论来说,这太长了。

这个想法是修补\include它内部使用的命令pdfpages输入\includeonly之前完整构建的现有 PDF 中未提及的部分。可能需要一些巧妙的算法来计算页码,但原则上这是可行的。

一个大问题可能是超链接。所有部分都使用相同的.aux文件编译,因此标签和页面锚点应该是一致的。但是,在使用 嵌入 PDF 时,它们会丢失\includepdf。然而,结合 (2)pax也许可以解决这个问题。摘自文档pdfpages

PDF 文档的链接和其他交互功能 在包含 PDF 页面时,只会复制这些页面的所谓内容流,而不会复制链接。到目前为止,还没有可用的 TeX 引擎(pdfTeX、XeTeX 等)可以复制 PDF 文档的链接或其他交互功能。因此,在包含过程中,所有类型的链接1 都会丢失。(使用\includepdf\includegraphics或其他低级命令。)然而,还有一线希望。一些链接可能会被提取出来,然后通过名为 pax 的包重新插入,可以从以下位置下载加拿大运输安全局。 看看它!

pax是一个 Java 工具的组合,用于从您要嵌入的 PDF 中提取链接信息,以及一个读取此信息以将链接恢复到嵌入 PDF 中的包。它仍被视为实验性的,我还没有尝试过。但是,它是由 Heiko Oberdiek 编写的,所以我很乐观地认为它可以工作。

总结:如果具备一些不错的 TeX 技能,我认为你的想法是可以实现的。但是,考虑到复杂性和涉及的工具链,我怀疑这最终能否节省大量时间。如果编译时间是个问题,我建议咨询如何使用多张 TikZ 图片加速 LaTeX 编译?其他优化策略。

相关内容