如何改变二元关系间距的默认值?

如何改变二元关系间距的默认值?

在 TeX 和 LaTeX 中,数学二进制关系(例如,,,=... )的两侧都有默认(橡胶长度)间距,这对我来说太大了。如何减少它?\parallel<\le

答案1

这个答案不鼓励修改空格,因为 TeX 已经做得很好了。它只是讨论了数学元素周围的间距概念。

数学运算符周围的间距在mathmode文档(部分11 空间,第 28 页)。以下是一个例子:

enter image description here

\documentclass{article}
\newcommand{\func}{f(x) = x^2 + 3x_0 \cdot \sin x}% Function
\begin{document}
\[
  \renewcommand{\arraystretch}{1.5}
  \begin{array}{rl}
    \mbox{default} & \func \\
    \verb|\thinmuskip=0mu| & \setlength{\thinmuskip}{0mu} \func \\
    \verb|\medmuskip=0mu| & \setlength{\medmuskip}{0mu} \func \\
    \verb|\thickmuskip=0mu| & \setlength{\thickmuskip}{0mu} \func \\
    \mbox{all set to zero} & \setlength{\thinmuskip}{0mu}\setlength{\medmuskip}{0mu}
      \setlength{\thickmuskip}{0mu} \func
  \end{array}
\]
\end{document}

要手动调整符号周围的空间量,您可以将其更改为序数符号,方法是将其括在括号中 - 例如{=}- 然后在它周围添加所需的空间:\,{=}\,。这是另一个示例:

enter image description here

\documentclass{article}
\begin{document}
\[
  \begin{array}{rc}
      \mbox{default} & x = x \\
      \verb|\mathbin| & x \mathbin{=} x \\
      \verb|\mathrel| & x \mathrel{=} x \\
      \verb|\mathord| & x \mathord{=} x \\
      \verb|{ }| & x {=} x \\
      \verb|\,{ }\,| & x\,{=}\,x \\
      \verb|\;{ }\;| & x\;{=}\;x \\
      \verb|\:{ }\:| & x\:{=}\:x
  \end{array}
\]
\end{document}

负空间,虽然没有显示,但可以通过 获得\!。当然,您也可以使用其他间距宏,例如\hspace

另请参阅\mathbinvs. 和有什么不一样\mathrel讨论二进制和关系运算符之间的间距差异。

答案2

Werner 已经解释过,如果你想改变默认设置,你必须改变\thickmuskip。然而,我不太同意 Werner 的观点,TeX 已经做得很好了;我还认为有时两边的间距太大了。默认值\thickmuskip

5mu plus 5mu

因此它可以从 拉伸5mu10mu。(这种拉伸只会发生在内联数学中,而不会发生在显示的数学中。)虽然我喜欢5mu,但我认为增加的拉伸太多了,我认为一点收缩也是可以的。所以我的序言通常包含

\thickmuskip=5mu plus 3mu minus 1mu

因此,我不会改变“标准” 5mu,但空间只能延伸到8mu,我允许它缩小到4mu。(如果您想知道 a 是什么:它是来自家族 2(符号家族)mu的 的 1/18 。)em

为了进行比较,下图第一行显示了默认设置下的效果,第二行显示了我修改后的效果

maximum stretch and shrink

它不是很多有点不同,但我更喜欢第二行。请注意,默认值\medmuskip(用于二进制运算)是

4mu plus 2mu minus 4mu

即它可以缩小到。就我个人而言,我也不喜欢这样,所以我

\medmuskip=4mu plus 2mu minus 3mu

在我的序言中 – 也请看一下图片中的差异!

相关内容