答案1
这里有两种使用 来实现的{bNiceMatrix}
方法nicematrix
。
对于第一种方法,我使用创建的 PGF/Tikz 节点用 Tikz 绘制了所有规则nicematrix
(您至少需要 2021-02-22 的 5.11 版本)。
对于第二种方法,我已经创建了块(使用内置命令\Block
),并且密钥hvlines
绘制了块中除外的所有规则。
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
$\begin{bNiceMatrix}[margin]
1&2&3&4&5&6&7\\
1&2&3&4&5&6&7\\
1&2&3&4&5&6&7\\
1&2&3&4&5&6&7\\
1&2&3&4&5&6&7\\
1&2&3&4&5&6&7\\
1&2&3&4&5&6&7\\
\CodeAfter
\tikz \foreach \x in {3,...,7}
{ \draw (\x-|1) -- (\x-|\inteval{\x+1})
(\x|-1) -- (\x|-\inteval{\x+1}) ; } ;
\end{bNiceMatrix}$
\bigskip
$\begin{bNiceMatrix}[margin,hvlines]
\Block{2-2}{}1&2&\Block{2-1}{}3&\Block{3-1}{}4&\Block{4-1}{}5&\Block{5-1}{}6&\Block{6-1}{}7\\
1&2&3&4&5&6&7 \\
\Block{1-2}{}1&2&3&4&5&6&7 \\
\Block{1-3}{}1&2&3&4&5&6&7 \\
\Block{1-4}{}1&2&3&4&5&6&7 \\
\Block{1-5}{}1&2&3&4&5&6&7 \\
\Block{1-6}{}1&2&3&4&5&6&7 \\
\end{bNiceMatrix}$
\end{document}
您需要多次编译(因为nicematrix
使用 PGF/Tikz 节点)。
答案2
带包装easybmat
您可以将路径添加到矩阵。
\documentclass{article}
\usepackage{easybmat}
\begin{document}
\[P=
\left[
\begin{BMAT}{ccccccc|c}{cccccc|c}
0 & 0 & 1 & 0 & 0 & 0 & 0& 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0& 0 \\
0 & 0 & 1 & 0 & 0 & 0 & 0& 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0& 0 \\
0 & 0 & 1 & 0 & 0 & 0 & 0& 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0& 0 \\
0 & 0 & 1 & 0 & 0 & 0 & 0& 0
\addpath{(0,2,4)rrrrrrr}
\addpath{(0,3,4)rrrrrr}
\addpath{(0,4,4)rrrrr}
\addpath{(0,5,4)rrrr}
\addpath{(0,6,4)rrr}
\addpath{(2,7,4)dd}
\addpath{(3,7,4)ddd}
\addpath{(4,7,4)dddd}
\addpath{(5,7,4)ddddd}
\addpath{(6,7,4)dddddd}
\end{BMAT}
\right]
\]
\end{document}
答案3
我首先想到的方法是:
\newcommand{\xx}{\multicolumn{1}{c}}
\[
\left[
\begin{array}{c|c|c|c|c|c|c}
& & & & & & \\
\cline{1-2}
& & & & & & \\
\cline{1-3}
\xx{}& & & & & & \\
\cline{1-4}
\xx{}&\xx{}& & & & &\\
\cline{1-5}
Remainder left as exercise to the reader
\end{array}
\right]
\]
宏\xx
是减少每个单元格的输入量的捷径,我们希望删除那些不需要的单元格中的竖线。当然,如果您不需要填充矩阵的每个单元格,您可以编写,例如,\multicolumn{2}{c}{}
代替\xx{}&\xx{}
。