预加载已预处理的文件并将其嵌入到格式中

预加载已预处理的文件并将其嵌入到格式中

我正在编写一本词典,我想减少编写词典所需的时间。我使用的条目以某种形式存储,然后“翻译”为 TeX 文件,该文件包含在 中\input。此文件如下所示:

\wordentry{book}{a handwritten or printed work of fiction or nonfiction, usually on sheets of paper fastened or bound together within covers}
\wordentry{cat}{an animal that…}
\wordentry{dog}{an animal that…}

它只是对 的一系列调用\wordentry,它在序言中定义并成功转储到格式文件中。FWIW,这个宏调用\hypertarget\label\bookmark

构建的大部分时间都花在处理这个文件上,我认为也许可以把它“带”到我正在使用的格式文件中。这个想法是,如果以下宏

\newcommand{\hello}{hello}

可以放在序言里然后丢弃,那么也许

\newcommand{\thewholefile}{ THE CONTENTS OF THE FILE }

也可以转储。由于交叉引用,同一个文件被处理了三次,因此任何加速都应该加起来。

嗯,我第一次尝试

\newcommand{\thewholefile}{\input{thefile}}

但文件根本没有被读取。我乱搞了\expandafter,但毫无效果,最后,我只好粘贴文件的内容。虽然它没有减少构建时间(但它生成了一个 17MB 格式的文件),但它还是成功了。我想知道是我做错了还是转储根本无法改善这种情况。我猜 iniTeX 只是转储了 的定义\thewholefile,而没有真正“消化”它。

您能否就此事给出一些提示?是我做错了,还是格式文件不适合这项任务?我可以尝试做些什么来减少构建时间?

我没有提供 MWE,因为我看不出有什么方法可以去除怪物同时保持其复杂性。我想这个问题更多的是“理论”而不是“实践”。FWIW,我使用的是 TeX Live 2015(beta-0.80.0)中的 LuajitTeX。

相关内容