\startlua
和之间有什么区别吗\startluacode
?这两个命令似乎有类似的用途,但我发现如果选择了错误的命令,一些代码确实可以正确编译。什么时候使用其中一个?什么时候使用另一个?
答案1
不同之处在于 catcodes。\startlua
使用 TeX catcodes,startluacode
使用 Lua catcodes。两个例子:
\starttext
\startlua
-- fails both
-- context("Foo %Bar")
-- %context("Foo \n Bar")
\stoplua
\startluacode
-- prints Foo
-- context("Foo %Bar")
-- prints Foo Bar
context("Foo \n Bar")
\stopluacode
\stoptext
欲了解更多信息,您可以查看源文件luat-ini.mkiv
。