排版“定义等于”符号

排版“定义等于”符号

我想排版两个复合符号来定义。以下

  • \newcommand{\defeq}{\mathrel{\mathop:}=}
  • \newcommand{\eqdef}{\mathrel{\mathop=}:}

建议CTAN 符号列表在第 35 页的脚注中。(嗯,第一个是建议的,第二个是我编的。)除了包括 之外,有没有更好的方法可以做到这一点txfonts?基本上,它总是看起来\defeq左边的空间比右边多,反之亦然\eqdef

编辑 - 大多数答案都在讨论修复冒号垂直位置的包。好的,这很好,我很想听听。但让我重申一下我的问题。我想修复 \defeq 左右两侧明显的空间差异。要了解我的意思,请查看$a \defeq b$Stefan 的答案中的排版方程。$a$$b$与中心的距离相等。但是因为冒号是一个较浅的符号,所以看起来$a$距离更远。这有道理吗?

答案1

我建议使用垂直居中的冒号,它与等号更匹配,\vcentcolon例如mathtools包。您也可以通过 将其一般更改为垂直\mathtoolsset{centercolon}

比较标准 :=

def equal

垂直居中:

def equal

所以你的定义可以变成

\usepackage{mathtools}
\newcommand{\defeq}{\vcentcolon=}
\newcommand{\eqdef}{=\vcentcolon}

间距更紧密。而且由于两个符号都已经是关系符号,正如 egreg 所说,我们甚至可以省略\mathrel

您还可以通过mathtools提供的命令更轻松地完成此操作:

\documentclass{article}
\usepackage{mathtools}
\begin{document}
$a\coloneqq b \qquad b\eqqcolon a$
\end{document}

答案2

mathtools软件包为您提供了centercolon = true|false选项,以及包括垂直居中冒号在内的各种预定义符号:

\documentclass{article}
\usepackage{mathtools}

\begin{document}

\[
a \coloneqq b \quad c \Colonapprox d \quad e \dblcolon f
\]

\mathtoolsset{centercolon}
\[
a := b
\]

\end{document}

答案3

据我所知,这是最好的解决方案(与数学工具为其\vcentcolon命令)。然而第二个定义应该是

\newcommand{\eqdef}{=\mathrel{\mathop:}}

否则,两个符号相对于另一个符号就会出现错误位置,结果无论如何都会很糟糕。

笔记
作为一名数学家,我从未觉得需要一个定义相等的符号,几个世纪以来,许多人都这么认为。但这有可能成为另一场宗教战争的根源。:)

答案4

查看命令代码时\defeq,我注意到指令范围存在不对称\mathrel。以下命令可避免符号周围间距的这种不对称:

\newcommand{\defeq}{\mathrel{:\mkern-0.25mu=}}
\newcommand{\eqdef}{\mathrel{=\mkern-0.25mu:}}

我利用了\mkern("math-kern") 命令来缩小两个组成符号之间的间距(很小)。mkern 指令的值是通过目测法确定的。

这种方法的缺点是冒号相对于等号没有垂直居中。这可以通过再摆弄一下来解决,但我认为最好使用预定义的宏。实际上,对于“冒号等号”符号,人们几乎感到尴尬:

  • mathabxMnSymbolmtpro2\coloneq
  • txfontspxfontsmathtools\coloneqq
  • 包装colonequals:(\colonequals还有什么?!)

请注意,该mtpro2软件包(“MathTime Pro 2”的缩写)有“精简版”(免费)和“专业版”(非免费)两种版本。 和mtpro2txfonts使用 Times-Roman 字体样式,并将pxfonts使用 Palatino 字体;这可能会或可能不会被您接受,具体取决于您使用的文本字体。软件包中的版本\mathabx有一个有趣的特点,即其“等号”符号的长度比正常长度短,并且其命令的结果宽度\coloneq与正常等号的宽度相同。

对于反向符号的预定义版本,即“equals-colon”,您可以使用包\eqcolon的命令mtpro2(如果您已经拥有该包,这可能是最简单的方法)或包\equalscolon的命令colonequals。此外,您可以随时将您喜欢的冒号-等号符号形式旋转 180 度,以使用包\rotatebox的命令生成反向graphicx符号。只需记住,您需要告诉 TeX 新符号的“类型”,应该是“mathrel”。以下 MWE 解释了如何实现此效果。

\documentclass{article}
\usepackage{MnSymbol, graphicx}
\newcommand{\eqcolon}{\mathrel{\rotatebox[units=360]{180}{\ensuremath{\coloneq}}}}
\begin{document}
$a \coloneq b$ and $c \eqcolon d$.
\end{document}

TeXing 快乐!

相关内容