如何编写一个矩阵,其中的括号仅覆盖特定范围内的行/列,但仍具有正确的缩进?我想要的是:
我当前的解决方案:
\[
\overset{
\begin{array}{lrccccc}
\hspace{-8mm}x_1 & \hspace{6mm} x_2 & \hspace{3mm} \cdot & \hspace{0mm} \cdot & \hspace{0mm} \cdot & \hspace{2mm} x_n &
\end{array}}
{\left[\hspace{-2mm}
\begin{array}{ccccccc}
a_{11} & a_{12} & \cdot & \cdot & \cdot & a_{1n} & b_1 \\
a_{21} & a_{22} & \cdot & \cdot & \cdot & a_{2n} & b_2 \\
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
a_{r1} & a_{r2} & \cdot & \cdot & \cdot & a_{rn} & b_r \\
a_{r+1,1} & a_{r+1,2} & \cdot & \cdot & \cdot & a_{r+1,n} & b_{r+1} \\
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
a_{m1} & a_{m2} & \cdot & \cdot & \cdot & a_{mn} & b_m
\end{array}\hspace{-2mm}\right]}
\;\overset{\mbox{\large $\mathcal E$}}{\mbox{\Large $\sim $}}\;
\overset{
\begin{array}{lccccccccccc}
\hspace{-8mm}x'_1 & x'_2 & \hspace{1.5mm} x'_3 & \hspace{1mm} x'_4 & \hspace{2mm}\cdot & \hspace{0.5mm}\cdot & \hspace{4.7mm}\cdot & \hspace{4.mm} \cdot & \cdot & \cdot & \hspace{1.2mm} x'_n &
\end{array}}
{\left[\hspace{-1.5mm}
\begin{array}{lccccccccccc}
1 & a'_{12} & a'_{13} & a'_{14} & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & a'_{1n} & b'_1 \\
0 & 1 & a'_{23} & a'_{24} & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & a'_{2n} & b'_2 \\
\cdot &\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\cdot &\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\cdot &\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
0 &\cdot & \cdot & \cdot & 0 & 1 & a'_{r,r+1}& \cdot & \cdot & \cdot & a'_{r,n}& b'_r \\
0 &\cdot & \cdot & \cdot & 0 & 0 & 0 & \cdot & \cdot & \cdot & 0 & b'_{r+1} \\
0 &\cdot & \cdot & \cdot & 0 & 0 & 0 & \cdot & \cdot & \cdot & 0 & \cdot \\
0 &\cdot & \cdot & \cdot & 0 & 0 & 0 & \cdot & \cdot & \cdot & 0 & \cdot \\
0 &\cdot & \cdot & \cdot & 0 & 0 & 0 & \cdot & \cdot & \cdot & 0 & \cdot \\
0 &\cdot & \cdot & \cdot & 0 & 0 & 0 & \cdot & \cdot & \cdot & 0 & b'_m
\end{array}\hspace{-2mm}\right]}
\]
我正在寻找不那么笨拙、更自动化的解决方案,不需要用户手动调整缩进(居中)。
答案1
这是一个使用blkarray
包裹:
\documentclass{article}
\usepackage[margin=1cm]{geometry}% just for the example
\usepackage{amsmath}
\usepackage{blkarray}
\begin{document}
\[
\renewcommand\BAextrarowheight{2pt}
\begin{blockarray}{*{7}{c}}
x_1 & x_2 & \cdot & \cdot & \cdot & x_n \\
\begin{block}{[*{7}{c}]}
a_{11} & a_{12} & \cdot & \cdot & \cdot & a_{1n} & b_1 \\
a_{21} & a_{22} & \cdot & \cdot & \cdot & a_{2n} & b_2 \\
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
a_{r1} & a_{r2} & \cdot & \cdot & \cdot & a_{rn} & b_r \\
a_{r+1,1} & a_{r+1,2} & \cdot & \cdot & \cdot & a_{r+1,n} & b_{r+1} \\
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
a_{m1} & a_{m2} & \cdot & \cdot & \cdot & a_{mn} & b_m \\
\end{block}
\end{blockarray}
\,\overset{\mbox{\large$\mathcal E$}}{\mbox{\Large$\sim $}}\,
\begin{blockarray}{l*{11}{c}}
x'_1 & x'_2 & x'_3 & x'_4 & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & x'_n & \\
\begin{block}{[l*{11}{c}]}
1 & a'_{12} & a'_{13} & a'_{14} & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & a'_{1n} & b'_1 \\
0 & 1 & a'_{23} & a'_{24} & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & a'_{2n} & b'_2 \\
\cdot &\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\cdot &\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\cdot &\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
0 &\cdot & \cdot & \cdot & 0 & 1 & a'_{r,r+1}& \cdot & \cdot & \cdot & a'_{r,n}& b'_r \\
0 &\cdot & \cdot & \cdot & 0 & 0 & 0 & \cdot & \cdot & \cdot & 0 & b'_{r+1} \\
0 &\cdot & \cdot & \cdot & 0 & 0 & 0 & \cdot & \cdot & \cdot & 0 & \cdot \\
0 &\cdot & \cdot & \cdot & 0 & 0 & 0 & \cdot & \cdot & \cdot & 0 & \cdot \\
0 &\cdot & \cdot & \cdot & 0 & 0 & 0 & \cdot & \cdot & \cdot & 0 & \cdot \\
0 &\cdot & \cdot & \cdot & 0 & 0 & 0 & \cdot & \cdot & \cdot & 0 & b'_m \\
\end{block}
\end{blockarray}
\]
\end{document}
请注意,我将格式声明从 更改为 ,ccccccc
并*{7}{c}
从lccccccccccc
更改为l*{11}{c}
,因为后者不太容易出错。
为了完整起见,下面是使用kbordermatrix
包(不在 CTAN 上,但可从提供的链接获取):
\documentclass{article}
\usepackage[margin=1cm]{geometry}% just for the example
\usepackage{amsmath}
\usepackage{kbordermatrix}
\begin{document}
\[
\renewcommand{\arraystretch}{1.2}
\kbordermatrix{
& x_1 & x_2 & \cdot & \cdot & \cdot & x_n \\
& a_{11} & a_{12} & \cdot & \cdot & \cdot & a_{1n} & b_1 \\
& a_{21} & a_{22} & \cdot & \cdot & \cdot & a_{2n} & b_2 \\
& \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
& \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
& \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
& a_{r1} & a_{r2} & \cdot & \cdot & \cdot & a_{rn} & b_r \\
& a_{r+1,1} & a_{r+1,2} & \cdot & \cdot & \cdot & a_{r+1,n} & b_{r+1} \\
& \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
& \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
& \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
& a_{m1} & a_{m2} & \cdot & \cdot & \cdot & a_{mn} & b_m \\
}
\ \overset{\mbox{\large$\mathcal E$}}{\mbox{\Large$\sim $}}
\kbordermatrix{
& x'_1 & x'_2 & x'_3 & x'_4 & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & x'_n & \\
& 1 & a'_{12} & a'_{13} & a'_{14} & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & a'_{1n} & b'_1 \\
& 0 & 1 & a'_{23} & a'_{24} & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & a'_{2n} & b'_2 \\
& \cdot &\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
& \cdot &\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
& \cdot &\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
& 0 &\cdot & \cdot & \cdot & 0 & 1 & a'_{r,r+1}& \cdot & \cdot & \cdot & a'_{r,n}& b'_r \\
& 0 &\cdot & \cdot & \cdot & 0 & 0 & 0 & \cdot & \cdot & \cdot & 0 & b'_{r+1} \\
& 0 &\cdot & \cdot & \cdot & 0 & 0 & 0 & \cdot & \cdot & \cdot & 0 & \cdot \\
& 0 &\cdot & \cdot & \cdot & 0 & 0 & 0 & \cdot & \cdot & \cdot & 0 & \cdot \\
& 0 &\cdot & \cdot & \cdot & 0 & 0 & 0 & \cdot & \cdot & \cdot & 0 & \cdot \\
& 0 &\cdot & \cdot & \cdot & 0 & 0 & 0 & \cdot & \cdot & \cdot & 0 & b'_m
}
\]
\end{document}