表格环境中具有水平线的单元格颜色

表格环境中具有水平线的单元格颜色

我正在尝试用乳胶绘制下图:

enter image description here

但是,我的一些水平线似乎被单元格颜色弄模糊了,而一些垂直线根本就不显示。有人知道如何解决这个问题吗?

\documentclass{article}
\usepackage{colortbl}
\usepackage{hhline}
\begin{document}
\begin{tabular}{|llll|}
    \hhline{*{4}{>{\arrayrulecolor{black}}-|}}
    1 & 2 & 3 & 4 \\\hhline{*{4}{>{\arrayrulecolor{black}}-|}}

    \cellcolor{blue} & 2 & 3 & 4 \\\hhline{*{4}{>{\arrayrulecolor{black}}-|}}

    \cellcolor{blue} & \cellcolor{blue} & 3 & 4 \\\hhline{*{4}{>{\arrayrulecolor{black}}-|}}

    \cellcolor{blue} & \cellcolor{blue} & \cellcolor{blue} & 4 \\\hhline{*{4}{>{\arrayrulecolor{black}}-|}}
\end{tabular}
\end{document}

答案1

不要使用hhline插入规则。相反,使用array确实更好地连接角落tabular

enter image description here

\documentclass{article}

\usepackage{colortbl,array}

\begin{document}

\begin{tabular}{| *{4}{l|} }
  \hline
  1 & 2 & 3 & 4 \\
  \hline
  \cellcolor{blue} & 2 & 3 & 4 \\
  \hline
  \cellcolor{blue} & \cellcolor{blue} & 3 & 4 \\
  \hline
  \cellcolor{blue} & \cellcolor{blue} & \cellcolor{blue} & 4 \\
  \hline
\end{tabular}

\end{document}

答案2

该软件包nicematrix有专门针对此类问题而设计的工具。它提供了{NiceTabular}与经典环境{tabular}(的array)类似的环境,但规则和彩色面板由 PGF/Tikz 绘制。输出在所有 PDF 查看器中都是完美的。

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{llll}[hvlines,colortbl-like]
  1 & 2 & 3 & 4 \\
  \cellcolor{blue} & 2 & 3 & 4 \\
  \cellcolor{blue} & \cellcolor{blue} & 3 & 4 \\
  \cellcolor{blue} & \cellcolor{blue} & \cellcolor{blue} & 4 \\
\end{NiceTabular}

\end{document}

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

Output of the above code

答案3

为了完整性,还有一个解决方案......

可以tabularray实现以下结果:

enter image description here

\documentclass{article}
\usepackage{xcolor}
\usepackage{tabularray}

\begin{document}

\begin{tblr}{hlines, vlines,
             cells = {c},
             cell{2}{1}   = {bg=blue6},
             cell{3}{1-2} = {bg=blue6},
             cell{4}{1-3} = {bg=blue6}
             }
  1 & 2 & 3 & 4 \\
    & 2 & 3 & 4 \\
    &   & 3 & 4 \\
    &   &   & 4 \\
\end{tblr}

\end{document}

编辑: 可以通过定义新的命令来为单元格着色来实现相同的结果,例如,\NewTableCommand\bc{\SetCell{bg=blue6}}然后在每个需要着色的表格单元格中使用它:

\documentclass{article}
\usepackage{xcolor}
\usepackage{tabularray}
\NewTableCommand\bc{\SetCell{bg=blue6}}

\begin{document}

\begin{tblr}{hlines, vlines,
             cells = {c},
             }
  1 &   2 &  3 & 4 \\
\bc &   2 &  3 & 4 \\
\bc &\bc  &  3 & 4 \\
\bc &\bc  &\bc & 4 \\
\end{tblr}

\end{document}

编译结果和以前相同。

相关内容