\10 是否可以作为控制序列名称?

\10 是否可以作为控制序列名称?

第 3 章开头:控制 TeXKnuth 在他的 TeXbook 中解释说,控制序列有两种形式:控制词控制符号

控制字

第一种,比如\input,被称为控制字; 它由转义符和后跟一个或多个字母,后面跟着一个空格或字母以外的其他字符。[...] 如果你想知道“字母”是什么,答案是 TeX 通常将 52 个符号 A...Z 和 a...z 视为字母。数字 0...9 是不是被视为字母,因此它们不会出现在第一类控制序列中。

控制符号

另一类控制序列,如\',称为控制符号;它由转义字符和后面的单个非字母

为了测试我对这些类别的理解,我尝试编译以下代码(使用pdftex)......并且惊讶地发现没有任何错误!

\def\10{foo}
\def\20{bar}
\10\20
\bye

事实上,PDF 输出生成得很顺利:

在此处输入图片描述

我感到困惑的原因是\10\20似乎不属于任何一类允许的控制序列名称(如上所述):

  1. 它们包含非字母;因此,它们不能被视为控制词
  2. 它们由转义字符 ( \) 和后跟的更多的而不仅仅是一个非字母;因此,它们不能被视为控制符号

我错过了什么?

答案1

在这种情况下,0是参数文本的一部分,并充当分隔符标记。因此,您实际上是在定义\1和,\2并指定0后面需要分隔符标记。您可以使用此机制来分隔参数。

相关内容