在某些表格中,左上角的单元格应该留空。为了在使用的表格中执行此操作\rowcolors
,我执行了\cellcolor{white}
。但是,我现在在具有背景的 Beamer 幻灯片中使用了一些这种类型的旧表格,因此我希望能够简单地取消特定单元格的行颜色(IE,使单元格透明,以便显示背景),而不是用白色填充(实际上,在这种情况下,白色看起来不如保持单元格原样美观)。
在下面的代码中,我使用哑元素\colorbox
来伪造第三个虚拟表实例的背景。请注意,我的真实背景是渐变色,因此用“背景中使用的颜色”填充单元格不是解决方案。
\documentclass{minimal}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[table]{xcolor}
\begin{document}
\newcommand{\emptycell}{}
\begin{tabular}{c c c}
\emptycell & A & B \\
Plop & 1 & 2 \\
\end{tabular}
\rowcolors{1}{blue!15}{blue!10}
\renewcommand{\emptycell}{\cellcolor{white}}
\begin{tabular}{c c c}
\emptycell & A & B \\
Plop & 1 & 2 \\
\end{tabular}
\colorbox{red!10}{%
\begin{tabular}{c c c}
\emptycell & A & B \\
Plop & 1 & 2 \\
\end{tabular}%
}
\end{document}
我尝试了一些非常疯狂的东西,但没有成功。我甚至做了以下这些(来吧,嘲笑我):
\newcommand{\emptycell}{%
\multicolumn{1}{
>{%
\let\rowc@lors\relax%
\def\@evenrowcolor{\@norowcolor}%
\def\@oddrowcolor{\@norowcolor}%
\let\rownum\relax%
} c
}{}%
}
谢谢你的时间。
答案1
您可以在这里尝试一下:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[table]{xcolor}
\begin{document}
\rowcolors{1}{blue!15}{blue!10}
\makeatletter
\global\let\oriCT@@do@color\CT@@do@color
\colorbox{red!10}{%
\begin{tabular}{c c c}
\global\let\CT@@do@color\relax %deactivate
&
\global\let\CT@@do@color\oriCT@@do@color %reactivate
A
&
B \\
Plop & 1 & 2 \\
\end{tabular}%
}
\end{document}
答案2
通过其键,的corners
环境可以检测空角,并且该角落中的单元格将不会被命令(内置于)着色。{NiceTabular}
nicematrix
\rowcolors
{NiceTabular}
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\pagecolor{red!10}
\begin{NiceTabular}{c c c}[color-inside,corners=NW] % NW : north-west
\rowcolors{blue!15}{blue!10}
& A & B \\
Plop & 1 & 2 \\
\end{NiceTabular}%
\end{document}
供参考:如果您使用 键添加规则hvlines
,则规则将不会绘制在空角落。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\pagecolor{red!10}
\begin{NiceTabular}{c c c}[hvlines,color-inside,corners=NW] % NW : north-west
\rowcolors{blue!15}{blue!10}
& A & B \\
Plop & 1 & 2 \\
\end{NiceTabular}%
\end{document}
nicematrix
还提供了一种特殊颜色nocolor
。当在带有 的单元格中使用该颜色时\cellcolor{nocolor}
,不会向该单元格添加任何颜色,即使\rowcolor
该行中命令有效。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\pagecolor{red!10}
\begin{NiceTabular}{c c c c c c c c }[color-inside]
\rowcolors{blue!15}{blue!10}
A & B & C & \cellcolor{nocolor} D & E & F & G & H \\
A & B & C & D & E & F & G & H \\
\end{NiceTabular}%
\end{document}
答案3
和tabularray
:
\documentclass{article}
%\usepackage[utf8]{inputenc} no more needed with recent distribution
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{tabularray}
\begin{document}
\colorbox{red!10}{%
\begin{tblr}{
colspec={c c c},
row{2}={blue!10},
cell{1}{2-Z} = {blue!15}
}
&A&B \\
Plop & 1 & 2 \\
\end{tblr}%
}
\vspace{1cm}
and if you like lines:
\vspace{1cm}
\colorbox{red!10}{%
\begin{tblr}{
colspec={c c c},
row{2}={blue!10},
cell{1}{2-Z} = {blue!15},
vline{1}={2}{solid},
vline{2-Z}={solid},
hline{1}={2-Z}{solid},
hline{2-Z}={solid},
}
&A&B \\
Plop & 1 & 2 \\
\end{tblr}%
}
\end{document}