是否有可能实现一个针对 tex 文档的 C 风格编译模型?
latex -S file_1.tex file_2.tex file_3.tex #produce some kind of object files with "Undefined references"
latexlink -o repor.dvi file_1.txo file_2.txo file_3.txo #Link the chapters (put the data in that order)
这样做的好处是可以为前言创建范围,因此提供 MWE 会容易得多。这个想法是“目标文件”将不包含任何可以推断其他内容的宏,并且这些“txo”文件也可以在其他文档中重复使用。此外,它还可以提高编译速度,因为不需要重新编译整个文档。
答案1
请注意,这是不可能的,原因很简单:解析标签会改变换行符和分页符,从而改变标签。问题是——从某种意义上说——TeX 太强大了:即使文档中最细微的变化也会改变程序处理整个文档其余部分的方式,这不仅是在“内容将放在哪里”层面,而且在“我的宏将如何定义”层面。
举个例子,假设奇偶页和偶数页上可以有不同的节标题。这基本上意味着您有两个内部宏 --\sectionodd
和\sectioneven
-- 用于该节,并且您可以根据页码的奇偶性调用正确的宏。首先,这本身就是一个两次编译的事情:您必须记住上一次编译的页码才能正确执行。其次,用户可以定义,\sectionodd
并且\sectioneven
以一种非常奇怪的方式,他可以决定其中一个将更改引擎的基本宏等。由于您无法预测这一点,因此在您真正处理文档及其应有的所有内容之前,您无法确切知道发生了什么。
毋庸置疑,如上所述,自定义格式确实存在,它们可以或多或少地由您在序言中输入的内容形成。例如,更多详细信息请参阅拥有 cls 到 fmt 的转换。