我想使用 colorbox 在表格后面设置浅灰色。以下这解决方案,我创建了以下 MWE:
\begin{table}[H]
\renewcommand{\arraystretch}{1.5}
\centering
\begingroup\setlength{\fboxsep}{0pt}
\colorbox{gray!50}{%
\begin{tabular}{ | c | c | c | c | c | c | }
\arrayrulecolor{black} %changes color of hline
\hline
& & \multicolumn{2}{c|}{\textbf{test test}} & \multicolumn{2}{c|}{\textbf{test test}} \\
\hhline{~|~|-|-|-|-|}
\multirow{-2}{*}{\textbf{\shortstack{teeest\\ teeeeeeest}}} & \multirow{-2}{*}{{\shortstack{\textbf{test}\\ \textbf{teeeest}\\(sec)}}} & (mW) & (hrs/days) & (mW) & (hrs/days) \\[0.6pt]
\hline
\textbf{test 1} & 8 & 16 & 64 & 2 & 2\\
\textbf{test 2} & 12 & 24 & 96 & 2 & 2\\
\textbf{test 3} & 14.4 & 28.8 & 115.2 & 2 & 2\\
\textbf{test 4} & 20 & 40 & 160 & 2 & 2 \\
\textbf{test 5} & 20 & 40 & 160 & 2 & 2\\
\hline
\end{tabular}
}\endgroup
\caption{test teest}
\end{table}
输出如下:
如您所见,背景并不完全位于表格后面。事实上,添加背景后,表格似乎也没有居中,但颜色框似乎居中。这是为什么呢?
答案1
%
在 之后添加\end{tabular}
。我删除了 begingroup \endgroup
在表格等环境中不必要的 ,并简化了表格前言。
\documentclass{article}
\usepackage[svgnames, table]{xcolor}
\usepackage{float, hhline, multirow}
\begin{document}
\begin{table}[H]
\renewcommand{\arraystretch}{1.5}
\centering
\setlength{\fboxsep}{0pt}
\colorbox{gray!50}{%
\begin{tabular}{|*{6}{c |}}
\arrayrulecolor{black} %changes color of hline
\hline
& & \multicolumn{2}{c|}{\textbf{test test}} & \multicolumn{2}{c|}{\textbf{test test}} \\
\hhline{~|~|-|-|-|-|}
\multirow{-2}{*}{\textbf{\shortstack{teeest\\ teeeeeeest}}} & \multirow{-2}{*}{{\shortstack{\textbf{test}\\ \textbf{teeeest}\\(sec)}}} & (mW) & (hrs/days) & (mW) & (hrs/days) \\[0.6pt]
\hline
\textbf{test 1} & 8 & 16 & 64 & 2 & 2\\
\textbf{test 2} & 12 & 24 & 96 & 2 & 2\\
\textbf{test 3} & 14.4 & 28.8 & 115.2 & 2 & 2\\
\textbf{test 4} & 20 & 40 & 160 & 2 & 2 \\
\textbf{test 5} & 20 & 40 & 160 & 2 & 2\\
\hline
\end{tabular}%
}
\end{table}
\end{document}
答案2
这是使用 来制作该表的一种{NiceTabular}
方法nicematrix
。
\documentclass{article}
\usepackage[svgnames]{xcolor}
\usepackage{float}
\usepackage{nicematrix}
\begin{document}
\begin{table}[H]
\renewcommand{\arraystretch}{1.5}
\centering
\begin{NiceTabular}{>{\bfseries}cccccc}[hvlines]
\CodeBefore
\arraycolor{gray!50}
\Body
\Block{2-1}{teeest\\ teeeeeeest} &
\Block{2-1}<\bfseries>{test\\ teeeest\\(sec)} &
\Block{1-2}{\bfseries test test} & &
\Block{1-2}{\bfseries test test} \\
& & (mW) & (hrs/days) & (mW) & (hrs/days) \\[0.6pt]
test 1 & 8 & 16 & 64 & 2 & 2\\
test 2 & 12 & 24 & 96 & 2 & 2\\
test 3 & 14.4 & 28.8 & 115.2 & 2 & 2\\
test 4 & 20 & 40 & 160 & 2 & 2 \\
test 5 & 20 & 40 & 160 & 2 & 2\\
\end{NiceTabular}%
\end{table}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。