eTeX\scantokens
命令在 LuaTeX 中的工作方式似乎与在 eTeX、pdfTeX 和 XeTeX 中的工作方式不同。使用 LuaTeX 以外的任何引擎编译以下测试文件都会执行\show+
,这会显示the character +
,但 LuaTeX 会完全跳过此语句。
\newlinechar=10 \catcode10=12
\endlinechar=13 \catcode13=5
\scantokens{^^J\show+}
\bye
这种行为让我想起了 TeX 在类别代码 5(行尾)标记之后的行中不显示内容,因此一开始我认为 LuaTeX 中的默认类别代码可能有所不同。这就是我添加一些冗余类别代码分配的原因。显然,这还不够。
答案1
这是 LuaTeX 实现中的一个已知错误\scantokens
:http://tracker.luatex.org/view.php?id=733(将 pdfTeX 作为‘参考’行为,因此根据定义是正确的)。