请考虑下表:
\documentclass[a4paper]{report}
\usepackage{multirow}
\usepackage[table]{xcolor}
\begin{document}
\begin{table}
\rowcolors{1}{gray!15}{gray!15}
\centering
\begin{tabular}{rrrrr}
\rowcolor{gray!50}
Header & 1 & 2 & 3 & 4 \\
Row1 & a & b & c & d \\
\multicolumn{1}{c}{\multirow{2}[0]{*}{Multirow1}} & a1 & b1 & c1 & d1 \\
\multicolumn{1}{c}{} & a2 & b2 & c2 & d2 \\
Row2 & aa & ab & ac & ad \\
\end{tabular}
\end{table}
\end{document}
让我不满意的是“Multirow1”现在半隐藏了。此外,我想使用 RGB 值而不是颜色。但不知道该怎么做gray!15
。gray!50
答案1
我猜想在创建 后,下方单元格会填充颜色multirow
,从而掩盖其内容。如果您将 移至multirow
最底行,并使用-2
代替2
,效果会更好。
要使用 RGB 值定义颜色,请使用
\definecolor{<name of colour>}{rgb}{<red>, <green>, <blue>}
其中<color>
在区间 [0,1] 内,或者
\definecolor{<name of colour>}{RGB}{<red>, <green>, <blue>}
其中<color>
是区间 [0,255] 内的整数。
\documentclass[a4paper]{report}
\usepackage{multirow}
\usepackage[table]{xcolor}
\definecolor{MyColor}{rgb}{0.8, 0.8, 0.8}
\begin{document}
\begin{table}
\rowcolors{1}{gray!15}{gray!15}
\centering
\begin{tabular}{rrrrr}
\rowcolor{MyColor}
Header & 1 & 2 & 3 & 4 \\
Row1 & a & b & c & d \\
\multicolumn{1}{c}{} & a1 & b1 & c1 & d1 \\
\multicolumn{1}{c}{\multirow{-2}[0]{*}{Multirow1}} & a2 & b2 & c2 & d2 \\
Row2 & aa & ab & ac & ad \\
\end{tabular}
\end{table}
\end{document}
答案2
这是实现此目的的一种方法nicematrix
(您至少需要 2021-03-23 的 v. 5.13)。
在某些缩放级别下,您将不会看到colortbl
在某些 PDF 查看器(例如 SumatraPDF)中看到的细白线。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{table}
\centering
\begin{NiceTabular}{rrrrr}
\CodeBefore
\arraycolor{gray!15}
\rowcolor{gray!30}{1}
\Body
Header & 1 & 2 & 3 & 4 \\
Row1 & a & b & c & d \\
\Block{2-1}{Multirow1}
& a1 & b1 & c1 & d1 \\
& a2 & b2 & c2 & d2 \\
Row2 & aa & ab & ac & ad \\
\end{NiceTabular}
\end{table}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。