将方程式各部分对齐到列中时出现问题

将方程式各部分对齐到列中时出现问题

假设我有一个基 u、v、w 和一个三角矩阵 M。我想将 M 对这些向量的作用写成 Mu = au + bv + cw 等形式。我想将等号和基向量对齐。到目前为止,我最好的猜测是

\begin{align}
Mu &= & & a &w\\
Mv &= & b &v + c &w\\
Mu &= d &u + e &v + f &w
\end{align}

但是,我不知道如何让系数保持与它们所属的基向量的连接,而不是与前一部分对齐。这种方法通常也很混乱。我做错了什么?有没有更好的方法,比如使用环境进行对齐matrix

我想要的输出是:

Mu =           aw
Mv =      bv + cw
Mw = du + ev + fw

但请注意,实际系数是比 a、b、c、d、e、f 更复杂的表达式。

编辑:澄清一下,我不想改变方程的顺序或基础。因此第一行需要右对齐。

答案1

这是alignat为了:

\documentclass{article}
\pagestyle{empty}
\usepackage{amsmath}
\begin{document}
\begin{alignat}{4}
Mu &=    & &    & & a w\\
Mv &=    & & bv &{}+{}& c w\\
Mu &= du &{}+{}& ev &{}+{}& f w
\end{alignat}
\end{document}

在此处输入图片描述

(根据@barbarabeeton 的建议更正)

答案2

3 列的对齐和间距更好alignat

我还提到了另一个解决方案,使用包进行编码更简单systeme,但计数器与不同equation counter,数字没有在右边距对齐,并且必须交换 lhs 和 rhs。

\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{amsmath}

\usepackage{systeme}

\begin{document}

\begin{alignat}{3}
  Mu & = & & & & aw \\
  Mv & = & & b v & {}+{} & cw \\
  Mu & = d u & {}+{} & ev & {}+{} & f w
\end{alignat}

\[ \sysautonum{(**)}\sysdelim.. \systeme[uvw]{aw = Mu, bv + cw = Mv, du + ev + fw = Mu} \]

\end{document} 

在此处输入图片描述

答案3

如果不需要对每行进行编号,可以使用autoaligne

\documentclass{article}
\usepackage{autoaligne}

\begin{document}

\[
\catcode` =9 % don't bother with spaces
\aavcoeff{1.2}
\autoaligne[gd]{
  Mu=  +  +aw \\
  Mv=  +bv+cw \\
  Mw=du+ev+fw
}
\]

\[
\catcode` =9 % don't bother with spaces
\aavcoeff{1.2}
\autoaligne[gd]{
  Mu=  +  +{(a_1+a_2)}w \\
  Mv=  +b^2tv+cw \\
  Mw=du+ev+{(f-k)}w
}
\]

\end{document}

在此处输入图片描述

相关内容