如何在表格内放置方括号?

如何在表格内放置方括号?

假设我有一张这样的桌子,

\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}

相关内容