\startlua 和 \startluacode 之间有什么区别?

\startlua 和 \startluacode 之间有什么区别?

\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

相关内容