为什么 \def\xxx 会出现错误:“!未定义的控制序列”

为什么 \def\xxx 会出现错误:“!未定义的控制序列”

为什么\def\xxx{#1}会报错:“!未定义的控制序列”?

它可能由于 的内容而发生#1

扩展的问题吗?

答案1


\message{\def\xxx{#1}}

\bye

生产

! Undefined control sequence.
l.2 \message{\def\xxx
                     {#1}}
? 

因为在扩展上下文中(例如\message\write\edef标记会扩展但不会发生赋值)。

因此\def保持不变,\def然后\xxx会扩展,但由于未定义,因此会出现错误。

如消息中的换行符所示,{#1}尚未处理且与错误无关。

相关内容