旧 LaTeX 设置中的命令问题

旧 LaTeX 设置中的命令问题

我以前写过一份非常复杂的文件,是为LaTeX2e分成几部分。我甚至还Makefile制作了西班牙语和英语的 DVI/PS 和 PDF 版本。

定义了很多前导宏和命令,以及 ,因此\documentclass当时我创建了一种新格式(我们称之为mybook)。重新创建此格式的命令也在 中,使用 带有(或)Makefile的源文件。mybook.texinitexpdfinitex

现在,很多年过去了,我试图让它再次工作。第一件事就是重新创建格式文件。当我make format从 Makefile 执行操作时(是放置文件common的文件夹:mybook.tex

cd common
initex '&latex ./mybook.tex \dump'
ln -s `which virtex` ./mybook

(我正在使用带有 TeXLive 2017 的 Ubuntu)

在过去,上面的代码做了以下事情:

  1. 更改为 common 文件夹,
  2. 在该文件夹中创建一个名为的格式文件mybook.fmt
  3. 并且在该文件夹中创建了一个名为mybookvirtex程序的符号链接。

通过此设置,我可以使用新命令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 的格式。

相关内容