无法左对齐多个方程式

无法左对齐多个方程式

tex.SE 上已经有很多关于这个主题的问题,但尽管我尝试过,我似乎无法在方程组上使用左对齐。这是一个 MWE:

\documentclass{article}
\usepackage{amsmath}

\begin{document}
\begin{align*}
    a = x\\
    b = x*y
\end{align*}
\end{document}

怎么了 ?

答案1

您误用了align。此环境会产生成对的列(通常只使用两列),一列右对齐,一列左对齐。

后续对具有相同的行为并align在对之间留出空间,以便可用空间被均匀划分(包括整体左侧和右侧空间)。

不太清楚您所说的“左对齐”是什么意思。如果您希望方程式与边距保持固定距离,则选项fleqn将为amsmath您完成此操作。

但是,在类似你的情况下,= 符号通常也是对齐的。因此,你可以选择以下选项:

\documentclass{article}
\usepackage{amsmath}

\usepackage{lipsum} % for mock text

\begin{document}

\lipsum[1][1-3]
\begin{align}
a &= x \\
b &= xy \\
ccc &= xyz
\end{align}
\lipsum[2][1-3]
\begin{align}
&a = x \\
&b = xy \\
&ccc = xyz
\end{align}
\lipsum[3][1-3]

\end{document}

在第二个示例中,第一列被跳过,方程式在左侧边距对齐。我添加了更长的左侧,以便更好地看到差异。

在此处输入图片描述

如果您想要(根据边距方程固定长度),您可以在第二种情况下使用fleqn省去前导。&gather

\documentclass{article}
\usepackage[fleqn]{amsmath}

\usepackage{lipsum} % for mock text

\begin{document}

\lipsum[1][1-3]
\begin{align}
a &= x \\
b &= xy \\
ccc &= xyz
\end{align}
\lipsum[2][1-3]
\begin{gather}
a = x \\
b = xy \\
ccc = xyz
\end{gather}
\lipsum[3][1-3]

\end{document}

在此处输入图片描述

对于 =,使用哪种对齐取决于几个因素,没有固定的规则涵盖所有情况。一般来说,我只对齐彼此密切相关的 = 方程,但这是我的做法。

答案2

您缺少&用于选择对齐位置的字符:

\documentclass{article}
\usepackage{amsmath}

\begin{document}
\begin{align}
    &a = x\\
    &b = x\,y
\end{align}
\end{document}

请注意,它可以在多个位置使用,但原则上用途是排列方程表。因此,表达式将坚持奇数位置&并从偶数位置刷新&。因此,如果您想要在方程的开头和之前对齐,则=必须将 加倍& :

\documentclass{article}
\usepackage{amsmath}

\begin{document}
\begin{align}
    &a &&= x\\
    &b &&= x\,y
\end{align}
\end{document}

还请注意,如果您只是将环境与选项一起&使用,则不需要(尽管整个系统不会居中):amsmath gatherfleqn

\documentclass{article}
\usepackage[fleqn]{amsmath}

\begin{document}
\begin{gather}
    a = x\\
    b = x\,y
\end{gather}
\end{document}

相关内容