我见过以下命令被大量使用来构成三角等于运算符,表示“定义为”:
\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}}
因此降低“上标”不会产生任何效果(提高会)。无论如何,最好使用\overset
。amsmath
并且,在这个特定情况下,使用预定义的符号。
在其他情况下,不进行测量的情况下如何解决您的问题?
我们需要的是对齐:但array
会留下太多空间,我们需要再次测量。这里有一个解决方法;我将使用“三角形大于等号”作为示例:始终使用已经可用的符号。
\newcommand{\defeq}{%
\mathrel{\vbox{\offinterlineskip\ialign{%
\hfil##\hfil\cr
$\scriptscriptstyle\triangle$\cr
%\noalign{\kern0ex}
$=$\cr
}}}}
我留下了一行(注释),人们可以在其中调整两部分之间的间隔;最好指定ex
而不是pt
单位,以便符号可以在各种字体大小中使用。
我们说符号是一种关系。
我们将建筑物封闭起来
\vbox
,以便底部元素的基线将用于整个建筑物。在
\vbox
我们抑制通常的行间跳过机制(\offinterlineskip
)。我们开始对齐;
\ialign
只是一种将其\halign
设置\tabskip
为零的方法。对齐由一列组成,其中的项目居中(
\hfil#\hfil\cr
,#
需要加倍因为我们在定义中)。两行,可能用正或负的字距来调整分离。
这里有些例子
答案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
您现在可以控制两个符号之间的垂直空间。