和
ConTeXt ver: 2010.05.24 13:05 MKIV fmt: 2010.12.18 int: english/english
ConTeXt 代码
\starttext
\message{one}
\directlua{print(1)}
\message{two}
\usercode{print(2)}
\stoptext
给出(摘录)
systems : begin file minex.tex at line 1
one1
two
! LuaTeX error <private user instance>:1: attempt to call global 'print' (a nil value)
stack traceback:
<private user instance>:1: in main chunk.
\usercode #1->\directlua 1{protect("userdata")#1}
l.5 \usercode{print(2)}
我将此解释为print
变量以通常的方式绑定到默认命名空间中的 Lua 基本函数,但在 Context 的user
命名空间中未绑定;同样,我检查的所有其他基本 Lua 函数在用户命名空间中也未绑定。
这是有意为之吗?
答案1
正常的全局变量位于用户代码的表内global
:
\starttext
\usercode{global.print(2)}
\stoptext