$$\eqalign{&{}+7=b\cr}$$
和
$$\eqalign{&+7=b\cr}$$
是一样的;但是
$$\eqalign{{}+7=b\cr}$$
和
$$\eqalign{+7=b\cr}$$
彼此不同(第一个在+
和之间有更多空间7
)。在所有情况下,“ +
”都显示为\mathbin
。为什么当使用 和不使用 时,\showlists
间距会有所不同?{}
&
注意:在\displaylines
TeXbook 第 196 页的示例中,提到了{}
用于进行+
二元运算。对于 来说,这可能是正确的\displaylines
,但对于 来说,则不正确\eqalign
,如上所示。
答案1
\tracingonline1
\showboxdepth\maxdimen
1
$$\eqalign{{}+7=b\cr}\showlists$$
2
$$\eqalign{+7=b\cr}\showlists$$
\bye
a{}
只会使 为空\mathord
,并且\mathbin
from+
会被视为 a ,\mathord
除非它不在列表的开头或结尾。
在第一种情况下,你会看到
.....\hbox(0.0+0.0)x0.0
.....\glue(\medmuskip) 2.22217 plus 1.11108 minus 2.22217
.....\tenrm +
.....\glue(\medmuskip) 2.22217 plus 1.11108 minus 2.22217
.....\tenrm 7
这是一个空的 mathord 原子,medmuskip 在 + 的两侧,因为它是一个 mathbin,那么 7
在第二种情况下,你会看到
.....\tenrm +
.....\tenrm 7
没有前导空字符(显示为\hbox
),则 + 和 7 没有间距,因为\mathbin
的性质+
被抑制。
您的第一个示例,在之后没有效果,因为&
宏已经在第二列添加了:{}
\eqalign
{}
\def\eqalign#1{\null\,\vcenter{\openup\jot\m@th
\ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil
\crcr#1\crcr}}\,}
因此第二列的模板是{}##
并且已经以一个空的 mathord 开始,因此您可以比较哪些{}+7
是{}{}+7
相同的输出。