使用颜色框的表格颜色背景

使用颜色框的表格颜色背景

我想使用 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 节点)。

上述代码的输出

相关内容