如何在 threeparttable 中使整个标题获得相同的背景颜色

如何在 threeparttable 中使整个标题获得相同的背景颜色

我试图让表格区域的整个标题区域(\toprule 和长 \midrule 之间的两行)获得相同的背景颜色(没有任何空白),但似乎不起作用。有什么办法可以解决这个问题吗?有没有办法设置标尺颜色?

我尝试添加\rowcolor{lightgray}两次,但似乎没有任何效果。

我目前拥有的代码(MWE):

\documentclass{article}


\usepackage[table]{xcolor}
\newcolumntype{s}{>{\columncolor[HTML]{AAACED}} p{3cm}}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{threeparttable}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\begin{document}  

\begin{table}[ht]
\centering
\begin{threeparttable}
\caption{dsfsdfsdfsdfdsfdfsdsf}
\label{tab:strnedbhendbidrmestnedb74000117}
\begin{tabular}{@{}p{0,40\textwidth}*{4}{L{\dimexpr0,18\textwidth-2\tabcolsep\relax}}@{}}
\toprule
 & \rowcolor{lightgray} \multicolumn{2}{c}{\textbf \Longstack{dsfdfsdf}}  &
 \rowcolor{lightgray} \multicolumn{2}{c}{\textbf \Longstack{sdfsdf}}  \\
\cmidrule(l){2-3} \cmidrule(l){4-5}
$fsdfsdf$ & $ss_{d}$  &$ $  $bf_{tot}$ & $rr_{dg}$  & $  $ $gg_{tot} $ \\
\midrule
$Q_{rr} $ & 6,7 & 24 & 6,7 & 3  \\
jj & 6,7 & 14 & 2,2 & 3 \\
$  r_{g}  $ & 6,7 & 26 & -3,0 & -4 \\
$   y_{tw}$ & 433,4 & 37 & 433,1 & 98 \\
\bottomrule
\end{tabular}
\end{threeparttable}
\end{table}
    \end{document} 

目前看来情况如下:

在此处输入图片描述

更新

根据 mhtsort 的评论,我尝试了以下操作:

\toprule
\rowcolor{lightgray} &  \multicolumn{2}{c}{\textbf \Longstack{dsfdfsdf}} \rowcolor{lightgray} &
\multicolumn{2}{c}{\textbf \Longstack{sdfsdf}}  \\
\cmidrule(l){2-3} \cmidrule(l){4-5}

但它的结果是,这并不能解决问题:

在此处输入图片描述

更新2:根据 Zarko 的回答进行了调整。我还添加了另一个,\rowcolor{lightgray}以尝试填充\toprule长两行之间的所有区域\midrule

\begin{tabularx}{\linewidth}{X*{2}{S[table-format=3.1]S[table-format=2]} }% % 
\toprule
 \rowcolor{lightgray}
 &   \multicolumn{2}{c}{\textbf{dsfdfsdf}}
 &   \multicolumn{2}{c}{\textbf{sdfsdf}}                     \\
 \cmidrule(l){2-3}
 \cmidrule(l){4-5}
 \rowcolor{lightgray} 
$fsdfsdf$   & {$ss_{d}$}    & {$bf_{tot}$}  & {$rr_{dg}$}   & {$gg_{tot}$}  \\ \midrule

\cmidrule但是,从这里的结果可以看出,\toprule和附近有一些空白\midrule(这里的空白是指灰色背景和\cmidrule\toprule和之间的白色区域\midrule):

在此处输入图片描述

更新 3:根据 Zarko 的上次更新,现在看起来好多了。对于白色文物,可能没有解决方案。

在此处输入图片描述

答案1

你的表格有很多问题:

  • 表格的宽度大于文本宽度 (0.4\textwidth + 4*0.18\textwidth=1,12\textwidth)
  • 什么是\Longstack
  • \rowcolor不能在细胞内使用(因为这是\cellcolor
  • 通过使用包中的列,您将获得更好的数字格式和正确的-符号。Ssiunitx
  • 目前尚不清楚,为什么需要这么宽的第一列
  • 不清楚你为什么使用threeparttable

对您的代码进行一些更改后我获得:

在此处输入图片描述

母语:

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{threeparttable}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}   % not used
\newcolumntype{s}{>{\columncolor[HTML]{AAACED}} p{3cm}}     % not used
\usepackage{siunitx}    % <--- added

\begin{document}
    \begin{table}[ht]
\centering
\sisetup{table-column-width=0.15\linewidth,
         output-decimal-marker={,}
         }
\begin{threeparttable}
\caption{dsfsdfsdfsdfdsfdfsdsf}
\label{tab:strnedbhendbidrmestnedb74000117}
\begin{tabularx}{\linewidth}{X*{2}{S[table-format=3.1]S[table-format=2]} }% % <--- changed
    \toprule
    \rowcolor{lightgray}
            &   \multicolumn{2}{c}{\textbf{dsfdfsdf}}
                &   \multicolumn{2}{c}{\textbf{sdfsdf}}                     \\
    \cmidrule(l){2-3}
    \cmidrule(l){4-5}
$fsdfsdf$   & {$ss_{d}$}    & {$bf_{tot}$}  & {$rr_{dg}$}   & {$gg_{tot}$}  \\
    \midrule
$Q_{rr} $   &   6,7         & 24            &   6,7         &  3            \\
jj          &   6,7         & 14            &   2,2         &  3            \\
$  r_{g}  $ &   6,7         & 26            &  -3,0         & -4            \\
$   y_{tw}$ & 433,4         & 37            & 433,1         & 98            \\
    \bottomrule
\end{tabularx}
\end{threeparttable}
    \end{table}
\end{document}

已编辑(1):

  • 不清楚你所说的白线是什么意思:
    • 规则和彩色行之间的空白是什么?这是由 的规则特征引起的booktabs(可以使用 删除它\belowrulesep=0pt \aboverulesep=0pt,请参阅下面的 mwe)。
    • 或者在某些 PDF 预览器中可以看到非常细的垂直线?它们只是观看者的伪像......

已编辑(2):

  • 编辑问题后现在清楚问题是什么了...
  • mwe,它解决了你的问题(使用肮脏的黑客,解决方案不是通用的),它是:

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{threeparttable}
\usepackage{siunitx}            % <--- added

\begin{document}
    \begin{table}[ht]
\centering
\sisetup{table-column-width=0.15\linewidth,
         output-decimal-marker={,}
         }
\renewcommand\arraystretch{1.2} % <--- added
\belowrulesep=0pt               % <--- added
\aboverulesep=0pt               % <--- added
\begin{threeparttable}
\caption{dsfsdfsdfsdfdsfdfsdsf}
\label{tab:strnedbhendbidrmestnedb74000117}
\begin{tabularx}{\linewidth}{X
                        *{2}{S[table-format=3.1]S[table-format=2]} }% % <--- changed
    \toprule
    \rowcolor{lightgray}
            &   \multicolumn{2}{c}{\textbf{dsfdfsdf}}
                &   \multicolumn{2}{c}{\textbf{sdfsdf}}                     \\[-\arrayrulewidth] % <--- move up the next row for line width 
    \cmidrule(l){2-3}
    \cmidrule(l){4-5}
$fsdfsdf$   & {$ss_{d}$}    & {$bf_{tot}$}  & {$rr_{dg}$}   & {$gg_{tot}$}  \\
    \midrule
$Q_{rr} $   &   6,7         & 24            &   6,7         &  3            \\
jj          &   6,7         & 14            &   2,2         &  3            \\
$  r_{g}  $ &   6,7         & 26            &  -3,0         & -4            \\
$   y_{tw}$ & 433,4         & 37            & 433,1         & 98            \\
    \bottomrule
\end{tabularx}
\end{threeparttable}
    \end{table}
\end{document}

在此处输入图片描述

在此处输入图片描述

相关内容