无法重新编译 pdflatex.fmt 以解决“pdflatex.fmt 由不同的可执行文件制作”的问题

无法重新编译 pdflatex.fmt 以解决“pdflatex.fmt 由不同的可执行文件制作”的问题

最初,我使用 pandoc 时遇到了这个“由不同的可执行文件生成”错误,后来使用与通过 pdflatex 引擎生成 PDF 有关的所有操作时也遇到了这个错误。

根据错误消息,我的可执行文件已更改(因为我的系统进行了更新),但相应的 .fmt 文件尚未更改。我使用的是 Arch Linux 和Arch 维基已经说过 pacman -S 会在更新时负责重建格式文件,但是就我而言,这似乎并没有发生。

使用fmtutil

sudo fmtutil-sys --all | grep -P "(INFO|ERROR)"

仍然无法pdflatex.fmt构建。以下是输出

fmtutil [INFO]: writing formats under /var/lib/texmf/web2c
fmtutil [INFO]: --- remaking luajithbtex with luajithbtex
fmtutil [INFO]: log file copied to: /var/lib/texmf/web2c/luajithbtex/luajithbtex.log
fmtutil [INFO]: /var/lib/texmf/web2c/luajithbtex/luajithbtex.fmt installed.
fmtutil [INFO]: --- remaking luatex with luatex
fmtutil [INFO]: log file copied to: /var/lib/texmf/web2c/luatex/luatex.log
fmtutil [INFO]: /var/lib/texmf/web2c/luatex/luatex.fmt installed.
fmtutil [INFO]: --- remaking pdftex with pdftex
fmtutil [INFO]: log file copied to: /var/lib/texmf/web2c/pdftex/pdftex.log
fmtutil [INFO]: /var/lib/texmf/web2c/pdftex/pdftex.fmt installed.
fmtutil [INFO]: --- remaking luajittex with luajittex
fmtutil [INFO]: log file copied to: /var/lib/texmf/web2c/luajittex/luajittex.log
fmtutil [INFO]: /var/lib/texmf/web2c/luajittex/luajittex.fmt installed.
fmtutil [INFO]: --- remaking luahbtex with luahbtex
fmtutil [INFO]: log file copied to: /var/lib/texmf/web2c/luahbtex/luahbtex.log
fmtutil [INFO]: /var/lib/texmf/web2c/luahbtex/luahbtex.fmt installed.
fmtutil [INFO]: --- remaking tex with tex
fmtutil [INFO]: log file copied to: /var/lib/texmf/web2c/tex/tex.log
fmtutil [INFO]: /var/lib/texmf/web2c/tex/tex.fmt installed.
fmtutil [INFO]: --- remaking dviluatex with luatex
fmtutil [INFO]: log file copied to: /var/lib/texmf/web2c/luatex/dviluatex.log
fmtutil [INFO]: /var/lib/texmf/web2c/luatex/dviluatex.fmt installed.
fmtutil [INFO]: --- remaking mf with mf-nowin
fmtutil [INFO]: log file copied to: /var/lib/texmf/web2c/metafont/mf.log
fmtutil [INFO]: /var/lib/texmf/web2c/metafont/mf.base installed.
fmtutil [INFO]: --- remaking etex with pdftex
fmtutil [INFO]: log file copied to: /var/lib/texmf/web2c/pdftex/etex.log
fmtutil [INFO]: /var/lib/texmf/web2c/pdftex/etex.fmt installed.
fmtutil [INFO]: --- remaking pdfetex with pdftex
fmtutil [INFO]: log file copied to: /var/lib/texmf/web2c/pdftex/pdfetex.log
fmtutil [INFO]: /var/lib/texmf/web2c/pdftex/pdfetex.fmt installed.
fmtutil [INFO]: disabled formats: 1
fmtutil [INFO]: successfully rebuilt formats: 10
fmtutil [INFO]: total formats: 11
fmtutil [INFO]: exiting with status 0

我怀疑disabled formats: 1实际上是 pdflatex.fmt,而 fmtutil 只是忽略了 pdflatex.fmt 必须重建的事实(但我不知道如何验证这一点)。经过进一步研究:我发现一些提示表明 fmtutil 应该包含一些内容来告诉 fmtutil 生成我想要的格式文件。

  1. 获取文件 pdflatex.ini 和 pdftexconfig.tex(例如来自 TeX Live 或其他发行版)
  2. 将文件 pdflatex.ini 放在 path_to_your_texmf_tree/texmf/pdftex/latex/config/ 中
  3. 将文件 pdftexconfig.tex 放在 path_to_your_texmf_tree/texmf/tex/generic/config/ 中
  4. 以超级用户/root 身份运行 texhash
  5. 以超级用户/root 身份运行 fmtutil --missing 我希望这可以帮助其他人,就像您在这个新闻组中提供的帮助一样。

我不太清楚第一步,我可以从哪里获得不同的 fmtutil.cnf?还有其他方法可以重新编译 pdflatex.fmt 吗?

相关内容