算法中的 flalign

算法中的 flalign

这个问题与这里提供的答案有点相关: 如何使用左对齐环境?

我使用 algorithm2e 和 mathtools 编写一个包含方程式的算法。我希望它位于左侧。为什么我必须在行首添加额外的 &(为了清晰起见,后面加了一个空格),而没有算法环境我不需要这样做?

梅威瑟:

\documentclass{article}
\usepackage{mathtools}
\usepackage[ruled,vlined]{algorithm2e}

\begin{document}

  \begin{algorithm}
    \begin{flalign*}
    &     \mu_\beta \leftarrow \frac{1}{m} \sum_{i=1}^{m}{x_1}&
    \end{flalign*}
  \end{algorithm}

\end{document}

答案1

这与 无关,algorithm2e所以我将忽略它。基本上align,它的兄弟实际上是连续rl列的数组。flalign然后拉伸列间空间在这些之间 rl 填充页面宽度。当然,这只有在您至少有两对这样的列时才有效,也就是说,您至少需要两个&:如果您只有一个&,那么您就从列跳转r到列l,但您仍然有所谓的amsmath“方程式列”(正如我所说,它实际上是一对列),并且这仍然会居中。

\documentclass{article}

\usepackage{mathtools}
\usepackage[showframe,textwidth=8cm]{geometry}

\begin{document}

\begin{flalign*}
R & L &            R & L \\
right & left & right & left
\end{flalign*}
%
\begin{flalign*}
fooooo & \\
baz    &
\end{flalign*}
%
\begin{flalign*}
& fooooo \\
& baz
\end{flalign*}
%
\begin{flalign*}
& fooooo & \\
& baz    & 
\end{flalign*}
%
\begin{flalign*}
fooooo &&\\
baz    &&
\end{flalign*}

\end{document}

在此处输入图片描述

请注意,在最后两个例子中,原则上将第二个放在&一行中就足够了,因为这足以触发扩展机制。

相关内容