\mathbin 和 \mathrel 之间有什么区别?

\mathbin 和 \mathrel 之间有什么区别?

它们看起来非常相似,因为它们都分隔两个操作数。什么时候会使用一个而不是另一个?它们周围的数学间距有什么区别吗?

这些中的间距与产生的间距有何关系\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$

如果使用 mathrel 而不是 mathbin,则会出现不良间距的示例

这只是符号类型不正确时间距可能出现问题的一个例子。

比较\mathop\mathbin和相反\mathrel\mathop适用于\sum、 等\cos\ln并且仅插入一个窄空格(3/18 em,不收缩或拉伸),并且与 和 一样\mathbin\mathrel具有特殊的间距规则,以使其在大多数情况下正确间距。

相关内容