lualatex 删除了令牌?

lualatex 删除了令牌?

我有一些以前编译过的代码,但刚刚安装了最新的 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。它的功能是您想要的吗?

相关内容