我正在尝试深入研究 LaTeX 的内部工作原理,并查看诸如 之类的基本宏的\{
定义位置。texdef
没有任何用处(说它是由 LaTeX 定义的),而 .fmt 文件是二进制文件,显然是由某些东西生成的。.fmt 文件是如何生成的,我在哪里可以获取生成它们的文件?
答案1
文件.fmt
是程序生成的“格式”文件inittex
。它加载标准.tex
文件,并在某种意义上使用命令“编译”它inittex
,dump
该命令创建此“编译”文件的二进制表示.tex
。
格式文件的最初目的是加快此类 tex 文件的加载速度。Bechtolsheim 在《TeX in Practice, Vol II》中指出,plain.tex
在 BSD UNIX 4.2 下的 VAX 11/780 上加载该文件需要 80 秒,而在 Linux 上加载则plain.fmt
只需 10 秒。
显然,如今的机器速度快得多,差异可能难以察觉。不过,出于效率考虑,.fmt
文件最好使用常见格式,如 plain、csplain、LaTeX 等。
加载文件的标准方式.fmt
类似于tex --fmt=pdfcsplain ...
,但它可以嵌入到命令、shell 脚本或其他可执行文件中。(我确信latex
是其中之一。)