为什么有两个命令 \> 和 \: 可以执行相同的操作?

为什么有两个命令 \> 和 \: 可以执行相同的操作?

该文件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,允许不仅在数学中使用它,也在文本模式下使用它。

相关内容