修复自定义矩阵环境中的间距

修复自定义矩阵环境中的间距

我已经为使用高斯乔丹消元法建立了一个自定义矩阵环境,我需要在矩阵的两半之间添加一个垂直线。

以下是我整理的内容

\newenvironment{gjmatrix}[1] {
    \left[\begin{array} { @{}*{#1}{c}|@{}*{#1}{c}@{} }
} {
    \end{array}\right]
}

这是几乎完美。但是它没有给我足够的空间。 缺乏间距。

有人能帮帮我吗?我该如何调整它,使其与其他所有内容具有适当且均匀的间距。

答案1

我建议你改成|@{}|即去掉@{}后面的助词|。如果|你觉得保留 有点太简洁,你也可以写成|@{\hspace{\arraycolsep}},以明确哪个操作应该在 之后立即进行|

如果你猜测这@{}意味着“不要插入空格或其他任何东西”,那么省略 @{}意味着“执行默认操作”(恰好是插入空格,数量为\arraycolsep),那么你是完全正确的。:-)

在此处输入图片描述

\documentclass{article}
\usepackage{array} % optional, but recommended
\newenvironment{gjmatrix}[1]{% 
   \left[ \begin{array}{ @{} *{#1}{c} | *{#1}{c} @{} }}{%  
   \end{array} \right]}

\begin{document}
\[
\begin{gjmatrix}{3}
  -1 &  2 & -2 & 1 & 0 & 0 \\
   0 &  1 & -1 & 0 & 1 & 0 \\
  -3 & -1 &  0 & 0 & 0 & 1
\end{gjmatrix}
\]
\end{document}

答案2

您有@{}after |,因此您抑制了垂直线后列之前的标准列间距。

我建议采用略有不同的方法,因为您也可以对行后的列数比行前的列数少(或更多)的增广矩阵使用高斯-乔丹算法。

\documentclass{article}

\NewDocumentEnvironment{gjmatrix}{mO{#1}}
 {\left[\begin{array}{ @{} *{#1}{c} | *{#2}{c} @{} }}
 {\end{array}\right]}

\begin{document}
\[
\begin{gjmatrix}{3}
  -1 &  2 & -2 & 1 & 0 & 0 \\
   0 &  1 & -1 & 0 & 1 & 0 \\
  -3 & -1 &  0 & 0 & 0 & 1
\end{gjmatrix}
\qquad
\begin{gjmatrix}{3}[2]
  -1 &  2 & -2 & 1 & 0 \\
   0 &  1 & -1 & 0 & 1 \\
  -3 & -1 &  0 & 0 & 0
\end{gjmatrix}
\]

\[
\begin{gjmatrix}{4}
  -1 &  2 & -2 & 1 & 1 & 0 & 0 & 0\\
   0 &  1 & -1 & 0 & 0 & 1 & 0 & 0\\
  -1 &  2 & -2 & 0 & 0 & 0 & 1 & 0\\
  -3 & -1 &  0 & 0 & 0 & 0 & 0 & 1
\end{gjmatrix}
\qquad
\begin{gjmatrix}{4}[1]
  -1 &  2 & -2 & 1 & 0 \\
   0 &  1 & -1 & 0 & 1 \\
  -1 &  2 & -2 & 0 & 0 \\
  -3 & -1 &  0 & 0 & 0
\end{gjmatrix}
\]

\end{document}

尾随可选参数是行后的列数,默认与强制参数中的列数相同。

在此处输入图片描述

相关内容