它们看起来非常相似,因为它们都分隔两个操作数。什么时候会使用一个而不是另一个?它们周围的数学间距有什么区别吗?
这些中的间距与产生的间距有何关系\mathop
?
答案1
从名称来看,\mathbin
修改某些东西周围的间距,使其符合二进制的间距操作员,同时\mathrel
修改间距以表示二进制关系。以下是展示差异的基本方法:
\documentclass{article}
\begin{document}
\begin{tabular}{clc}
\multicolumn{3}{c}{Relations} \\[5pt]
\LaTeX & Typeset & width \\ \hline
\verb|$x=x$| & $x=x$ & \setbox0=\hbox{$x=x$} \the\wd0 \\
\verb|$x\mathbin{=}x$| & $x\mathbin{=}x$ & \setbox0=\hbox{$x\mathbin{=}x$} \the\wd0 \\
\verb|$x\mathrel{=}x$| & $x\mathrel{=}x$ & \setbox0=\hbox{$x\mathrel{=}x$} \the\wd0 \\[10pt]
\multicolumn{3}{c}{Binary operators} \\[5pt]
\LaTeX & Typeset & width \\ \hline
\verb|$x+x$| & $x+x$ & \setbox0=\hbox{$x+x$} \the\wd0 \\
\verb|$x\mathbin{+}x$| & $x\mathbin{+}x$ & \setbox0=\hbox{$x\mathbin{+}x$} \the\wd0 \\
\verb|$x\mathrel{+}x$| & $x\mathrel{+}x$ & \setbox0=\hbox{$x\mathrel{+}x$} \the\wd0
\end{tabular}
\end{document}
注意周围的间距+
与的相匹配\mathbin
,而周围的间距=
与的相匹配\mathrel
。
来自 TeXBook (第 17 章:更多关于数学,第 154 页):
每个数学字符都有一个介于 0 到 4095 之间的标识码,通过将 256 乘以家族编号加上位置编号获得。这很容易用十六进制表示法表示,使用一个十六进制数字表示家族,两个十六进制数字表示字符;例如,
\hex{24A}
代表\hex{4A}
家族 2 中的字符。每个字符还被分配到八个类别之一,编号为 0 到 7,如下所示:第 0 类:普通运算符(例如,
/
)
第 1 类:大运算符(例如,\sum
)
第 2 类:二元运算(例如,+
)
第 3 类:关系(例如,=
)
第 4 类:开运算符(例如,(
)
第 5 类:闭运算符(例如,)
)
第 6 类:标点符号(例如,,
)
第 7 类:变量族(例如,x
)在数学打印语言中,类别 0 到 6 说明字符属于哪个“词性”;类别 7 是一种特殊情况 [...]。类别号乘以 4096 并添加到字符号中,这与使其成为四位十六进制数的前导数字相同。...
TeX
将类与子公式以及单个字符相关联。因此,例如,如果您愿意,可以将复杂构造视为二元运算或关系等。命令\mathord
、\mathop
、\mathbin
、\mathrel
、\mathopen
、\mathclose
和\mathpunct
用于此目的;每个命令后跟单个字符或括号中的子公式。例如,\mathopen\mathchar"1234
等同于\mathchar"4234
,因为\mathopen
强制类别 4(开)。在公式中$G\mathbin:H$
,冒号被视为二元运算。...
还有
第八个分类,,\mathinner
通常不用于单个符号;分数和\left...\right
构造被视为“内部”子公式,这意味着在某些情况下它们将被额外的空格包围。所有其他子公式通常被视为普通符号,无论它们是由\overline
或\hbox
或\vcenter
还是简单地用括号括起来。因此,\mathord
并不是 TeX 语言的必要组成部分;除了输入 之外,$1\mathord,234$
您还可以从 获得相同的效果$1{,}234$
。
答案2
\mathrel
和之间有三个主要区别\mathbin
:
1.为了使数学公式具有最佳的可读性,更重要的元素必须占用更多空间。这就是为什么\mathrel
(对于数学关系,如、=
、等)占用较宽的空间(5/18 em),而(对于数学二元运算符,如、、等)占用中等空间(4/18 em)。两者之间的差别很小,但可以增强公式的可读性。<
>
\mathbin
+
-
\oplus
2. \mathbin
并且\mathrel
相对于收缩或拉伸而言,其行为有所不同。当 TeX 在给定行上没有足够的可用空间时,它将收缩一个\mathbin
空间,但永远不会对一个\mathrel
空间这样做。当 TeX 在给定行上有太多可用空间时,它将同时拉伸两者。以下是使用的值(1mu = 1/18 em):
\medmuskip = 4mu plus 2mu minus 4mu
\thickmuskip = 5mu plus 5mu
以下是两种情况的示例:
正如您所看到的,在收缩的情况下,+
它周围没有空间,但在拉伸的情况下,=
可以延伸得更多+
(10/18 em 与 6/18 em)。
3.最后,\mathbin
和\mathrel
在不同上下文中表现不同。例如,按预期工作(和$A = -B$
之间没有空格),但不会:-
B
$A = \mathrel{-}B$
这只是符号类型不正确时间距可能出现问题的一个例子。
比较\mathop
:与\mathbin
和相反\mathrel
,\mathop
适用于\sum
、 等\cos
,\ln
并且仅插入一个窄空格(3/18 em,不收缩或拉伸),并且与 和 一样\mathbin
,\mathrel
具有特殊的间距规则,以使其在大多数情况下正确间距。