表格各部分的线条粗细可变

表格各部分的线条粗细可变

我正在使用这个代码:

\documentclass{article}
\usepackage{array}
\begin{document}
\newcolumntype{?}{!{\vrule width 1.5pt}}
\scalebox{1.1}{
\begin{tabular}{|c?c|c|c?c|}  \hline
    & & &  & \\   \specialrule{.13em}{.2em}{.2em} 
    $b_1$ &$a_1$ & $b_2$  &$a_2$& \\ \specialrule{.15em}{.2em}{.2em}
\end{tabular}
\end{document}

但是,我只希望第二行中间的三个单元格被较粗的线条包围,其他地方我需要较细的线条。我目前得到的输出如下所示,较粗的线条超出了底部的三个单元格。

在此处输入图片描述

答案1

与。{NiceTabular}nicematrix

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{ccccc}[hvlines]
\\
$b_1$ & \Block[draw,line-width=1pt,transparent]{1-3}{} 
        $a_1$ & $b_2$  & $a_2$ & \\ 
\\
\end{NiceTabular}

\end{document}

上述代码的输出

答案2

您的代码有两个问题:

  1. \usepackage应在序言中、之前使用\begin{document}
  2. \specialrule是 tbe 包提供的命令,booktabs但您在示例中未加载该命令,因此会出现错误。请注意,该booktabs包不适用于具有垂直规则的表格材料,但您可以\specialrule通过将第二和第三个参数设置为 将命令的垂直间距设置为零0pt

因此,您可以执行以下操作:

\documentclass{article}
\usepackage{array, booktabs}
\newcolumntype{?}{!{\vrule width 1.5pt}}
\begin{document}
\begin{tabular}{ | c ? c | c | c ? c |}
\hline
      &       &       &       & \\ \specialrule{.13em}{0pt}{0pt}
$b_1$ & $a_1$ & $b_2$ & $a_2$ & \\ \specialrule{.13em}{0pt}{0pt}
\end{tabular}
\end{document}

在此处输入图片描述


但对于您真正想要的,一种现代且更灵活的方法是使用包tabularray

\documentclass{article}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{
    colspec={ c c c c c },
    hlines,
    vlines,
    hline{2,3}={2-4}{2pt},
    vline{2,5}={2-4}{2pt}
}
      &       &       &       & \\ 
$b_1$ & $a_1$ & $b_2$ & $a_2$ & \\ 
\end{tblr}
\end{document}

在此处输入图片描述

相关内容