如何为表格中的行添加阴影

如何为表格中的行添加阴影

我想根据表格的行来添加阴影。例如,如果您看到下面的表格:

a  b   c   d 
a 90 10  0   0
b 0  80  10  10
c 0  0   95  5
d 0  10  5   85

我想自动为每行添加阴影。这是来自(通过 TikZ 在表格中参数化阴影)的代码,我想要这个主题

\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{babel}
\usepackage[table]{xcolor}
\usepackage{collcell}
\usepackage{hhline}
\usepackage{pgf}
\usepackage{multirow}

\def\colorModel{hsb} %You can use rgb or hsb

\newcommand\ColCell[1]{
  \pgfmathparse{#1<50?1:0}  %Threshold for changing the font color into the cells
    \ifnum\pgfmathresult=0\relax\color{white}\fi
  \pgfmathsetmacro\compA{0}      %Component R or H
  \pgfmathsetmacro\compB{#1/100} %Component G or S
  \pgfmathsetmacro\compC{1}      %Component B or B
  \edef\x{\noexpand\centering\noexpand\cellcolor[\colorModel]{\compA,\compB,\compC}}\x #1
  } 
\newcolumntype{E}{>{\collectcell\ColCell}m{0.4cm}<{\endcollectcell}}  %Cell width

\begin{document}
\newcommand\items{3}   %Number of classes
\arrayrulecolor{white} %Table line colors
\noindent\begin{tabular}{c*{\items}{|E}|}
\multicolumn{1}{c}{} & 
\multicolumn{1}{c}{A} & 
\multicolumn{1}{c}{B} & 
\multicolumn{1}{c}{C} \\ \hhline{~*\items{|-}|}
A  & 100   & 0  & 10   \\ \hhline{~*\items{|-}|}
B  & 10   & 80  & 10   \\ \hhline{~*\items{|-}|}
C  & 30   & 0   & 70   \\ \hhline{~*\items{|-}|}
\end{tabular}

\end{document}

我想要一张像我附上的这张图片一样的表格

我想要一张像我附上的这张图片一样的表格

答案1

这是 的解决{NiceTabular}方案nicematrix

\documentclass[english]{article}
\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{c*{3}{|wc{1cm}}}[cell-space-limits=3pt,color-inside,rules/color=white]
\RowStyle[rowcolor=blue!50,color=white]{}
   &  A    & B  & C  \\
\rowcolors{blue!10}{blue!15} 
A  & 100   & 0  & 10 \\ 
B  & 10    & 80 & 10 \\ 
C  & 30    & 0  & 70 \\ 
\end{NiceTabular}

\end{document}

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

上述代码的输出

答案2

有趣的是,您采用的方法是根据单元格的值将“模板样式”应用于表格。

这个答案与 F. Pantigny 的答案没有太大区别。也许它更接近您发布的 MWE 风格。

在此处输入图片描述

% !TeX TS-program = pdflatex    

\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{babel}
\usepackage[table]{xcolor}
\usepackage{collcell}
\usepackage{hhline}
\usepackage{pgf}
\usepackage{multirow}

\usepackage{nicematrix}

\def\colorModel{hsb} %You can use rgb or hsb

\newcommand\ColCell[1]{
  \pgfmathparse{#1<50?1:0}  %Threshold for changing the font color into the cells
    \ifnum\pgfmathresult=0\relax\color{white}\fi
  \pgfmathsetmacro\compA{0}      %Component R or H
  \pgfmathsetmacro\compB{#1/100} %Component G or S
  \pgfmathsetmacro\compC{1}      %Component B or B
  \edef\x{\noexpand\centering\noexpand\cellcolor[\colorModel]{\compA,\compB,\compC}}\x #1
  } 
\newcolumntype{E}{>{\collectcell\ColCell}m{0.4cm}<{\endcollectcell}}  %Cell width

\begin{document}
\newcommand\items{3}   %Number of classes
\arrayrulecolor{white} %Table line colors

\noindent\begin{NiceTabular}{cccc}[code-before =  \rowcolors{2}{blue!25}{blue!15} \columncolor{white}{1}]
    & A     & B   & C    \\ \hhline{~*\items{|-}|}
A   & 100   & 0   & 10   \\ \hhline{~*\items{|-}|}
B   & 10    & 80  & 10   \\ \hhline{~*\items{|-}|}
C   & 30    & 0   & 70   \\ \hhline{~*\items{|-}|}
\end{NiceTabular}

\end{document}

用于[code-before = \rowcolors{2}{red!25}{red!15} \columncolor{white}{1}]将背景颜色更改为红色。

b

相关内容