Cellcolor 覆盖部分水平线(\cline)

Cellcolor 覆盖部分水平线(\cline)

因此,我需要制作一个多行彩色表格,并使用部分水平线。我使用了\cline它,但它不起作用:\cellcolor-命令会覆盖该行。这个问题告诉我将其更改为\hhline不会被覆盖\cellcolor。而是\hhline覆盖颜色。

为了更清楚起见:

无颜色:

\documentclass{article}

\usepackage{colortbl}
\usepackage{multirow}

\begin{document}

  \begin{tabular}{|c|c|}
    \hline
    \bfseries ColumnOne & \bfseries ColumnTwo\\ \hline
    First data & 932\\ \hline
     & 239\\ \cline{2-2}  % or \hhline{|~|-|}
     & 137\\ \cline{2-2}  % or \hhline{|~|-|}
    \multirow{-3}{*}{More data} & 319\\ \hline
    Last data & 132\\ \hline
  \end{tabular}

\end{document}

使用不带颜色的 <code>\cline</code>

配色:
使用\cline

\documentclass{article}

\usepackage{colortbl}
\usepackage{multirow}

\begin{document}

  \begin{tabular}{|>{\columncolor{red}}c|>{\columncolor{blue}}c|}
    \hline
    \bfseries ColumnOne & \bfseries ColumnTwo\\ \hline
    First data & 932\\ \hline
     & 239\\ \cline{2-2}
     & 137\\ \cline{2-2}
    \multirow{-3}{*}{More data} & 319\\ \hline
    Last data & 132\\ \hline
  \end{tabular}

\end{document}

在此处输入图片描述 使右列的线条消失。

使用\hhline

\documentclass{article}

\usepackage{colortbl}
\usepackage{multirow}
\usepackage{hhline}

\begin{document}

  \begin{tabular}{|>{\columncolor{red}}c|>{\columncolor{blue}}c|}
    \hline
    \bfseries ColumnOne & \bfseries ColumnTwo\\ \hline
    First data & 932\\ \hline
     & 239\\ \hhline{|~|-|}
     & 137\\ \hhline{|~|-|}
    \multirow{-3}{*}{More data} & 319\\ \hline
    Last data & 132\\ \hline
  \end{tabular}

\end{document}

在此处输入图片描述 在左列创建白线。

有什么可能的方法可以解决这个问题?

答案1

很抱歉这里的界面不太漂亮:但是你可以这样做:

\documentclass{article}

\usepackage{colortbl}
\usepackage{multirow}
\usepackage{hhline}

\begin{document}

  \begin{tabular}{|>{\columncolor{red}}c|>{\columncolor{blue}}c|}
    \hline
    \bfseries ColumnOne & \bfseries ColumnTwo\\ \hline
    First data & 932\\ \hline
     & 239\\ \hhline{|>{\arrayrulecolor{red}}->{\arrayrulecolor{black}}|-|}
     & 137\\ \hhline{|>{\arrayrulecolor{red}}->{\arrayrulecolor{black}}|-|}
    \multirow{-3}{*}{More data} & 319\\ \hline
    Last data & 132\\ \hline
  \end{tabular}

\end{document}

结果:

在此处输入图片描述

答案2

tblr有了新的 LaTeX3 包环境,一切都变得轻而易举tabularray:multirow、cline 和 cellcolor 可以很好地协同工作,正如预期的那样。您甚至可以在以下代码中将\cline{2}'s 替换为s。\hline

\documentclass{article}

\usepackage{xcolor}
\usepackage{tabularray}

\begin{document}

\begin{tblr}{
  colspec = {|Q[c,red7]|Q[c,blue7]|},
  cell{3}{1} = {r=3}{m}, % multirow
  row{1} = {font=\bfseries},
}
  \hline
    ColumnOne & ColumnTwo \\
  \hline
    First data & 932      \\
  \hline
    More data  & 239      \\
  \cline{2}
               & 137      \\
  \cline{2}
               & 319      \\
  \hline
    Last data  & 132      \\
  \hline
\end{tblr}

\end{document}

在此处输入图片描述

答案3

环境{NiceTabular}nicematrix解决该问题的方法。命令\cline受到尊重。此外,\cline{2}可以用作的语法快捷方式\cline{2-2}

\documentclass{article}
\usepackage{xcolor}
\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{|c|c|}
 \CodeBefore 
   \columncolor{red!15}{1} 
   \columncolor{blue!15}{2}
 \Body
  \hline
  \RowStyle{\bfseries}
  ColumnOne    & ColumnTwo \\ \hline
  First data             & 932 \\ \hline
  \Block{3-1}{More data} & 239 \\ \cline{2-2}
                         & 137 \\ \cline{2}
                         & 319 \\ \hline
  Last data              & 132 \\ \hline
\end{NiceTabular}

\end{document}

在此处输入图片描述

事实上,在这种情况下,可以简化代码。使用键hvlines,除了块(由 命令创建)之外,所有水平和垂直规则都将绘制\Blocknicematrix这就是我们所需要的。

\documentclass{article}
\usepackage{xcolor}
\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{cc}[hvlines]
 \CodeBefore
   \columncolor{red!15}{1} 
   \columncolor{blue!15}{2}
 \Body
   \RowStyle{\bfseries}
   ColumnOne              & ColumnTwo \\ 
   First data             & 932 \\ 
   \Block{3-1}{More data} & 239 \\ 
                          & 137 \\ 
                          & 319 \\ 
   Last data              & 132 \\ 
\end{NiceTabular}

\end{document}

第二段代码的结果

答案4

我迟到了。而且,可以肯定的是,这个修复程序很老套,如果不进行一些调整,它就不会提供解决方案。它确实相当干净地解决了我的问题,而且因为我找到了这个讨论,所以我会在这里添加我的答案。

似乎可以cline通过添加回车符然后删除一些垂直空间来“欺骗”单元格上的颜色填充,使其不覆盖,这样行就会保留在原处,而单元格会稍微向下移动。我不得不在修复后编译您的代码几次,以获得正确的垂直间距 -4.1mm,但如果需要快速修复,它可以避免大量返工。

\documentclass{article}

\usepackage{colortbl}
\usepackage{multirow}

\begin{document}

  \begin{tabular}{|>{\columncolor{red}}c|>{\columncolor{blue}}c|}
    \hline
    \bfseries ColumnOne & \bfseries ColumnTwo\\ \hline
    First data & 932\\ \hline
     & 239\\ \cline{2-2}\\[-4.1mm]
     & 137\\ \cline{2-2}\\[-4.1mm]
    \multirow{-3}{*}{More data} & 319\\ \hline
    Last data & 132\\ \hline
  \end{tabular}

\end{document}

结果:

黑客修复的结果

相关内容