我以前写过一份非常复杂的文件,是为LaTeX2e分成几部分。我甚至还Makefile
制作了西班牙语和英语的 DVI/PS 和 PDF 版本。
定义了很多前导宏和命令,以及 ,因此\documentclass
当时我创建了一种新格式(我们称之为mybook
)。重新创建此格式的命令也在 中,使用 带有(或)Makefile
的源文件。mybook.tex
initex
pdfinitex
现在,很多年过去了,我试图让它再次工作。第一件事就是重新创建格式文件。当我make format
从 Makefile 执行操作时(是放置文件common
的文件夹:mybook.tex
cd common
initex '&latex ./mybook.tex \dump'
ln -s `which virtex` ./mybook
(我正在使用带有 TeXLive 2017 的 Ubuntu)
在过去,上面的代码做了以下事情:
- 更改为 common 文件夹,
- 在该文件夹中创建一个名为的格式文件
mybook.fmt
, - 并且在该文件夹中创建了一个名为
mybook
该virtex
程序的符号链接。
通过此设置,我可以使用新命令mybook
来编译我的LaTeX2enewbook.tex
文件,从仅包含几个包和宏的主文档开始,然后是\begin{document}...\end{document}
部分。我可以使用相同的设置和相同的格式文件编写几本不同的“书”。
但是,现在该initex
行以以下转储信息和错误消息结尾:
Beginning to dump on file latex.fmt
(preloaded format=latex 2018.10.18)
5152 strings of total length 70895
45331 memory locations dumped; current usage is 144&44611
3430 multiletter control sequences
\font\nullfont=nullfont
\font\OMX/cmex/m/n/10=cmex10
\font\tenln=line10
\font\tenlnw=linew10
\font\tencirc=lcircle10
\font\tencircw=lcirclew10
\font\OT1/cmr/m/n/5=cmr5
\font\OT1/cmr/m/n/7=cmr7
\font\OT1/cmr/m/n/10=cmr10
\font\OML/cmm/m/it/5=cmmi5
\font\OML/cmm/m/it/7=cmmi7
\font\OML/cmm/m/it/10=cmmi10
\font\OMS/cmsy/m/n/5=cmsy5
\font\OMS/cmsy/m/n/7=cmsy7
\font\OMS/cmsy/m/n/10=cmsy10
3633 words of font info for 14 preloaded fonts
59 hyphenation exceptions
Hyphenation trie of length 15093 has 496 ops out of 35111
50 for language 6
18 for language 5
148 for language 4
97 for language 3
2 for language 1
181 for language 0
0 words of pdfTeX memory
0 indirect objects
No pages of output.
Transcript written on latex.log.
mktexfmt [INFO]: /home/user/.texlive2017/texmf-var/web2c/pdftex/latex.fmt installed.
mktexfmt [INFO]: Disabled formats: 3
mktexfmt [INFO]: Successfully rebuilt formats: 1
mktexfmt [INFO]: Not selected formats: 25
mktexfmt [INFO]: Total formats: 29
mktexfmt [INFO]: exiting with status 0
---! /home/user/.texlive2017/texmf-var/web2c/pdftex/latex.fmt was written by pdftex
(Fatal format file error; I'm stymied)
因此,我注意到的第一件事是生成的文件不再是mybook.fmt
,而是latex.fmt
(这当然会产生后面的错误);并且它不是在当前文件夹中创建的,而是在 TeXLive 内部文件夹中创建的。
有什么方法可以重现旧的行为吗?我尝试使用 initex 选项,但没有成功...
答案1
我自己找到了解决方案(我之前搜索过,但没有找到任何有效的方法……当然,直到我发布了我的问题)。
显然,这是有效的:
$ pdftex -ini -jobname="mybook" "&pdflatex" mylatexformat.ltx mybook.tex '\dump'
进而:
$ pdflatex -fmt mybook book.tex
这将使用包mylatexformat
,并创建生成 PDF 的格式。