数学模式将多行与不同列数对齐

数学模式将多行与不同列数对齐

我对对齐环境有疑问。我想在“=”符号处对齐三行,并在其他位置仅对齐前两行。我该如何做才能不产生奇怪的间距?到目前为止,我的代码产生了奇怪的间隙。

\documentclass[10pt,twocolumn,letterpaper]{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
    Q(c) &= max_{k} & \prod_{t=1}^T \cdot p(t,c|k) \nonumber \\
         &          & \cdot z(k) \nonumber \\
         &= Q(z(c)) + p(t,c|z(k))
\end{align}
\end{document}

我希望对齐方式如代码中所示:所有行都应与第一行的 = 对齐,并且前两行还应与乘积符号对齐。

非常感谢你的帮助!

亚历克斯

答案1

我建议您使用aligned进行内部对齐:

示例输出

\documentclass[10pt,twocolumn,letterpaper]{article}

\usepackage{amsmath}

\begin{document}

\begin{align}
  Q(c) &= \max_{k}
         \!\begin{aligned}[t]
           & \prod_{t=1}^T \cdot p(t,c|k) \\
           & \cdot z(k)
         \end{aligned}
             \nonumber\\
       &= Q(z(c)) + p(t,c|z(k))
\end{align}

\end{document}

aligned类似于align,但仅适用于方程的内部块。它采用可选参数tb来指定其相对于周围方程的垂直位置。\!消除一个小空间,并自动将其插入到 前面aligned

答案2

或者使用alignat\mathrlap

\documentclass[10pt,twocolumn,letterpaper]{article}
\usepackage{amsmath,mathtools}
\begin{document}
\begin{alignat}{2}
    Q(c) &= max_{k}  &\prod_{t=1}^T &\cdot p(t,c|k) \nonumber \\
         &           &&\cdot z(k) \nonumber \\
         &= \mathrlap{Q(z(c)) + p(t,c|z(k))}
\end{alignat}

在此处输入图片描述

答案3

像那样?

\documentclass[10pt,twocolumn,letterpaper]{article}
\usepackage{amsmath}

\begin{document}

\begin{align}
    Q(c) &= \max_{k }\! \begin{aligned}[t] & \prod_{t=1}^T{} \cdot p(t,c|k) \nonumber \\
         & \cdot z(k)\end{aligned} \nonumber \\
         &= Q(z(c)) + p(t,c|z(k))
\end{align}

\end{document} 

在此处输入图片描述

答案4

\phantom

\documentclass[10pt,twocolumn,letterpaper]{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
    Q(c) &= \max_{k}  \prod_{t=1}^T \cdot p(t,c|k) \nonumber \\
         & \phantom{{}= \max_{k}}          \cdot z(k) \nonumber \\
         &= Q(z(c)) + p(t,c|z(k))
\end{align}
\end{document}

在此处输入图片描述

相关内容