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
gather
fleqn
\documentclass{article}
\usepackage[fleqn]{amsmath}
\begin{document}
\begin{gather}
a = x\\
b = x\,y
\end{gather}
\end{document}