对齐 :=、= 和 =: 符号

对齐 :=、= 和 =: 符号

在对齐环境中,使符号\coloneq=\eqcolon(由包提供)以良好方式对齐(以便每个符号的相等部分对齐)的最佳方法是什么?mathtools

&我可以通过放置后一个并使用空字段来正确获得 mathrel 对齐,从而使前两个很好地对齐,如下所示,...但第三个对齐得很糟糕。

r(x) \coloneq{}& \log x^{-(k+1)} + k\\
            ={}& -\log x \quad\text{if } k=0\\
     \eqcolon{}& s(x)

在此处输入图片描述

同样,如果我将它们左对齐,则后两个会对齐,但第一个却不是:

r(x) &\coloneq \log x^{-(k+1)} + k\\
     &= -\log x \quad\text{if } k=0\\
     &\eqcolon s(x)

在此处输入图片描述

我想我可以通过一些临时调整来推动事情的发展,但是,有没有更好的方法解决这个问题?

答案1

定义与合适的模型对齐的符号。

\documentclass{article}
\usepackage{mathtools}
\usepackage{xcolor}

\newcommand{\phantomcolon}{\mathrel{\phantom{:\mkern-1.2mu}}}

\newcommand{\acoloneqq}{\coloneqq\phantomcolon}
\newcommand{\aeqqcolon}{\phantomcolon\eqqcolon}
\newcommand{\aequalsa}{\phantomcolon=\phantomcolon}
\newcommand{\aequals}{\phantomcolon=}
\newcommand{\equalsa}{=\phantomcolon}

\begin{document}

\begin{equation*}
\begin{aligned}
r(x) &\acoloneqq \log x^{-(k+1)} + k\\
     &\aequalsa  -\log x \quad\text{if } k=0\\
     &\aeqqcolon s(x)
\end{aligned}
\end{equation*}

\end{document}

在此处输入图片描述

\aequalsa当两种冒号都使用时,使用,\aequals即仅在左侧使用冒号或\equalsa仅在右侧使用冒号。在后两种情况下,您只需使用\eqqcolon\coloneqq

或者干脆忘记冒号并使用 =,正如在编程语言宣传使用冒号之前的几个世纪里数学家们所做的那样。

相关内容