缺少字符时退出 lualatex 的代码

缺少字符时退出 lualatex 的代码

当 pdflatex 遇到无法编码到字体中的字符时,它会终止并产生非零退出代码。相比之下,lualatex 会愉快地产生退出代码 0 并仅打印警告:

Missing character: There is no ȳ (U+0233) in font [lmmono10-regular]:!

我认为这是一个致命错误,因为它无法排版文档。在这种情况下,我找不到任何方法让 lualatex 产生非零退出代码,所以我必须解析日志文件来查找这些代码。

这似乎是对 lualatex 的一个严重疏忽——还有其他情况无法排版文档但仍然产生退出代码 0 吗?

答案1

pdftex对于这类问题,和的行为luatex完全相同。

如果我尝试从终端

pdftex '\char233 \bye' && echo $?

控制台会打印

This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdftex)
 restricted \write18 enabled.
entering extended mode
Missing character: There is no � in font cmr10!
[1{/usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]</usr/
local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>
Output written on texput.pdf (1 page, 8175 bytes).
Transcript written on texput.log.
0

luatex '\char233 \bye' && echo $?

它是类似的,但是控制台没有显示Missing character警告。

不同之处在于,\tracinglostchars对于 , 初始化为 2 pdftex,而对于 , 初始化为 1 luatex。不过,对于 ,它被初始化为 2 lualatex

在这两种情况下,您都可以设置

\tracinglostchars=3

在文件的开头,您不会收到警告,而是收到错误,退出代码为 1。

相关内容