在下面的 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
来自amsmath
、array
或的环境用于\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}