使用字符代码“0C 和 expl3 生成活动字符会导致出现 \ERROR?

使用字符代码“0C 和 expl3 生成活动字符会导致出现 \ERROR?

最小示例:

\documentclass{article}
\begin{document}
\ExplSyntaxOn
\typeout{error: \expandafter \expandafter \expandafter \string \char_generate:nn {"0C} {13}}
\ExplSyntaxOff
\end{document}

输出:

error:\ERROR

使用latex或进行编译pdflatex

知道发生什么事了吗?

答案1

带有 8 位引擎的代码\char_generate:nn使用一组预存储标记的方法来“生成”结果。由于代码设置为 2022 年底,因此不允许\outer创建活动。与普通 TeX 一样,^^L故意过滤掉这种情况并替换为以避免不受控制的错误。\outerexpl3\ERROR

正如评论中所讨论的,通过反转存储的令牌,使得阴极-13 位于第一个,可以通过\noexpand在活性物质生成期间应用来避免不受控制的情况。因此,expl3从 2023 年起的版本没有此限制。

相关内容