每行垂直对齐多个符号

每行垂直对齐多个符号

在下面的 MWE 中,我希望\implies符号对齐,并且\leq每行上的两个符号也对齐(根据需要在所有内容之间添加空格)。

我如何&在代码中添加符号align*来实现这一点?

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
|p - q| \leq M
& \implies -M \leq p - q \leq M \\
& \implies q - M \leq p \leq q + M
\end{align*}
\end{document}

为了清楚起见,我希望输出看起来像这样(只需替换\leq每个<):

|p - q| < M ==>  - M  < p - q <  M
            ==> q - M <   p   < q + M

答案1

根据所需的对齐类型,您有几种选择:alignat来自amsmatharray或的环境用于\phantom添加间距:

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\begin{alignat*}{3}
|p - q| \leq M
& \implies -M && \leq p - q && \leq M \\
& \implies q - M && \leq p && \leq q + M
\end{alignat*}

\[
\begin{array}{c@{\ \implies\ }c@{\ \leq\ }c@{\ \leq\ }c}
|p - q| \leq M & -M & p - q &  M \\
& q - M &  p & q + M
\end{array}
\]

\begin{align*}
|p - q| \leq M
& \implies \phantom{q}-M \leq p - q \leq \phantom{q+{}}M \\
& \implies q - M \leq p\phantom{{}-q} \leq q + M
\end{align*}

\end{document}

在此处输入图片描述

下面是如何使用宏来获得注释中所需的对齐方式,\centerto该宏可以很好地利用\ooalign;该宏的定义在 ctt 这里作者:Enrico Gregorio:

\documentclass{article}
\usepackage{amsmath}

\newcommand{\centerto}[2]{% 
  {\ooalign{$\displaystyle\hphantom{#2}$\cr 
     \hidewidth$\displaystyle#1$\hidewidth\cr}}} 

\begin{document}

\begin{align*}
|p - q| \leq M
& \implies \centerto{-M}{q-M} \leq p - q \leq \centerto{M}{q+M} \\
& \implies q - M \leq \centerto{p}{p-q} \leq q + M
\end{align*}

\end{document}

在此处输入图片描述

答案2

您可以使用alignat环境(也可以从amsmath包中)

在此处输入图片描述

请注意(来自文档)

这个环境接受一个参数,即“公式列”的数量:计算任意行中 &s 的最大数量,加 1 并除以 2。

在这种情况下,每行有 5 个&,因此加 1 并除以 2 可得出{3}等式列。请注意,我已使用来获得符号{}周围的正确间距\leq

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{alignat*}{3}
|p - q| \leq M & \implies -M    &{}\leq{} & p - q & {}\leq {}& M \\
               & \implies q - M &{}\leq{} & p     & {}\leq {}& q + M
\end{alignat*}
\end{document}

这是使用array环境的另一种选择,但我认为 Gonzalo 的array答案提供了更好的间距

在此处输入图片描述

\documentclass{article}
\usepackage{array}
\usepackage{amsmath}
\begin{document}

\[
    \begin{array}{*{7}{c}}
            |p - q| \leq M & \implies & -M    &\leq & p - q &\leq & M \\
                           & \implies & q - M &\leq & p     &\leq & q + M
    \end{array}
\]
\end{document}

答案3

您可以使用使某些内容“不可见”。只需注意前后\phantom必须有空括号,如果没有它们,/符号的行为将类似于“一元运算符”,并获得不同的间距。{}+-+-

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
|p - q| \leq M
& \implies \phantom{q}-M \leq p - q \leq \phantom{q+{}}M \\
& \implies q - M \leq p\phantom{{}-q} \leq q + M
\end{align*}
\end{document}

解决方案二:居中

您可以两次\mathclap使用宏mathtools来使其居中。我创建了一个\mathcenterto带有两个参数的命令:第一个参数用于确定正确的宽度,第二个参数用于排版。请参阅以下代码:

\documentclass{article}
\usepackage{amsmath}

% YOU NEED THESE TWO LINES:
\usepackage{mathtools}
\def\mathcenterto#1#2{\mathclap{\phantom{#1}\mathclap{#2}}\phantom{#1}}

\begin{document}

\begin{align*}
|p - q| \leq M
& \implies \mathcenterto{q-M}{-M} \leq p - q \leq \mathcenterto{q+M}{M} \\
& \implies q - M \leq \mathcenterto{p-q}{p} \leq q + M
\end{align*}

\end{document}

相关内容