我试图让表格区域的整个标题区域(\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
)- 通过使用包中的列,您将获得更好的数字格式和正确的
-
符号。S
siunitx
- 目前尚不清楚,为什么需要这么宽的第一列
- 不清楚你为什么使用
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}