\begin{align}
\left(\begin{array}{rrr|rrr}
3&1&-2&1&0&0\\
-1&4&3&0&1&0\\
1&2&-1&0&0&1
\end{array}\right)
\begin{array}{rrr|r}
\\
\text{II+III}\\
\text{3III-I}
\end{array}\\
\left(\begin{array}{rrr|rrr}
3&1&-2&1&0&0\\
0&6&2&0&1&1\\
0&5&-1&-1&0&1
\end{array}\right)
\begin{array}{rrr|r}
\\
\text{}\\
\text{6III-5II}
\end{array}
\end{align}
如果你渲染这个,你会看到两个“数组”的垂直线没有对齐。即使我在每个 \left(... 之前都放一个 &,它仍然对齐得不好,因为单元格宽度不同。因为我使用的是黑曜石, 我只有这些扩展。
答案1
通过添加虚线减号确保所有列的宽度相同,并在右侧)和文本标签之间添加一个对齐点。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
\left(\begin{array}{rrr|rrr}
3&\phantom{-}1&-2&\phantom{-}1&\phantom{-}0&\phantom{-}0\\
-1&4&3&0&1&0\\
1&2&-1&0&0&1
\end{array}\right)
&
\begin{array}{rrr|r}
\\
\text{II+III}\\
\text{3III-I}
\end{array}\\
\left(\begin{array}{rrr|rrr}
\phantom{-}3&\phantom{-}1&-2&\phantom{-}1&\phantom{-}0&\phantom{-}0\\
0&6&2&0&1&1\\
0&5&-1&-1&0&1
\end{array}\right)
&
\begin{array}{rrr|r}
\\
\text{}\\
\text{6III-5II}
\end{array}
\end{align}
\end{document}
答案2
以下是一些观察结果(无特定顺序):
该
array
包提供了一种非常有用的列类型:w
,它允许您指定水平对齐方式--l
、c
或r
--和固定宽度(此处:有符号的单数整数的宽度)。通过使用w
列类型,您将不必输入大量的实例\phantom{-}
。rrr|r
我看不出为次要环境指定 4 列的理由————array
;单列——大概l
——就足够了。您应该使用
\mathrm
而不是\text
来表示辅助数组中的描述符,尤其是+
和-
表示二元运算符。这对于-
符号尤其重要,它们将呈现为文本模式连字符,而不是数学“减号”符号。如果您要使用
align
环境,请务必指定(使用对齐标记符号&
)在哪里对齐点应该是这样的。如果不这样做,您将得到右对齐,而这几乎从来不是应该发生的情况。
\documentclass{article} % or some other suitable document class
\usepackage{amsmath} % for 'align' environment
\usepackage{calc} % for '\widthof' macro
\usepackage{array} % for 'w' columnn type and '\newcolumntype' macro
\newcolumntype{W}{w{r}{\widthof{$-1$}}}
\begin{document}
\begin{align}
&\left( \begin{array}{@{} WWW | WWW @{}}
3&1&-2&1&0&0\\
-1&4& 3&0&1&0\\
1&2&-1&0&0&1
\end{array} \right)
\quad % horizontal distance between the 'array' environments
\begin{array}{@{}l@{}}
\\
\mathrm{II+III}\\
\mathrm{3III-I}
\end{array}\\[\jot] % end of first row
&\left( \begin{array}{@{} WWW | WWW @{}}
3&1&-2& 1&0&0\\
0&6& 2& 0&1&1\\
0&5&-1&-1&0&1
\end{array} \right)
\quad
\begin{array}{@{}l@{}}
\\
\\
\mathrm{6III-5II}
\end{array}
\end{align}
\end{document}
答案3
以下是您可以使用 做的{pNiceArray}
事情nicematrix
。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceMatrixBlock}[auto-columns-width]
\begin{align}
\begin{pNiceArray}{rrr|rrr}[last-col]
3&1&-2&1&0&0 &~\rlap{\text{II+III}}\\
-1&4&3&0&1&0 &~\rlap{\text{3III-I}}\\
1&2&-1&0&0&1
\end{pNiceArray} \\
\begin{pNiceArray}{rrr|rrr}[last-col]
3&1&-2&1&0&0\\
0&6&2&0&1&1\\
0&5&-1&-1&0&1 &~\rlap{\text{6III-5II}}
\end{pNiceArray}
\end{align}
\end{NiceMatrixBlock}
\end{document}
答案4
我建议对 F. Pantigny 的出色回答进行修改。
没有必要使用
\rlap
。我将使用行号命令来表示行操作;它简化了输入,并且如果您改变主意也可以轻松修改。
事实上,使用\text{II+III}
+ 号会导致错误的间距;更糟糕的是,\text{3III-I}
使用连字符而不是减号。\row
我定义的命令允许正确使用数学模式,还可以将行号(罗马数字)与系数(如果有)稍微分离。
\documentclass{article}
\usepackage{nicematrix}
\ExplSyntaxOn
\NewDocumentCommand{\row}{m}{\mathop{{}\mathrm{\int_to_Roman:n{#1}}}}
\ExplSyntaxOff
%%% or, maybe
% \NewDocumentCommand{\row}{m}{R_{#1}}
\begin{document}
\begin{NiceMatrixBlock}[auto-columns-width]
\begin{align}
&\begin{pNiceArray}{rrr|rrr}[last-col]
3 & 1 & -2 & 1 & 0 & 0 \\
-1 & 4 & 3 & 0 & 1 & 0 &\quad \row{2} + \row{3} \\
1 & 2 & -1 & 0 & 0 & 1 &\quad 3\row{3} - \row{1} \\
\end{pNiceArray} \\
&\begin{pNiceArray}{rrr|rrr}[last-col]
3 & 1 & -2 & 1 & 0 & 0 \\
0 & 6 & 2 & 0 & 1 & 1 \\
0 & 5 & -1 & -1 & 0 & 1 &\quad 6\row{3}-5\row{2}
\end{pNiceArray}
\end{align}
\end{NiceMatrixBlock}
\end{document}
如果我使用第二个可能的定义,通过取消注释并注释掉第一个定义,则输出为,无需任何对代码的其他更改,