制作右侧有多列的增广矩阵

制作右侧有多列的增广矩阵

我想要一个环境来制作右侧有多列的增强矩阵。在这个问题我发现了一个很好的环境,它使得右侧有一列的增广矩阵。

该问题中的代码是:

\newenvironment{amatrix}[1]{%
  \left(\begin{array}{@{}*{#1}{c}|c@{}}
}{%
  \end{array}\right)
}

答案1

您的解决方案很好,但我建议一种更直观的语法:

\documentclass{article}
\usepackage{amsmath}

\NewDocumentEnvironment{amatrix}{>{\SplitArgument{1}{|}}m}
 {\left(\makeamatrix#1}
 {\end{array}\right)}
\NewDocumentCommand{\makeamatrix}{mm}{%
  \IfNoValueTF{#2}
    {\begin{array}{@{}*{#1}{c}@{}}}
    {\begin{array}{@{}*{#1}{c}|*{#2}{c}@{}}}%
}

\begin{document}

\[
\begin{amatrix}{4}
    a & b & c & d \\
    v & w & x & y
\end{amatrix}
\quad
\begin{amatrix}{3|1}
    a & b & c & d \\
    v & w & x & y
\end{amatrix}
\quad
\begin{amatrix}{2|2}
    a & b & c & d \\
    v & w & x & y
\end{amatrix}
\]

\end{document}

在此处输入图片描述

\usepackage{xparse}如果您在 2020-10-01 之前运行 LaTeX,则可能需要。

答案2

我修改了上面的代码

\newenvironment{amatrix}[2][1]{%
  \left(\begin{array}{@{}*{#2}{c}|*{#1}{c}@{}}
}{%
  \end{array}\right)
}

然后可以用作

\begin{amatrix}[2]{2}
    a & b & c & d \\
    v & w & x & y
\end{amatrix}

第一个参数是可选的,它表示正确的垂直线的列数。默认值为 1。第二个参数是必需的,表示要显示的列数左边垂直线。

相关内容