数学模式中的多重对齐 - 数学等同于`\multicolumn`?

数学模式中的多重对齐 - 数学等同于`\multicolumn`?

我有一些相当长的数学运算需要放入双列文档格式中,因此数学运算通常需要分成多行。

在下面的例子中,我想将最后一行的开括号与上面一行的开括号对齐。

\begin{align}
P(&\mathcal{X},\mathcal{C},\xi|\alpha,\beta,\theta^0) \notag\\
&= \prod_d P(\mathcal{X}_d|\beta)P(\mathcal{C}_d|\alpha,\xi) \prod_c P(\xi^c|\theta^0) \notag\\
&\propto\prod_d \beta^d_c \left(F(\mathcal{C}_d)\prod_t (\mathcal{C}_{dt})^{\alpha\xi_t}\right) \notag\\
&                          \left( \prod_c F(\xi^c)\prod_t(\xi_t)^{\theta^0_t} \right)
\end{align}

在此处输入图片描述

添加另一个对齐标记会将最后的部分推到右侧(见下文):

\begin{align}
P(&\mathcal{X},\mathcal{C},\xi|\alpha,&\beta,\theta^0) \notag\\
&= \prod_d P(&\mathcal{X}_d|\beta)P(\mathcal{C}_d|\alpha,\xi) \prod_c P(\xi^c|\theta^0) \notag\\
&\propto\prod_d \beta^d_c &\left(F(\mathcal{C}_d)\prod_t (\mathcal{C}_{dt})^{\alpha\xi_t}\right) \notag\\
&                         &\left( \prod_c F(\xi^c)\prod_t(\xi_t)^{\theta^0_t} \right)
\end{align}

我尝试了一个命令\shoveleft来将它们推到左边,但是没有作用:

\begin{align}
P(&\mathcal{X},\mathcal{C},\xi|\alpha,&\shoveleft{\beta,\theta^0)} \notag\\
&= \prod_d P(&\shoveleft{\mathcal{X}_d|\beta)P(\mathcal{C}_d|\alpha,\xi) \prod_c P(\xi^c|\theta^0)} \notag\\
&\propto\prod_d \beta^d_c &\shoveleft{\left(F(\mathcal{C}_d)\prod_t (\mathcal{C}_{dt})^{\alpha\xi_t}\right)} \notag\\
&                         &\left( \prod_c F(\xi^c)\prod_t(\xi_t)^{\theta^0_t} \right) \notag\\
\end{align}

前两次尝试都产生了类似下图的结果。我还尝试了一个split环境,结果很奇怪。

在此处输入图片描述

即使\shoveleft可行,这也不太理想,因为它会弄乱前两行的内部间距。理想情况下,我希望前两行忽略&最后两行的位置标记(类似于\multicolumn表格中的位置标记)。

答案1

有了amsmath它,aligned您就可以在其他构建块中使用环境;它会在它前面插入一个微小的空间,可以使用 撤消该空间\!

split如果您使用insideequation而不是 one的组合align,则只会附加一个公式编号,这样就无需\notag多次书写。默认情况下,数字居中,但此tbtags选项会将其放在最后一行。

如果您加载mathtools,即加载amsmath,则可以使用 轻松将第一行向左推\MoveEqLeft,而不必在该行中指定一个不寻常的对齐点。该命令带有一个可选参数,即一个数字,指定em向左移动多少个 s ,默认值为2

我说明了包含块的两种不同方法aligned,它们为方程编号提供了不同的垂直间距。

示例输出

\documentclass{article}

\usepackage[tbtags]{mathtools}

\begin{document}

\begin{equation}
  \begin{split}
    \MoveEqLeft
    P(\mathcal{X},\mathcal{C},\xi|\alpha,\beta,\theta^0) \\
    &= \prod_d P(\mathcal{X}_d|\beta)P(\mathcal{C}_d|\alpha,\xi)
    \prod_c P(\xi^c|\theta^0) \\ 
    &\propto\prod_d \beta^d_c\!\begin{aligned}[t]
      &\left(F(\mathcal{C}_d)\prod_t
        (\mathcal{C}_{dt})^{\alpha\xi_t}\right)\\
      & \left( \prod_c F(\xi^c)\prod_t(\xi_t)^{\theta^0_t} \right)
    \end{aligned}\\
  \end{split}
\end{equation}
or
\begin{equation}
  \begin{split}
    \MoveEqLeft
    P(\mathcal{X},\mathcal{C},\xi|\alpha,\beta,\theta^0) \\
    &= \prod_d P(\mathcal{X}_d|\beta)P(\mathcal{C}_d|\alpha,\xi)
    \prod_c P(\xi^c|\theta^0) \\ 
    &\,\begin{aligned}[b]\propto\prod_d \beta^d_c
      &\left(F(\mathcal{C}_d)\prod_t
        (\mathcal{C}_{dt})^{\alpha\xi_t}\right)\\
      & \left( \prod_c F(\xi^c)\prod_t(\xi_t)^{\theta^0_t} \right)
    \end{aligned}
  \end{split}
\end{equation}

\end{document}

答案2

您可以使用\phantom命令

\documentclass{article}

\usepackage{multicol,amsmath,amssymb,geometry}

\begin{document}
\begin{multicols}{2}

\begin{align}
P(&\mathcal{X},\mathcal{C},\xi|\alpha,\beta,\theta^0) \notag\\
&= \prod_d P(\mathcal{X}_d|\beta)P(\mathcal{C}_d|\alpha,\xi) \prod_c P(\xi^c|\theta^0) \notag\\
&\propto\prod_d \beta^d_c \left(F(\mathcal{C}_d)\prod_t (\mathcal{C}_{dt})^{\alpha\xi_t}\right) \notag\\
&\phantom{\propto\prod_d \beta^d_c } \left( \prod_c F(\xi^c)\prod_t(\xi_t)^{\theta^0_t} \right)
\end{align}

\begin{align}
P(&\mathcal{X},\mathcal{C},\xi|\alpha,\beta,\theta^0) \notag\\
&= \prod_d P(\mathcal{X}_d|\beta)P(\mathcal{C}_d|\alpha,\xi) \prod_c P(\xi^c|\theta^0) \notag\\
&\propto\prod_d \beta^d_c \left(F(\mathcal{C}_d)\prod_t (\mathcal{C}_{dt})^{\alpha\xi_t}\right) \notag\\
&\left( \prod_c F(\xi^c)\prod_t(\xi_t)^{\theta^0_t} \right)
\end{align}
\end{multicols}

\end{document}

在此处输入图片描述

答案3

安德鲁斯旺 (Andrew Swann) 的回答显然更胜一筹;但毕竟,最后我决定放弃我可怜的尝试 (我之前已经删除了它),目的是记录如何通过将\!AS 提到的与\;(非脚本) 所要求的相结合来获得正确的间距\mathrel

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath}

\begin{document}

\begin{align}
P(&\mathcal{X},\mathcal{C},\xi|\alpha,\beta,\theta^0) \notag\\
&= \prod_d P(\mathcal{X}_d|\beta)P(\mathcal{C}_d|\alpha,\xi) \prod_c P(\xi^c|\theta^0) \notag\\
&\;\!\begin{aligned}[b]
    \propto\prod_d \beta^d_c
        &\left(F(\mathcal{C}_d)\prod_t (\mathcal{C}_{dt})^{\alpha\xi_t}\right) \\
        &\left( \prod_c F(\xi^c)\prod_t(\xi_t)^{\theta^0_t} \right)
    \end{aligned}
\end{align}

\end{document}

或者,等效地(也许更好):

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath}

\begin{document}

\begin{align}
P(&\mathcal{X},\mathcal{C},\xi|\alpha,\beta,\theta^0) \notag\\
&= \prod_d P(\mathcal{X}_d|\beta)P(\mathcal{C}_d|\alpha,\xi) \prod_c P(\xi^c|\theta^0) \notag\\
&\!\begin{aligned}[b]
    {}\propto\prod_d \beta^d_c
        &\left(F(\mathcal{C}_d)\prod_t (\mathcal{C}_{dt})^{\alpha\xi_t}\right) \\
        &\left( \prod_c F(\xi^c)\prod_t(\xi_t)^{\theta^0_t} \right)
    \end{aligned}
\end{align}

\end{document}

输出(300dpi):

代码输出

相关内容