我必须为方法框中的三行第一列着色。我试过了,但仍然没有成功。
如何在 ICCV 模板中水平对齐两个表格?
代码
\begin{tabular}{l|cc}
\hline\thickhline
%\rowcolor{mygray}
\multirow{3}{*}{\cellcolor[gray]{0.9}Method} & \multicolumn{2}{c}{CIFAR-100} \\ \cline{2-3} &
\begin{tabular}[c]{@{}c@{}}\textbf{Top-1} \\ \textbf{Error(\%)} \end{tabular} & \begin{tabular}[c]{@{}c@{}}\textbf{Top-5} \\ \textbf{Error(\%)} \end{tabular}
\\
\hline \hline
Vanilla & 23.67 \\
\hspace{0.5em}{+CMAAug} & \textcolor{blue}{-}
& \textcolor{blue}{-}
\\ %\hline
\thickhline
\end{tabular}
答案1
- 您的问题不太清楚,抱歉...
- 你没有提供有关文档的任何信息,因此我决定使用
standalone
文档类 - 在您的代码片段中,您应该将多行单元格移动到第二行,然后使用负数的跨度行数,例如在下一个 MWE 中所做的那样(基于您的代码片段,但相当干净):
\documentclass[margin=3mm, varwidth]{standalone}
\usepackage[table]{xcolor}
\usepackage{boldline, makecell, multirow} % guessing ... what you should add to preamble
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}{l |cc}
\hlineB{1.25}
\cellcolor[gray]{0.9}
& \multicolumn{2}{c}{CIFAR-100} \\
\cline{2-3}
\multirow{-2}{*}{\cellcolor[gray]{0.9}{Method}}
& \bfseries\makecell{Top 1\\ Error (\%)}
& \bfseries\makecell{Top 2\\ Error (\%)} \\
\hline
Vanilla & 0.384
& \\
\quad+CMAAug & \textcolor{blue}{--}
& \textcolor{blue}{--} \\
\hlineB{1.25}
\end{tabular}
\end{table}
\end{document}
- 但是您的表格可以用更短(更干净)的代码来编写...例如使用
tabularray
包:
\documentclass[margin=3mm, varwidth]{standalone}
\usepackage{xcolor}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}
\NewTableCommand\SCfg[1]{\SetCell{fg=#1}}
\begin{document}
\begin{table}[ht]
\centering
\begin{tblr}{colspec={l | *{2}{Q[c]} },
cell{2}{2-Z} = {font=\bfseries},
}
\toprule
\SetCell[r=2]{c, bg=yellow!30} Method
& \SetCell[c=2]{c} CIFAR-100
& \\
\midrule
& {Top 1\\ Error (\%)}
& {Top 2\\ Error (\%)} \\
\midrule
Vanilla & 0.384
& \\
\quad+CMAAug & \SCfg{blue} --
& \SCfg{blue} -- \\
\bottomrule
\end{tblr}
\end{table}
\end{document}