我正在编写一本词典,我想减少编写词典所需的时间。我使用的条目以某种形式存储,然后“翻译”为 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。