带断线的矩阵和矩阵变换

带断线的矩阵和矩阵变换

各位!如果这个问题已经有人问过并回答过,我很抱歉,但是我在 Google 上搜索了很久,还是找不到正确的答案。

我学习了如何使用数组编写带有断线的矩阵:

\left[ \begin{array}{ccc;{2pt/2pt}c} 1 & 2 & 3 & -2 \\
 0 & 5 & 10 & -5 \\
 3 & 4 & 5 & 0 
 \end{array} \right]

结果是这样的:

在此处输入图片描述

现在,我想写下这种矩阵的矩阵变换。通过搜索本网站上的一些已回答问题,我发现最好的解决方案是这样的:

\begin{gmatrix}[b]
1 & 2 & \BAR & 3 \\
4 & 5 & \BAR & 6 \\
7 & 8 & \BAR & 9
\rowops
 \swap{0}{1}
 \mult{0}{\cdot 7}
 \add[5]{1}{2}
\end{gmatrix}

为了实现这一点,必须\usepackage{gauss}添加

\newcommand{\BAR}{%
  \hspace{-\arraycolsep}%
  \strut\vrule 
  \hspace{-\arraycolsep}%
}

结果取决于我使用的环境。如果我使用 写下矩阵$$ $$,我会得到整行,而它会在 内中断\begin{align*} \end{align*}。按相应的顺序,结果是

在此处输入图片描述

我的目标是保留矩阵变换,但不是完整的垂直线,而是一条虚线,就像这篇文章的第一个矩阵一样。通过保留 gauss 包中的命令可以实现这一点吗?如果不能,那么最好的和最简单的解决方案是什么?

附加问题,如果我碰巧需要它(或者万一所有这些都不可能实现):如何使用将垂直线保持完整\begin{align*} \end{align*}?我真的需要改变这些矩阵的环境吗(我需要它在多行中写入矩阵并按照我想要的方式对齐线条)?

提前谢谢您!我真心希望有人能给出一个简单的答案。

答案1

环境gmatrix使用低级制表函数,这些函数受到当前基线跳过的影响,基线跳过在 中有所增加align

轻松修改https://tex.stackexchange.com/a/337481/4427解决了问题。请参阅答案以了解更多选项xgmatrix

\documentclass{article}
\usepackage{amsmath}
\usepackage{gauss}
\usepackage{xparse}

\newcommand{\BAR}{%
  \hspace{-\arraycolsep}%
  \strut\vrule 
  \hspace{-\arraycolsep}%
}

\ExplSyntaxOn
\keys_define:nn { gauss }
 {
  type .tl_set:N = \l_gauss_type_tl,
  type .initial:n = {},
  right .code:n = \tl_set:cn { g@post } { \relax$ },
  right .value_forbidden:n = true,
  spread .tl_set:N = \l_gauss_spread_tl,
  spread .initial:n = 1,
  colsep .dim_set:N = \l_gauss_colsep_dim,
  colsep .initial:n = \arraycolsep,
 }
\NewDocumentEnvironment{xgmatrix}{O{}}
 {
  \keys_set:nn { gauss } { #1 }
  \normalbaselines % <-----------  ADDED
  \linespread{\l_gauss_spread_tl}\selectfont
  \setlength{\arraycolsep}{\l_gauss_colsep_dim}
  \begin{gmatrix}[\l_gauss_type_tl]
 }
 {
  \end{gmatrix}
 }
\ExplSyntaxOff


\begin{document}

\[
\begin{gmatrix}[b]
1 & 2 & \BAR & 3 \\
4 & 5 & \BAR & 6 \\
7 & 8 & \BAR & 9
\rowops
 \swap{0}{1}
 \mult{0}{\cdot 7}
 \add[5]{1}{2}
\end{gmatrix}
\]

\begin{align*}
\begin{gmatrix}[b]
1 & 2 & \BAR & 3 \\
4 & 5 & \BAR & 6 \\
7 & 8 & \BAR & 9
\rowops
 \swap{0}{1}
 \mult{0}{\cdot 7}
 \add[5]{1}{2}
\end{gmatrix}
\end{align*}

\begin{align*}
\begin{xgmatrix}[type=b]
1 & 2 & \BAR & 3 \\
4 & 5 & \BAR & 6 \\
7 & 8 & \BAR & 9
\rowops
 \swap{0}{1}
 \mult{0}{\cdot 7}
 \add[5]{1}{2}
\end{xgmatrix}
\end{align*}

\end{document}

在此处输入图片描述

相关内容