今天,当我更新我的 MiKTeX 安装(在 Windows 7 上)时,LuaLaTeX 出现故障。当我尝试这个最小示例时,它可以与 PdfLatex 和 XeLaTeX 一起编译,但不能与 LuaLaTeX 一起编译:
\documentclass[12pt]{article}
\begin{document}
Hello world!
\end{document}
我收到此错误信息:
luaotfload 错误:“‘string.format’ 的参数 #3 错误(数字没有整数表示)”Lua 解释器堆栈回溯:...rams/MiKTeX 2.9/tex/luatex/luaotfload/luaotfload-log.lua:155:在函数 <...rams/MiKTeX 2.9/tex/luatex/luaotfload/luaotfload-log.lua:152> 中 [C]:在函数“string.format”中 [C]:在函数“xpcall”中...rams/MiKTeX 2.9/tex/luatex/luaotfload/luaotfload-log.lua:170:在 upvalue“basic_logger”中...rams/MiKTeX 2.9/tex/luatex/luaotfload/luaotfload-log.lua:276:在函数“logreport”中...MiKTeX 2.9/tex/luatex/luaotfload/luaotfload-database.lua:532: 在 upvalue 'load_names' 中...MiKTeX 2.9/tex/luatex/luaotfload/luaotfload-database.lua:625: 在 upvalue 'lookup_filename' 中...MiKTeX 2.9/tex/luatex/luaotfload/luaotfload-database.lua:684: 在字段 'lookup_font_file' 中...iKTeX 2.9/tex/luatex/luaotfload/luaotfload-resolvers.lua:77: 在函数 <...iKTeX 2.9/tex/luatex/luaotfload/luaotfload-resolvers.lua:76> 中 (...尾部调用...)...iKTeX 2.9/tex/luatex/luaotfload/luaotfload-resolvers.lua:247: 在本地“r”中...KTeX 2.9/tex/luatex/luaotfload/fontloader-2019-02-14.lua:29709: 在字段“resolve”中...KTeX 2.9/tex/luatex/luaotfload/fontloader-2019-02-14.lua:29899: 在 upvalue“read”中.../MiKTeX 2.9/tex/luatex/luaotfload/luaotfload-loaders.lua:135: 在函数 <.../MiKTeX 2.9/tex/luatex/luaotfload/luaotfload-loaders.lua:134> 中(...尾部调用...)
如果我理解正确的话,主要错误消息是关于 luaotfload 脚本中的语法错误?我猜它会尝试打印有关缺少字体或其他内容的另一条错误消息?
从fontspec 与 lualatex 一起抛出错误——坏了吗?我尝试了命令
luaotfload-tool --update
这给了我类似的错误信息:
luaotfload 错误:“‘string.format’ 的参数 #3 错误(数字没有整数表示)” Lua 解释器堆栈回溯:...rams/MiKTeX 2.9/tex/luatex/luaotfload/luaotfload-log.lua:155:在函数 <...rams/MiKTeX 2.9/tex/luatex/luaotfload/luaotfload-log.lua:152> [C]:在函数“string.format”中 [C]:在函数“xpcall”中...rams/MiKTeX 2.9/tex/luatex/luaotfload/luaotfload-log.lua:170:在 upva lue“basic_logger”中...rams/MiKTeX 2.9/tex/luatex/luaotfload/luaotfload-log.lua:276:在 upva lue 中'logreport' ...MiKTeX 2.9/tex/luatex/luaotfload/luaotfload-database.lua:532: 在更新'load_names'中 ...MiKTeX 2.9/tex/luatex/luaotfload/luaotfload-database.lua:3332: 在字段'update'中 ...ograms\MiKTeX 2.9\scripts/luaotfload\luaotfload-tool.lua:806: 在本地'action'中 ...ograms\MiKTeX 2.9\scripts/luaotfload\luaotfload-tool.lua:1622: 在函数 <...ograms\MiKTeX 2.9\scripts/luaotfload\luaotfload-tool.lua:1606> 中(...尾部调用...)
...rams/MiKTeX 2.9/tex/luatex/luaotfload/luaotfload-log.lua:232:'stringformat' 的参数 #3 错误(数字没有整数表示)
类似的问题(fontspec 与 lualatex 一起抛出错误——坏了吗?) 与缺少 lmodern 字体包有关。但我在 MiKTeX 控制台中找不到该包。我安装了类似的包(lm、lm-math、variablelm),但这没有帮助。
我仍然猜测问题与 Latin Modern 字体有某种关系,因为在字体缓存所在的目录 C:\Users...\AppData\Local\MiKTeX\2.9\luatex-cache\generic\fonts\otl 中,字体列表按字母顺序排列并停止在 lmsans10-regular.luc。
有任何想法吗?
编辑:
如果我按 Enter 键继续编译过程,LuaLaTeX 会给出一条新的错误消息,这也许可以发现实际的问题:
字体 \TU/lmr/m/n/12=[lmroman12-regular]:+tlig; 12pt 无法加载:未找到度量数据或数据错误。
字体文件 lmroman12-regular.otf 确实存在,当我在 Windows 资源管理器中双击它时看起来很正常。