我有一些相当长的数学运算需要放入双列文档格式中,因此数学运算通常需要分成多行。
在下面的例子中,我想将最后一行的开括号与上面一行的开括号对齐。
\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):