ConTeXt 的用户命名空间似乎有些空

ConTeXt 的用户命名空间似乎有些空

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

相关内容