当 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。