本练习的答案中下列句子的含义是什么?
另一方面,
\left
如果后面的字符是左括号,则会出错。因此,最好为所有分隔符指定控制序列名称。
以下是一个例子:
\tracingmacros=1
\tracingonline=1
$\bigl{\delimiter"426830A}$
\tracingmacros=0
\end
据我所知,“\left
如果以下字符是左括号,则会失败”部分指的是 中的括号\bigl{\delimiter"426830A}
。但这毫无意义,因为括号被剥离了:
#1<-\delimiter "426830A
因此,关于“所有定界符都有控制序列名称”的部分令人困惑,因为{\delimiter...}
它工作得完全正常。
答案1
这句话并没有提到
$\bigl{\delimiter"426830A}$
这完全没问题,因为\bigl
这是一个接受参数的宏,因此会去掉括号。相反,它引用的是这样的(虚构的)构造
$\left{\delimiter"426830A}\right.$
这样做是行不通的,因为\left
需要直接使用分隔符,而不需要括号。
另一方面,这是可行的
$\left\delimiter"426830A\right.$
但使用此语法,这将变成错误
$\bigl\delimiter"426830A$
这就是为什么 Knuth 建议为分隔符定义一个宏,在这种情况下
\def\langle{\delimiter"426830A }
因为以下两个方法都可以完美运行
$\bigl\langle$
$\left\langle\right.$