如何使 LaTeX 表格中某些行的垂直线变粗?

如何使 LaTeX 表格中某些行的垂直线变粗?

我想制作一个表格并使用粗线突出显示其中的某个区域,如下所示。

在此处输入图片描述

为了重现上面的表格,我使用了tabu包来制作粗水平线和垂直线。但是,LaTeX 中没有任何命令可以制作跨越给定行的粗垂直线。基本上,我正在寻找一个垂直版本\tabucline。这是我的代码和输出:

\begin{table}[h!]
\centering
\renewcommand{\arraystretch}{1.75}
\begin{tabu}{|[1.5pt]c|c|c|c|c|c|c|c|}
    \tabucline[1.5pt]{-}
    (-4, -4) & (-3, -4) & (-2, -4) & (-1, -4) & (0, -4) & (1, -4) & (2, -4) & (3, -4)    \\
    \hline
    (-4, -3) & (-3, -3) & (-2, -3) & (-1, -3) & (0, -3) & (1, -3) & (2, -3) & (3, -3)    \\
    \hline
    (-4, -2) & (-3, -2) & (-2, -2) & (-1, -2) & (0, -2) & (1, -2) & (2, -2) & (3, -2)    \\
    \hline
    (-4, -1) & (-3, -1) & (-2, -1) & (-1, -1) & (0, -1) & (1, -1) & (2, -1) & (3, -1)    \\
    \tabucline[1.5pt]{5-8}\hline
    (-4, 0) & (-3, 0) & (-2, 0) & (-1, 0) & (0, 0) & (1, 0) & (2, 0) & (3, 0)    \\
    \tabucline[1.5pt]{2-4}\hline
    (-4, 1) & (-3, 1) & (-2, 1) & (-1, 1) & (0, 1) & (1, 1) & (2, 1) & (3, 1)    \\
    \hline
    (-4, 2) & (-3, 2) & (-2, 2) & (-1, 2) & (0, 2) & (1, 2) & (2, 2) & (3, 2)    \\
    \hline
    (-4, 3) & (-3, 3) & (-2, 3) & (-1, 3) & (0, 3) & (1, 3) & (2, 3) & (3, 3)    \\
    \hline\tabucline[1.5pt]{1-1}
  \end{tabu}
\end{table}

在此处输入图片描述

答案1

  • 不要使用tabu。它有缺陷,而且没有维护
  • 相反,我建议使用(相对较新的)包tabularray
  • 使用它您可以定义表格序言中的所有水平线和垂直线。
\documentclass{article}
\usepackage{tabularray}

\begin{document}
    \begin{table}[ht]
    \centering
\begin{tblr}{hlines = {0.1pt}, vlines = {0.1pt},
             hline{1} = 1pt, 
             hline{5}={5-Z}{1pt}, hline{6}={2-4}{1pt}, hline{Z}={1}{1pt},
             vline{1}={1pt}, 
             vline{2}={6-Z}{1pt}, vline{5}={5}{1pt}, vline{Z}={1-4}{1pt},
             colspec =  {*{8}{Q[c, $]}},
             }
    (-4, -4) & (-3, -4) & (-2, -4) & (-1, -4) & (0, -4) & (1, -4) & (2, -4) & (3, -4)    \\
    (-4, -3) & (-3, -3) & (-2, -3) & (-1, -3) & (0, -3) & (1, -3) & (2, -3) & (3, -3)    \\
    (-4, -2) & (-3, -2) & (-2, -2) & (-1, -2) & (0, -2) & (1, -2) & (2, -2) & (3, -2)    \\
    (-4, -1) & (-3, -1) & (-2, -1) & (-1, -1) & (0, -1) & (1, -1) & (2, -1) & (3, -1)    \\
   (-4, 0)   & (-3, 0)  & (-2, 0)  & (-1, 0)  & (0, 0)  & (1, 0)  & (2, 0)  & (3, 0)     \\
    (-4, 1)  & (-3, 1)  & (-2, 1)  & (-1, 1)  & (0, 1)  & (1, 1)  & (2, 1)  & (3, 1)     \\
    (-4, 2)  & (-3, 2)  & (-2, 2)  & (-1, 2)  & (0, 2)  & (1, 2)  & (2, 2)  & (3, 2)     \\
    (-4, 3)  & (-3, 3)  & (-2, 3)  & (-1, 3)  & (0, 3)  & (1, 3)  & (2, 3)  & (3, 3)     \\
  \end{tblr}
\end{table}
\end{document}

在此处输入图片描述

tabularray注意:上面的 MWE 使用包版本 2022C进行测试。

答案2

这是一个{NiceTabular}使用 的解决方案nicematrix

在这个环境中,关键的hvlines是绘制所有的规则。

nicematrix但是,仍然可以使用在行、列和单元格下创建的 Tikz 节点使用 Tikz 绘制所需的任何规则。

\documentclass{article}
\usepackage{nicematrix,tikz}

\begin{document}
\begin{table}[ht]
\centering
\begin{NiceTabular}[hvlines]{cccccccc}
    (-4, -4) & (-3, -4) & (-2, -4) & (-1, -4) & (0, -4) & (1, -4) & (2, -4) & (3, -4)    \\
    (-4, -3) & (-3, -3) & (-2, -3) & (-1, -3) & (0, -3) & (1, -3) & (2, -3) & (3, -3)    \\
    (-4, -2) & (-3, -2) & (-2, -2) & (-1, -2) & (0, -2) & (1, -2) & (2, -2) & (3, -2)    \\
    (-4, -1) & (-3, -1) & (-2, -1) & (-1, -1) & (0, -1) & (1, -1) & (2, -1) & (3, -1)    \\
    (-4, 0)  & (-3, 0)  & (-2, 0)  & (-1, 0)  & (0, 0)  & (1, 0)  & (2, 0)  & (3, 0)     \\
    (-4, 1)  & (-3, 1)  & (-2, 1)  & (-1, 1)  & (0, 1)  & (1, 1)  & (2, 1)  & (3, 1)     \\
    (-4, 2)  & (-3, 2)  & (-2, 2)  & (-1, 2)  & (0, 2)  & (1, 2)  & (2, 2)  & (3, 2)     \\
    (-4, 3)  & (-3, 3)  & (-2, 3)  & (-1, 3)  & (0, 3)  & (1, 3)  & (2, 3)  & (3, 3)     \\
\CodeAfter
  \tikz \draw [very thick] (1-|1) |- (9-|2) |- (5-|5) |- (4-|last) |- (1-|1) -- cycle ; 
\end{NiceTabular}
\end{table}
\end{document}

您需要多次编译(因为 PGF/Tikz 节点)。

上述代码的输出

相关内容