创建具有垂直分隔标题行和 \hhline 的表格会产生水平线失真

创建具有垂直分隔标题行和 \hhline 的表格会产生水平线失真

我想创建一个表格,用 标记某些单元格,$\times$或者让它们保持空白。我有两个标题行,我想在视觉上将第一个标题行分开。我使用\hhline{~======}来实现这种视觉分离。我求助于使用这个附加包,因为我发现 double\hline似乎无法正常工作\multicolumn{1}{c|}{}

在最终找到解决方案之后,我现在遇到的问题是,产生的水平线\hhline奇怪地扭曲了:

在此处输入图片描述

这是我的最小工作示例:

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{hhline}

\begin{document}

\begin{table}[h]
  \centering
  \begin{tabular}{|l|c|c|c|c|c|c|c|c|}
    \cline{2-7}
    \multicolumn{1}{c|}{} 
          & $T_1$    & $T_2$    & $T_3$    & $T_4$    & $T_5$    & $T_6$    \\ 
    \hhline{~ = = = = = =}
    \multicolumn{1}{c|}{}
          & $r_1$    & $r_2$    & $r_3$    & $r_4$    & $r_5$    & $r_6$    \\
    \hline
    $t_1$ &          & $\times$ &          & $\times$ & $\times$ &          \\
    \hline
    $t_2$ & $\times$ &          & $\times$ &          &          &          \\
    \hline
    $t_3$ &          & $\times$ &          &          &          &          \\
    \hline
    $t_4$ & $\times$ &          &          & $\times$ & $\times$ & $\times$ \\
    \hline
    $t_5$ &          & $\times$ & $\times$ &          &          & $\times$ \\
    \hline
    $t_6$ &          &          &          & $\times$ & $\times$ & $\times$ \\
    \hline
  \end{tabular}
\end{table}
\end{document}

对我来说,这似乎是抗锯齿问题,但我可能做错了什么。如果有人能告诉我修复方法或与现在看起来相同的替代解决方案,我将非常高兴。谢谢。

答案1

使用,您将在所有缩放级别的所有 PDF 查看器中获得完美的输出{NiceTabular}nicematrix因为规则是使用图形层 PGF/Tikz 绘制的(而不是通过连接小字符)。

\documentclass{article}

\usepackage{nicematrix}

\begin{document}

\begin{table}[h]
  \centering
  \begin{NiceTabular}{|l|c|c|c|c|c|c|}[corners]
    \Hline
          & $T_1$    & $T_2$    & $T_3$    & $T_4$    & $T_5$    & $T_6$    \\ 
    \Hline
    \Hline
          & $r_1$    & $r_2$    & $r_3$    & $r_4$    & $r_5$    & $r_6$    \\
    \Hline
    $t_1$ &          & $\times$ &          & $\times$ & $\times$ &          \\
    \Hline
    $t_2$ & $\times$ &          & $\times$ &          &          &          \\
    \Hline
    $t_3$ &          & $\times$ &          &          &          &          \\
    \Hline
    $t_4$ & $\times$ &          &          & $\times$ & $\times$ & $\times$ \\
    \Hline
    $t_5$ &          & $\times$ & $\times$ &          &          & $\times$ \\
    \Hline
    $t_6$ &          &          &          & $\times$ & $\times$ & $\times$ \\
    \Hline
  \end{NiceTabular}
\end{table}
\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

第一个代码的输出

正如您所见,双水平规则并没有破坏垂直规则(这是设计使然nicematrix)。

如果您希望破坏垂直规则(与 LaTeX 中表格的标准行为一样),这是可能的,但会稍微复杂一些:

\documentclass{article}

\usepackage{nicematrix,tikz}

\begin{document}

\begin{table}[h]
  \centering
  \newcolumntype{I}{!{\vrule}}
  \begin{NiceTabular}{lIcIcIcIcIcIcI}[corners]
    \Hline
          & $T_1$    & $T_2$    & $T_3$    & $T_4$    & $T_5$    & $T_6$    \\ 
    \Hline
    \Hline
          & $r_1$    & $r_2$    & $r_3$    & $r_4$    & $r_5$    & $r_6$    \\
    \Hline
    $t_1$ &          & $\times$ &          & $\times$ & $\times$ &          \\
    \Hline
    $t_2$ & $\times$ &          & $\times$ &          &          &          \\
    \Hline
    $t_3$ &          & $\times$ &          &          &          &          \\
    \Hline
    $t_4$ & $\times$ &          &          & $\times$ & $\times$ & $\times$ \\
    \Hline
    $t_5$ &          & $\times$ & $\times$ &          &          & $\times$ \\
    \Hline
    $t_6$ &          &          &          & $\times$ & $\times$ & $\times$ \\
    \Hline
  \CodeAfter \tikz \draw (3-|1) -- (last-|1) ;
  \end{NiceTabular}
\end{table}
\end{document}

第二段代码的输出

相关内容