如何获取错误消息中的完整文件名?

如何获取错误消息中的完整文件名?

我从 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 代码,例如

http://lua-users.org/lists/lua-l/2011-12/msg00038.html

相关内容