Align 如何工作?

Align 如何工作?

我希望我没有在这里重复任何内容...

我的简单问题是:在对齐环境中对齐各条线的规则是什么?

例如 - 一开始我以为

\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}

相关内容