我想要生成以下对齐方程数组:
\begin{eqnarray*}
\operatorname{Cov}\left(u^{\prime} X, v^{\prime} Y\right) &=& u^{\prime} \Sigma_{xy} v &=& \alpha^{\prime} M \beta \\
\operatorname{Cov}\left(u^{\prime} X, u_{j}^{\prime} X\right)&=& u^{\prime} \Sigma_{xx} u_{j} &=& \alpha^\prime \alpha_j \\
\operatorname{Cov}\left(v^{\prime} Y, v_{j}^{\prime} Y\right)&=& v^{\prime} \Sigma_{yy} v_{j} &=& \beta^\prime \beta_j
\end{eqnarray*}
问题在于最右边的列不在正确的位置。我尝试谷歌搜索了一段时间,并不断找到类似这样的帖子eqnarray 与 align告诉我改用 align。但是,align 似乎也没有提供很好的间距;现有的 align 教程每行只有一个等号,而我想要两个。
我该怎么办?谢谢!
答案1
在任何情况下都不要使用eqnarray
:它有缺陷并且不灵活。
你需要的是alignat
。
\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator{\Cov}{Cov}
\begin{document}
\begin{alignat*}{2}
\Cov(u' X, v' Y) &= u' \Sigma_{xy} v &&= \alpha' M \beta \\
\Cov(u' X, u_{j}' X) &= u' \Sigma_{xx} u_{j}' &&= \alpha' \alpha_j \\
\Cov(v' Y, v_{j}' Y) &= v' \Sigma_{yy} v_{j}' &&= \beta' \beta_j
\end{alignat*}
\end{document}
请注意,我将其缩写\operatorname{Cov}
为 into\Cov
和 also ^{\prime}
into '
(更清晰,更易于输入)。我还删除了\left
and,\right
除了添加不必要的空格外,没有任何作用。
答案2
对于您的用例,没有现成的解决方案可以很好地工作。相反,我们必须手动构建它array
。获取方程式编号会有点棘手,但幸运的是,您不需要这些。我还会进行设置,使其看起来像eqnarray
输入(但间距有所改善)
\NewDocumentEnvironment{eqnarray3*}{}
{
\displaymath % ❶
\begin{array}
{
@{} % ❷
r % Left hand column
@{\;} % ❸
c % first equals sign
@{\;} % ❸
c % middle column
@{\;} % ❸
c % second equals sign
@{\;} % ❸
l % last column
@{} % ❷
}
}
{
\end{array}
\enddisplaymath % ❶
}
我们使用\displaymath
... \enddisplaymath
❶ 进入和退出显示数学模式。这样做的好处是,它还会自动产生忽略空格的效果\end{displaymath}
(如果我们使用\[
...\]
或\begin{displaymath}
... \end{displaymath}
¹,我们会在显示数学之后的段落第一行开头得到一个虚假的空格)。
我们在开始和结束列中放置了@{}
❷,以避免正常的列间距出现在行的开始/结束处。虽然它有可能让你免于overfull \hbox
在边缘情况下显示警告,但它应该没有什么区别。
最后,对于带有等号的列,我们用 包围它们,@{\;}
这样我们就可以在关系周围形成正常的间距,而不是 的巨大间隙eqnarray
。值得注意的是,由于您想要进行对齐的方式,将关系保留在自己的列中是有意义的,因为无法保证中间列的宽度一致。
根据上述定义,你可以写:
\begin{eqnarray3*}
\operatorname{Cov}\left(u^{\prime} X, v^{\prime} Y\right) &=& u^{\prime} \Sigma_{xy} v &=& \alpha^{\prime} M \beta \\
\operatorname{Cov}\left(u^{\prime} X, u_{j}^{\prime} X\right)&=& u^{\prime} \Sigma_{xx} u_{j}^{\prime} &=& \alpha^\prime \alpha_j \\
\operatorname{Cov}\left(v^{\prime} Y, v_{j}^{\prime} Y\right)&=& v^{\prime} \Sigma_{yy} v_{j}^{\prime} &=& \beta^\prime \beta_j
\end{eqnarray3*}
您应该获得所需的输出。²
- 也许后者会起作用,但我还没费心去检查。
- 但就像我的典型答案一样,我是凭着头脑把这个问题打出来的,并没有费心去测试。