编辑:显然,我不太清楚自己想要什么。我想要做的是在行之间交替使用灰色和白色。在这种情况下,第一行(标题)应该是灰色。使用 \multirow,如果没有颜色覆盖文本,则无法实现这一点,如标题 4 和标题 5 所示。
\multirow 文本被背景颜色覆盖。有人知道原因吗?我该如何修复?我已经尝试添加“-”, \multirow{-2}{*}{ \textbf{header1}}
如下所示,但仍然不起作用。
\usepackage{multirow}
\usepackage{graphicx}
\begin{table}[t]
\centering
\scriptsize
\begin{tabular}{p{1.7 cm}|p{1.4cm}|p{1.9cm}|p{1.5cm}|p{1.1cm}|p{2.1cm}|p{1.55cm}|p{1.2cm}|p{1.4cm}}
\toprule
\rowcolor{Gainsboro!60}
\multirow{-2}{*}{ \textbf{header1}} &
\multicolumn{4}{c|}{\textbf{\begin{tabular}[c]{@{}c@{}}header2 \end{tabular}}} &
\multicolumn{2}{c|}{\textbf{\begin{tabular}[c]{@{}c@{}}header 3.1 \\ \& header 3.2\end{tabular}}} &
\multirow{2}{*}{\textbf{\begin{tabular}[l]{@{}l@{}}header \\ 4\end{tabular}}} &
\multirow{2}{*}{\textbf{\begin{tabular}[l]{@{}l@{}}header \\ 5\end{tabular}}} \\
\cline{2-7}
\rowcolor{Gainsboro!60}
&
\textbf{A} &
\textbf{B} &
\textbf{\begin{tabular}[l]{@{}l@{}}C\end{tabular}}&
\textbf{D} &
\textbf{\begin{tabular}[l]{@{}l@{}}E \end{tabular}} &
\textbf{\begin{tabular}[l]{@{}l@{}}F\\ \end{tabular}}
& &
\\ \hline
\citet{Jung2014} &
aaa &
\begin{tabular}[l]{@{}l@{}}bbb\\ ccc\end{tabular} &
&
eee &
fff &
- &
\_ &
X \\ \hline
\rowcolor{Gainsboro!60}
\citet{CAO2020998} &
aaa &
\begin{tabular}[l]{@{}l@{}}bbb\\ ccc\\ ddd\\ kkk\end{tabular} &
&
eee &
fff &
ttt &
\_ &
X \\
\bottomrule
\end{tabular}%
\caption[Caption for LOF]{Comparison Table of Usage Control Policies \protect\footnotemark}
\label{tab:specification}
\end{table}
答案1
我猜你是在追求这个:
(红线表示页面布局的顶部)
tabularray
使用基于 LaTeX3 的新表格包,您的表格的 MWE 可以是:
\documentclass{article}
\usepackage{geometry}
\usepackage[table, svgnames]{xcolor}
\usepackage{tabularray}
\usepackage{natbib}
%---------------- Show page layout. Don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\begin{document}
\begin{table}[ht]
\centering
\small
\begin{tblr}{width=\linewidth,
colspec = {X[1,l,m]X[1,l,m] X[1,l,m]X[1,l,m] X[1,l,m]X[1,l,m] X[1,l,m]X[1,l,m] X[1,l,m]},
hlines, vlines,
hline{1,5}={1.2pt},
hline{3}={0.8pt},
colsep=4pt,
row{even} = {bg=Gainsboro!60},
row{1} = {bg=Gainsboro!60,font=\bfseries},
row{2} = {font=\bfseries},
rowsep=1pt,
}
header1
& \multicolumn{4}{c}{header2}
& \multicolumn{2}{c}{{header 3.1 \\ \& header 3.2}}
& \multirow{2}{=}{header 4}
& \multirow{2}{=}{header 5} \\
& A & B & C & D & E & F & & \\
\citet{Jung2014}
& aaa
& {bbb\\ ccc}
& & eee
& fff
& -
& \_
& X \\
\citet{CAO2020998}
& aaa
& {bbb\\ ccc\\ ddd\\ kkk}
& & eee
& fff
& ttt & \_
& X \\
\end{tblr}%
\caption[Caption for LOF]{Comparison Table of Usage Control Policies \protect\footnotemark}
\label{tab:specification}
\end{table}
\end{document}
答案2
环境{NiceTabular}
提供了一个命令,一个用于用交替颜色为行着色的nicematrix
内置命令。\rowcolors
该命令有一个键respect-blocks
。使用该键,将遵守(由该命令创建的)块\Block
。这意味着您将拥有交替的颜色逻辑行(而不是表格的物理行)。
\documentclass{article}
\usepackage{geometry}
\usepackage[svgnames]{xcolor}
\usepackage{nicematrix,booktabs}
\begin{document}
\begin{table}[ht]
\centering
\small
\begin{NiceTabular}
[hvlines-except-borders,cell-space-limits=1mm,color-inside]
{*{9}{X[l,m]}}
\toprule
\rowcolors{Gainsboro!60}{}[respect-blocks]
\RowStyle[nb-rows=2]{\bfseries}
\Block{2-1}{header1}
& \Block{1-4}{header2}&&&
& \Block{1-2}{header 3.1 \\ \& header 3.2}
&& \Block{2-1}{header 4}
& \Block{2-1}{header 5} \\
& A & B & C & D & E & F & & \\
?
& aaa
& \Block{}{bbb\\ ccc}
& & eee
& fff
& -
& \_
& X \\
?
& aaa
& \Block{}{bbb\\ ccc\\ ddd\\ kkk}
& & eee
& fff
& ttt & \_
& X \\
\bottomrule
\end{NiceTabular}
\caption[Caption for LOF]{Comparison Table of Usage Control Policies \protect\footnotemark}
\label{tab:specification}
\end{table}
\end{document}
然而,您需要多次编译。