我想根据表格的行来添加阴影。例如,如果您看到下面的表格:
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}]
将背景颜色更改为红色。