答案1
明智地使用\multicolumn
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\begin{document}
\[
\newcommand{\?}[1]{\multicolumn{1}{c|}{#1}}
\left(\begin{array}{ccccccc}
2 & 1 & \?0 & 0 & 0 & 0 & 0 \\
0 & 2 & \?1 & 0 & 0 & 0 & 0 \\
0 & 0 & \?2 & 0 & 0 & 0 & 0 \\
\cline{1-5}
0 & 0 & \?0 & 2 & \?1 & 0 & 0 \\
0 & 0 & \?0 & 0 & \?2 & 0 & 0 \\
\cline{4-6}
0 & 0 & 0 & 0 & \?0 & \?3 & 0 \\
\cline{6-7}
0 & 0 & 0 & 0 & 0 & \?0 & 3
\end{array}\right)
\]
\end{document}
该\?
命令是本地定义的只是为了方便输入(和阅读)。
具有完整边框(\|
局部重新定义,同样为了便于输入)。
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\begin{document}
\[
\newcommand{\?}[1]{\multicolumn{1}{c|}{#1}}
\renewcommand{\|}[1]{\multicolumn{1}{|c}{#1}}
\left(\,\begin{array}{ccccccc}
\cline{1-3}
\|2 & 1 & \?0 & 0 & 0 & 0 & 0 \\
\|0 & 2 & \?1 & 0 & 0 & 0 & 0 \\
\|0 & 0 & \?2 & 0 & 0 & 0 & 0 \\
\cline{1-5}
0 & 0 & \?0 & 2 & \?1 & 0 & 0 \\
0 & 0 & \?0 & 0 & \?2 & 0 & 0 \\
\cline{4-6}
0 & 0 & 0 & 0 & \?0 & \?3 & 0 \\
\cline{6-7}
0 & 0 & 0 & 0 & 0 & \?0 & \?3 \\
\cline{7-7}
\end{array}\,\right)
\]
\end{document}
可能更具吸引力:
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\begin{document}
\[
\settowidth{\dimen0}{$0$}
\settoheight{\dimen2}{$0$}
\setlength{\arraycolsep}{4pt}
\newcolumntype{C}{%
>{\vrule width 0pt height \dimexpr\dimen2+\arraycolsep\relax depth \arraycolsep}
w{c}{\dimen0}
}
\renewcommand{\arraystretch}{0}
\newcommand{\?}[1]{\multicolumn{1}{c|}{#1}}
\renewcommand{\|}[1]{\multicolumn{1}{|c}{#1}}
\left(\,\begin{array}{CCCCCCC}
\cline{1-3}
\|2 & 1 & \?0 & 0 & 0 & 0 & 0 \\
\|0 & 2 & \?1 & 0 & 0 & 0 & 0 \\
\|0 & 0 & \?2 & 0 & 0 & 0 & 0 \\
\cline{1-5}
0 & 0 & \?0 & 2 & \?1 & 0 & 0 \\
0 & 0 & \?0 & 0 & \?2 & 0 & 0 \\
\cline{4-6}
0 & 0 & 0 & 0 & \?0 & \?3 & 0 \\
\cline{6-7}
0 & 0 & 0 & 0 & 0 & \?0 & \?3 \\
\cline{7-7}
\end{array}\,\right)
\]
\end{document}
答案2
这是一个使用选项nicematrix
如果你想改变线条的样式,你可以添加\usepackage{tikz}
,然后你可以将任何 TikZ 选项添加到borders
选项中,例如,tikz={dashed,red}
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\[
\begin{pNiceMatrix}
\Block[borders={bottom,right}]{3-3}{}
2 & 1 & 0 & 0 & 0 & 0 & 0\\
0 & 2 & 1 & 0 & 0 & 0 & 0\\
0 & 0 & 2 & 0 & 0 & 0 & 0\\
0 & 0 & 0 & \Block[borders={bottom,right,top,left}]{2-2}{} 2 & 1 & 0 & 0\\
0 & 0 & 0 & 0 & 2 & 0 & 0\\
0 & 0 & 0 & 0 & 0 & \Block[borders={bottom,right,top,left}]{1-1}{} 3 & 0\\
0 & 0 & 0 & 0 & 0 & 0 & \Block[borders={top,left}]{1-1}{}3\\
\end{pNiceMatrix}
\]
\end{document}