在多行方程中在左对齐和右对齐之间切换

在多行方程中在左对齐和右对齐之间切换

我想排版一个包含多个等式和长项的等式。
每个等号应在新行上左对齐。但流到新行的剩余项应右对齐。
这是一个最小示例,我使用对齐符号来定位等式的各个部分:

\begin{align*}
  &p_{very\;long\;function}(x) =&& \\
  &&\int f_{very \; long \; integral \; terms}(x)&\\
  &&\mathcal{N}(x; 0, \sigma^2) dx&\\
  &= 2&&
\end{align*}

结果如下: 对齐

对齐将方程式推开。它确实会将其左右对齐,但各个列不能重叠。因此,它与仅将线条左右流动不同。
我想要得到的是: 編輯

在上图中,等式的宽度与最宽的线一样宽。并且各个线是左对齐或右对齐的。

我搜索了有关如何配置对齐的相关问题。有很多类似的问题,但似乎都没有回答我的问题:

更新:

澄清一下我的问题:文档是双列模式。这就是为什么我需要一种紧凑的方式来排版我的方程式。
这是一个有 4 行的示例方程式。第一行和最后一行应该是左边界。第二个决定方程的宽度,第三个应该是右边界。
我认为关键问题是 align 和 alignat 列可能不重叠。
代码如下:

\begin{align*}
  &p_{long \; function}(x) =\\
  & \int f_{many\; very \; long \; integral \; terms}(x)\\
  &\mathcal{N}(x; 0, \sigma^2) dx\\
  &= 2
\end{align*}

它看起来应该是这样的:

在此处输入图片描述

答案1

我假设您处于双列模式,如果我理解您的要求,它们可以通过aligned嵌套在外部的环境align*(具有单个对齐列)来满足。但是,我还提出了另一种解决方案,基于multlined

\documentclass[twocolumn]{article}
\usepackage{mathtools}

\begin{document}

\begin{align*}
  & p_\text{very\;long\;function}(x) = \\
  & \phantom{{}={}} \begin{aligned}[t]\int f_\text{very long integral terms}(x)\\
 \mathcal{N}(x; 0, \sigma^2)\, dx
 \end{aligned}\\
  & = 2
\end{align*}

\begin{align*}
  & p_\text{very\;long\;function}(x) \\
  & = \begin{multlined}[t]\int f_\text{very long integral terms}(x)\\
 \mathcal{N}(x; 0, \sigma^2)\, dx
 \end{multlined}\\
  & = 2
\end{align*}

\end{document} 

在此处输入图片描述

答案2

你必须正确地调整你的等式:

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{align*}
  p_{\text{very long function}}(x) &= &\\
  \int f_{\text{very long integral terms}}(x)&\\
  \mathcal{N}(x; 0, \sigma^2) dx &\\
  &= 2 &
\end{align*}


\begin{alignat*}{3}
  &p_{\text{very long function}}(x) =\\
  &\int f_{\text{very long integral terms}}(x)&\\
  &\mathcal{N}(x; 0, \sigma^2) dx&&\\
  &= 2
\end{alignat*}

\end{document}

align 与 alignat

答案3

我会按照以下方式写出你的等式:

\documentclass{article}
\usepackage{newtxtext,newtxmath}
\usepackage{mathtools}

\begin{document}
\begin{align*}
  p_{A}(x)  & = \int f_{B}(x) \mathcal{N}(x; 0, \sigma^2)\, dx  \\
            & = 2
\shortintertext{where are}
        A   & = \text{very long function} \\
        B   & = \text{very long integral terms} \\
\end{align*}

\end{document}

在此处输入图片描述

答案4

如果您使用 IEEE 样式,还有 IEEEeqnarray,它允许您为每列指定不同的对齐方式。
以下是示例:

\begin{IEEEeqnarray*}{llr}
  p(x) &=& \int f_{many\; very \; long \; integral \; terms}(x)\\
  &&\mathcal{N}(x; 0, \sigma^2) dx\\
  &= 2&
\end{IEEEeqnarray*}

其结果为: 在此处输入图片描述 请注意,严格来说,这才不是完全解决了我的问题。
这是一种在左对齐和右对齐之间切换的便捷方法,但各个列仍然无法重叠。渲染的输出看起来不错,因为我缩短了 的长度p(x)

相关内容