我试图为增强矩阵创建一个环境,然后遇到了这个答案,这给了我这个代码
\newenvironment{amatrix}[1]{%
\left(\begin{array}{@{}*{#1}{c}|c@{}}
}{%
\end{array}\right)
}
用作
\begin{amatrix}{2}
1 & 2 & 3 \\ a & b & c
\end{amatrix}
它工作得很好,但让我抓狂的是,参数比增强矩阵的总列数少一个。我尝试将 更改为#1
,#1-1
但似乎不起作用。我能找到的最接近的东西是包calc
,但它只在某些情况下有效,而这似乎不是其中之一。
所以我的问题是:有没有办法重新定义 amatrix 环境,以便参数与增强矩阵中的总列数相匹配? 一个更好的解决方案是我根本不需要输入参数,但我不想在这里贪婪。
答案1
一个更好的解决方案是我根本不需要提出任何论点,但我不想在这里贪心。
贪心一点吧!下面是一个tabularray
使用包的解决方案(没有任何参数):
\documentclass{article}
\usepackage{tabularray}
\UseTblrLibrary{amsmath}
\NewDocumentEnvironment{amatrix}{+b}{
\begin{+pmatrix}[
colsep=4pt,
rowsep=0pt,
vline{Y}={-}{solid},
column{1}={leftsep=1pt},
column{Z}={rightsep=1pt}
]
#1
\end{+pmatrix}%
}{}
\begin{document}
\[
\begin{amatrix}
1 & 2 & 3 \\
a & b & c
\end{amatrix}
\]
\[
\begin{amatrix}
1 & 2 & 3 & 4\\
a & b & c & d\\
x & y & z & w
\end{amatrix}
\]
\end{document}
(感谢 samcarter 的建议)。