该文件latex.ltx
称:
\DeclareRobustCommand\:{\tmspace+\medmuskip{.2222em}}
\let\>=\:
为什么有两个同样长的命令\>
,却\:
执行完全相同的操作?对我来说,它们看起来毫无道理地多余。一个命令就够了吗?
(以防万一您争辩说\>
在环境中已经在重新定义了tabbing
:为什么不在\:
制表环境中给出转到下一列的含义,并让其\>
保留其通常的水平间距定义\tmspace+\medmuskip{.2222em}
,该定义在数学模式下默认为\mskip+\medmuskip
,可能与纯 TeX 兼容\mskip\medmuskip
?)
答案1
在普通的 TeX 中,Knuth\>
用于\mskip\medmuskip
:
\def\,{\mskip\thinmuskip}
\def\>{\mskip\medmuskip}
\def\;{\mskip\thickmuskip}
\def\!{\mskip-\thinmuskip}
LaTeX\>
在 中使用 具有不同的含义tabbing
。这几乎不会引起冲突,但从一开始,Lamport 就决定提供\:
,\mskip\medmuskip
也许还因为他考虑了,:;
更好的助记序列,谁知道呢?
无论如何,为了与纯 TeX 兼容,这在开始时是首选,因为人们可以更轻松地切换,\>
因为提供了 的别名(当然,\:
仅限于 之外)。tabbing
\:
内核中的定义最近被修改,采用了中的定义amsmath
,允许不仅在数学中使用它,也在文本模式下使用它。