我有一些以前编译过的代码,但刚刚安装了最新的 miktex,现在出现错误。它们涉及使用 token。似乎 token.command_name 不再存在。在旧帮助中它在那里,但在新帮助中它消失了。我似乎找不到任何人提到如何迁移到新版本(我找不到)
lualatex:尝试将字段调用command_name
为零值
再次强调,此代码以前运行良好并且是一个广泛使用的命令(因此它不在我这边的代码中)。
知道发生了什么事以及该怎么办吗?我需要在 lua 端包装 tex 命令(例如定义、存在等 tex 宏)。
答案1
在最近的 LuaTeX (>=0.95.0)一些功能token
图书馆已被移除并提升为 token 本身的属性。在旧版 LuaTeX 中,以下内容有效
\directlua{
local t = token.create("relax")
local csname = token.command_name(t)
tex.sprint(csname)
}
\bye
然而,使用最新的 LuaTeX,我们需要用token.command_name(t)
替换t.cmdname
。
\directlua{
local t = token.create("relax")
local csname = t.cmdname
tex.sprint(csname)
}
\bye
答案2
看看最新的LuaTeX 手册建议command_name
删除。请查看手册第 169-170 页:其中提到cmdname
。它的功能是您想要的吗?