我喜欢使用$:=$
“定义为等于”来表示,但这种排版方式从来都不是人们所希望的对称排版方式,因为冒号相对于等号来说总是太低。有什么方法可以让它正确显示吗?
答案1
答案2
这个答案是为了让马修高兴,他不喜欢结肠中的点相距太远。(@Matthew:我确实知道你不喜欢它。)
\makeatletter
\newcommand*{\defeq}{\mathrel{\rlap{%
\raisebox{0.3ex}{$\m@th\cdot$}}%
\raisebox{-0.3ex}{$\m@th\cdot$}}%
=}
\makeatother
编辑:
为了让马修更高兴,我提供了另一个答案,它使用了不同的方法(受 的定义启发\vdots
),其中的点较小:
\newcommand*{\defeq}{\mathrel{\vcenter{\baselineskip0.5ex \lineskiplimit0pt
\hbox{\scriptsize.}\hbox{\scriptsize.}}}%
=}
答案3
我更喜欢 Donald Arseneau 的 hack,可以在TeX 常见问题解答(抱歉,此链接指向的是德语页面):
\mathchardef\ordinarycolon\mathcode`\:
\mathcode`\:=\string"8000
\begingroup \catcode`\:=\active
\gdef:{\mathrel{\mathop\ordinarycolon}}
\endgroup
只需将此代码放入您的序言中。然后您可以:=
照常使用,您将获得水平对称。\coloneqq
在我看来,这比 更容易使用。
根据@Will Robertson的评论,还有一个特点mathtools
改变数学模式下所有冒号的垂直对齐方式。
\mathtoolsset{centercolon}
答案4
Heiko Oberdiek 也提供了一个软件包:colonequals
有些字体有专门的字符来表示这些符号。不幸的是,存在与 相关的名称冲突\coloneq
,这可能指的是:-
或者至 ≔ (U+2254, :=
)。