我有以下表格。如您所见,多行中的部分文本被隐藏了。此外,第 1 行和第 2 行之间的线未显示。
任何帮助都将受到赞赏。
\documentclass[11pt]{article}
\usepackage{multirow}
\usepackage[table]{xcolor}
\begin{document}
\begin{table}
\centering
\caption{As can be seen the text in the multirow part is hidden in half by the color. Also, the cline is not displaying even with zooming in the viewer.}
\begin{tabular}{cccccccccc}
\hline
\rowcolor[gray]{0.85}
\multirow{2}{*}{X} & \multirow{2}{*}{Y} & \multicolumn{2}{c}{$(1,1)$} &
\multicolumn{2}{c}{$(10,10)$} & \multicolumn{2}{c}{$(100,100)$} & \multicolumn{2}{c}{$(1000,1000)$} \\
\cline{3-10}
\rowcolor[gray]{0.85}
& & A & Error & B & Error & A & Error & B & Error \\
\hline
0 & & & & & & & & & \\
0.1 & & & & & & & & & \\
0.2 & & & & & & & & & \\
\hline
\end{tabular}
\end{table}
\end{document}
答案1
对于文本半隐藏在单元格中的问题,您只需在最后一行multirow
插入行数为负数的文本即可。对于s 和彩色单元格,这是一个已知问题。解决方案通常是使用,它没有这个缺陷,但我更喜欢使用 的规则,它可以具有可变的厚度,在我将它们的垂直填充设置为 0 后,就不会出现白色条纹。\multirow
\cline
hhline
booktabs
另外,caption
当标题位于表格上方时,我加载了标题和表格之间适当的垂直间距:
\documentclass[11pt]{article}
\usepackage{multirow, caption, booktabs}
\usepackage[table]{xcolor}
\begin{document}
\begin{table}
\centering\setlength{\aboverulesep}{0pt}\setlength{\belowrulesep}{0pt}
\setlength{\extrarowheight}{2pt}
\caption{As can be seen the text in the multirow part is hidden in half by the color. Also, the cline is not displaying even with zooming in the viewer.}
\begin{tabular}{cccccccccc}
\toprule
\rowcolor[gray]{0.85}
\multirow{2}{*}{\cellcolor[gray]{0.85}} & & \multicolumn{2}{c}{$(1,1)$} &
\multicolumn{2}{c}{$(10,10)$} & \multicolumn{2}{c}{$(100,100)$} & \multicolumn{2}{c}{$(1000,1000)$} \\
\arrayrulecolor[gray]{0.85}\midrule\noalign{\vspace*{-\cmidrulewidth}}%
\arrayrulecolor{black}\cmidrule(lr){3-4} \cmidrule(lr){5-6}\cmidrule(lr){7-8}\cmidrule(lr){9-10}
\rowcolor[gray]{0.85}
\multirow{-2}{*}{X} & \multirow{-2}{*}{Y} & A & Error & B & Error & A & Error & B & Error \\
\midrule
0 & & & & & & & & & \\
0.1 & & & & & & & & & \\
0.2 & & & & & & & & & \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案2
{NiceTabular}
在的环境下nicematrix
,您可以直接获得预期的输出。
\documentclass[11pt]{article}
\usepackage{booktabs}
\usepackage{xcolor}
\usepackage{nicematrix}
\begin{document}
\begin{table}
\centering
\setlength{\extrarowheight}{2pt}
\begin{NiceTabular}{cc*{4}{wc{5mm}wc{10mm}}}[code-before = \rowcolor[gray]{0.85}{1,2}]
\toprule
\Block{2-1}{X}&\Block{2-1}{Y} &\Block{1-2}{$(1,1)$} && \Block{1-2}{$(10,10)$} && \Block{1-2}{$(100,100)$} && \Block{1-2}{$(1000,1000)$} & \\
\cmidrule(lr){3-4} \cmidrule(lr){5-6}\cmidrule(lr){7-8}\cmidrule(lr){9-10}
& & A & Error & B & Error & A & Error & B & Error \\
\midrule
0 \\
0.1 \\
0.2 \\
\bottomrule
\end{NiceTabular}
\end{table}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。