我从 lualatex 收到以下错误消息:
(/usr/share/texlive/texmf-dist/tex/luatex/luaotfload/luaotfload.sty...ive/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua:176: attempt to index global 'luatexbase' (a nil value)
stack traceback:
...ive/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua:176: in function 'early'
...ive/texmf-dist/tex/luatex/luaotfload/luaotfload-main.lua:283: in function 'main'
[\directlua]:1: in main chunk.
该错误消息在我的用例中是合法的,luatexbase
确实是nil
。
如何在 Lua 错误消息中获取完整文件名,即/usr/share/texlive/
而不是...ive/
?
我知道我之后可以查找文件名(例如kpsewhich luaotfload-init.lua
),但是在这个问题中,我感兴趣的是在错误消息中包含完整的绝对文件名。
仅供参考我已经使用max_print_line=1000 error_line=254 half_error_line=238 lualatex
它来防止 Tex 消息中出现换行符。
答案1
即使您用它来捕获错误并以 Lua 字符串的形式获取消息,这似乎也是不可能的,因为pcall
它已经被截断,并且不会被打印例程截断。
这显然需要改变 Lua 本身的 C 代码,例如