假设我有一张这样的桌子,
\documentclass{article}
\usepackage{amsmath} % for "\text" macro
\newcommand{\smbullet}{{\scriptscriptstyle\bullet}}
\begin{document}
\begin{table*}[!htb]
\centering
\begin{tabular}{c c c c c c c }\hline
$ H$ & VB-3 & VB-2 & VB-1&CB+1&CB+2&\\\hline
1 & 2 & 3 & a &b & c \\
1 & 2 & 3 & d &e & f \\
1 & 2 & 3 & g &h & i \\
a & b & c & 1 & 2 & 3 \\
d & e & f & 1 &2 & 3 \\
g & h & i & 1 &2 & 3 \\
\end{tabular}
\end{table*}
\end{document}
我如何将括号放在右上角 3x3 矩阵和左下角 3x3 之间,而不是从 a 到 i 的输入,只需插入带有 H 的括号即可。
答案1
和nicematrix
。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{table*}[!htb]
\centering
\begin{NiceTabular}{c c c c c c}[first-row]
\hline
$ H$ & VB-3 & VB-2 & VB-1&CB+1&CB+2\\
\hline
1 & 2 & 3 & \Block{3-3}{H} & & \\
1 & 2 & 3 & & & \\
1 & 2 & 3 & & & \\
\Block{3-3}{H}
& & & 1 & 2 & 3 \\
& & & 1 &2 & 3 \\
& & & 1 &2 & 3 \\
\CodeAfter
\SubMatrix[{1-4}{3-6}][extra-height=-3pt,xshift=-2mm]
\SubMatrix[{4-1}{6-3}][extra-height=-3pt]
\end{NiceTabular}
\end{table*}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。
答案2
您可以手动插入左/右括号,了解要处理的行的高度。在您的例子中,矩阵跨越 3 行,将左/右括号放在中间行\smash
。
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{ *{6}{c} }
\toprule
$H$ & $VB - 3$ & $VB - 2$ & $VB - 1$ & $CB + 1$ & $CB + 2$ \\
\midrule
1 & 2 & 3 & a & b & c \\
\llap{\smash{$\left[\vphantom{\begin{array}{c} 1 \\ 1 \\ 1 \end{array}}\right.$}}1 & 2 &
3\rlap{\smash{$\left.\vphantom{\begin{array}{c} 3 \\ 3 \\ 3 \end{array}}\right]$}} & d & e & f \\
1 & 2 & 3 & g & h & i \\
a & b & c & 1 & 2 & 3 \\
d & e & f & \llap{\smash{$\left[\vphantom{\begin{array}{c} 1 \\ 1 \\ 1 \end{array}}\right.$}}1 & 2 &
3\rlap{\smash{$\left.\vphantom{\begin{array}{c} 3 \\ 3 \\ 3 \end{array}}\right]$}} \\
g & h & i & 1 & 2 & 3 \\
\bottomrule
\end{tabular}
\end{document}