我希望我没有在这里重复任何内容...
我的简单问题是:在对齐环境中对齐各条线的规则是什么?
例如 - 一开始我以为
\begin{align*}
a &= bbbbbbbbbbbbbb \\
c &= d
\end{align*}
会将“=”对齐到页面的中心,但事实并非如此。
然后我以为它会把较长的(第一个)方程放在页面中间,但事实并非如此。事实上,前面的代码片段不会把“=”放在与
\begin{align*}
a &= bbbbbbbbbbbbbb \\
cc &= d
\end{align*}
(唯一的区别是现在有两个“c”)。
那么规则是什么?
答案1
环境align
并未按照您想象的那样运行。
\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor} % for the guide rule
\begin{document}
\noindent\smash{\makebox[\textwidth]{\hfill\color{black!20}\vrule depth \textheight\hfill}}
First example:
\begin{align*}
a &= bbbbbbbbbbbbbb \\
c &= d
\end{align*}
\makebox[\textwidth]{%
\settowidth{\dimen0}{$\displaystyle a = bbbbbbbbbbbbbb$}%
\hrulefill
\smash{\makebox[\dimen0]{\color{red}\vrule height2cm\hrulefill\vrule height2cm}}%
\hrulefill
}
Second example:
\begin{align*}
a &= bbbbbbbbbbbbbb \\
cc &= d
\end{align*}
\makebox[\textwidth]{%
\settowidth{\dimen0}{$\displaystyle cc = bbbbbbbbbbbbbb$}%
\hrulefill
\smash{\makebox[\dimen0]{\color{red}\vrule height2cm\hrulefill\vrule height2cm}}%
\hrulefill
}
\end{document}
不要为产生规则的代码而烦恼,它与解释无关;我只是用它来展示align
做什么。
灰色规则标记了页面的精确纵轴。红色规则标记了环境的边界align
。您会看到,通常情况下,整个块都是水平居中的,这是考虑到整个宽度的。
这对于具有单个对齐点或不太宽的方程式有效align
。如果添加了方程式编号,则通常无需调整。
图片是通过变成 得到的align*
。align
但是,如果块太宽而太靠近方程编号,它将被移动到左侧(如果数字在左侧,则移动到右侧)。
从排版角度来说,没有理由尝试将对齐点放在页面的中心,尤其是当等式的“右侧”(实际上是对齐点后面的部分)很长时。让我们来模拟一下。
这是将等号置于页面中央后得到的结果:
这是标准位置:
我们关心的不是页面上对齐点的位置,而是对齐点相对于彼此的相对位置以及整个事物的整体平衡,包括显示屏上方和下方的文本。
还要记住,在块中显示一些方程式这一简单事实并不一定保证align
;如果有关系在方程之间。很多时候,我们会看到等号处的对齐是不必要的,并且会产生非常不平衡的结果。请记住,当显示中的方程组需要对齐(但不是全部)时,您可以align
嵌套。gather
当对齐点较多时,align
制作“右对齐/左对齐”列块,并通过均等划分块之间剩余的空白空间来定位它们。
答案2
align
的首要任务是将 前面的关系符号对齐&
。然后它将包围整个环境内容的框居中。如下所示。
一般提示:不要\\
在最后一行之后使用,并将&
前,而不是在关系符号之后。否则另请参见将二元运算符对齐到关系符号的右侧的最佳方法是什么?。
您可以在amsmath
用户指南,§3。
这个问题可能也很有趣:将单独等式中的“=”始终对齐到页面的中心。
生成上述代码不必要地复杂,但我仍然将其包括在内:
\documentclass{article}
\usepackage{amsmath, mathtools}
\usepackage{tikz}
\usepackage{empheq}
\usepackage[showframe]{geometry}
\begin{document}
\noindent\hspace*{\fill}\tikz[remember picture, overlay]{\draw[black!50] (0,-19) -- (0,3);}\hspace*{\fill}
\verb|align*| with markers
\begin{empheq}[box=\fbox]{align*}
\Aboxed{\text{who knows} &= a \hspace{5cm} a} \\
\Aboxed{a \hspace{6cm} a &= \text{some long math stuff}}
\end{empheq}
\verb|align*| without markers
\begin{empheq}[box=\fbox]{align*}
\Aboxed{\text{who knows} = a \hspace{5cm} a} \\
\Aboxed{a \hspace{6cm} a = \text{some long math stuff}}
\end{empheq}
\verb|gather*|
\begin{empheq}[box=\fbox]{gather*}
\boxed{\text{who knows} = a \hspace{5cm} a} \\
\boxed{a \hspace{6cm} a = \text{some long math stuff}}
\end{empheq}
\end{document}