我怎样才能缩小(或扩大) \stackrel 中的垂直间距?

我怎样才能缩小(或扩大) \stackrel 中的垂直间距?

我见过以下命令被大量使用来构成三角等于运算符,表示“定义为”:

\newcommand{\defeq}{\stackrel{\triangle}{=}}

但是,我不喜欢三角形和等号之间的距离,所以我想减少它们之间的距离。我尝试使用 raisebox,但似乎没有任何效果:

\newcommand{\defeq}{\stackrel{\raisebox{-10pt}{\(\scriptstyle\triangle\)}}{=}}

如果我对 extend-above 和 extend-below 参数输入不同的值,也不会产生任何效果

有人知道如何手动调整垂直空间\stackrel,或者为什么上述方法不起作用?

答案1

\stackrel利用与设置限制相同的 TeX 内部机制\sum

\newcommand{\stackrel}[2]{\mathrel{\mathop{#2}\limits^{#1}}

因此降低“上标”不会产生任何效果(提高会)。无论如何,最好使用\oversetamsmath并且,在这个特定情况下,使用预定义的符号。

在其他情况下,不进行测量的情况下如何解决您的问题?

我们需要的是对齐:但array会留下太多空间,我们需要再次测量。这里有一个解决方法;我将使用“三角形大于等号”作为示例:始终使用已经可用的符号。

\newcommand{\defeq}{%
  \mathrel{\vbox{\offinterlineskip\ialign{%
    \hfil##\hfil\cr
    $\scriptscriptstyle\triangle$\cr
    %\noalign{\kern0ex}
    $=$\cr
}}}}

我留下了一行(注释),人们可以在其中调整两部分之间的间隔;最好指定ex而不是pt单位,以便符号可以在各种字体大小中使用。

  1. 我们说符号是一种关系。

  2. 我们将建筑物封闭起来\vbox,以便底部元素的基线将用于整个建筑物。

  3. \vbox我们抑制通常的行间跳过机制(\offinterlineskip)。

  4. 我们开始对齐;\ialign只是一种将其\halign设置\tabskip为零的方法。

  5. 对齐由一列组成,其中的项目居中(\hfil#\hfil\cr#需要加倍因为我们在定义中)。

  6. 两行,可能用正或负的字距来调整分离。

这里有些例子

在此处输入图片描述

答案2

您可以简单地使用包\triangleq中的以下amssymb代码:

\documentclass{article}
\usepackage{amssymb}

\begin{document}

\[  a\triangleq b  \]

\end{document}

在此处输入图片描述

MnSymbol套餐提供\triangleeq

如果您想定义自己的符号,那么(假设您需要一个固定大小的符号)您可以执行以下操作:

\def\defeq{\mathrel{\ooalign{%
  \raisebox{1.3\height}{$\scriptscriptstyle\triangle$}\cr\hidewidth$=$\hidewidth\cr}}}

以下是此符号与 提供的符号的比较amssymb

\documentclass{article}
\usepackage{amssymb}

\def\defeq{\mathrel{\ooalign{%
  \raisebox{1.3\height}{$\scriptscriptstyle\triangle$}\cr\hidewidth$=$\hidewidth\cr}}}

\begin{document}

\[ a \defeq b \quad a\triangleq b\]

\end{document}

在此处输入图片描述

通过在第一个参数中输入长度,\raisebox您现在可以控制两个符号之间的垂直空间。

相关内容