![识别发生错误的 directlua 块](https://linux22.com/image/325279/%E8%AF%86%E5%88%AB%E5%8F%91%E7%94%9F%E9%94%99%E8%AF%AF%E7%9A%84%20directlua%20%E5%9D%97.png)
在 wiki 页面中http://wiki.luatex.org/index.php/Writing_Lua_in_TeX有一个很有前途的解决方案可以识别不同的 lua(TeX)块:
\directlua {<lua code>}
\directlua name {<name>} {<lua code>}
\directlua <number> {<lua code>}
但是没有示例。当我按照上一个语法中的建议添加数字 3 时。没有报告编译错误,但 lua 错误后的错误消息没有什么不同:我查找了错误块的数字 3,但我有:1
该块的标准引用。
它是如何工作的?是否有与luadirect
、luaexec
、 ... 等效的词?
答案1
比较这些
\directlua name{luachunk}{
print(debug.traceback())
}
\directlua {
print(debug.traceback())
}
\bye
第一个生产
stack traceback:
[string "luachunk"]:1: in main chunk
在跟踪中显示命名的块
第二个显示默认名称。
stack traceback:
[\directlua]:1: in main chunk
Latex(或纯 tex 的 ltluatex.tex 文件)可以\newluachunkname
为此提供稍微高级一点的接口。