当存在额外组时无法将钩子添加到命令中

当存在额外组时无法将钩子添加到命令中

考虑以下示例。代码试图在 之后附加一些内容\mytest。奇怪的是,当有一个额外的组时, 不起作用\hook_gput_code:nnn。没有错误消息,只是编译过程永远不会停止。为什么会发生这种情况?应该怎么做才能使钩子起作用?

\documentclass{article}

% \def\mytest{\normalfont\bfseries Text} % works
\def\mytest{{\normalfont\bfseries Text}} % does not work

\ExplSyntaxOn
\hook_gput_code:nnn { cmd/mytest/after } { mymodule }
  {
    Some code
  }
\ExplSyntaxOff

\begin{document}

\mytest

\end{document}

答案1

这是由检测命令类型(命令定义方式;此信息用于确定如何添加钩子cmd)的内部函数中的错误引起的。该错误会导致代码过早扩展,这可能会造成麻烦,具体取决于代码的定义方式。此问题已在 2022-06-01 版本中修复。

以下是可能对此感兴趣的人所遵循的相关拉取请求:https://github.com/latex3/latex2e/pull/796

相关内容