我对表格中的颜色和线条有问题。我有以下代码:
\usepackage{multirow}
\usepackage{colortbl}
\begin{tabular}{ll|c|c|c|c|c|c|} \cline{3-8} \cline{3-8}
& & \multicolumn{3}{c|}{\cellcolor{gray!25} Cramér von Mises} & \multicolumn{3}{c|}{\cellcolor{gray!25} Anderson-Darling} \\ \cline{3-8} \cline{3-8}
& & \cellcolor{gray!25}$\alpha=$0.1 & \cellcolor{gray!25}$\alpha=$0.05 & \cellcolor{gray!25}$\alpha=$0.01 & \cellcolor{gray!25}$\alpha=$0.1 & \cellcolor{gray!25}$\alpha=$0.05 & \cellcolor{gray!25}$\alpha=$0.01 \\ \hline
\multicolumn{1}{|c}{} & \cellcolor{gray!25}n=25 & 0.106 & 0.063 & 0.015 & 0.107 & 0.052 & 0.012 \\
\multicolumn{1}{|c}{} & \cellcolor{gray!25}n=50 & 0.107 & 0.043 & 0.010 & 0.103 & 0.054 & 0.010 \\
\multicolumn{1}{|c}{\multirow{3}{0.3cm}[7mm]{\begin{sideways}$\qquad$ $Exp(1)$ \end{sideways}}}&\cellcolor{gray!25} n=100 & 0.104 & 0.065 & 0.017 & 0.110 & 0.055 & 0.015 \\ \hline
\multicolumn{1}{|c}{} & \cellcolor{gray!25}n=25 & 0.113 & 0.055 & 0.014 & 0.097 & 0.058 & 0.016 \\
\multicolumn{1}{|c}{} & \cellcolor{gray!25}n=50 & 0.109 & 0.058 & 0.014 & 0.098 & 0.056 & 0.018 \\
\multicolumn{1}{|c}{ \multirow{3}{0.3cm}[7mm]{\begin{sideways}$\qquad$ $Exp(2)$ \end{sideways}}} & \cellcolor{gray!25}n=100 & 0.110 & 0.048 & 0.011 & 0.108 & 0.044 & 0.009 \\ \hline
\end{tabular}
我需要为多行单元格着色,而我唯一能想到的就是为它的下半部分着色。
我的另一个问题是,当我给单元格着色时,我无法正确看到表格的规则。
我希望有一个人可以帮助我。
谢谢!!!!
答案1
始终提供完整但最少的文档。您的文档缺少\documentclass
以及\begin
文档\end
。它还缺少xcolor
(对于颜色名称,如gray!25
)和rotating
(对于sideways
环境)的加载。要为整个多行着色,您需要为其所有三个单元格着色。此外,您对的使用\multirow
是不正确的。如果要将文本放入其上方的单元格中,则数字应为负数。如果这样做,则不需要可选的调整[7mm]
或 s \qquad
。我还做了一些其他事情,我认为可以使结果更好:退出Exp
数学模式,将后面的数字\alpha=
放入数学模式,删除一些错误的空格,并删除大多数垂直线:
\documentclass{article}
\usepackage{multirow,xcolor,colortbl,rotating}
\begin{document}
\noindent\begin{tabular}{ll|cccccc|} \cline{3-8} \cline{3-8}
&&\multicolumn{3}{c} {\cellcolor{gray!25} Cram\'er von Mises}&
\multicolumn{3}{c|}{\cellcolor{gray!25} Anderson-Darling}\\
\cline{3-8} \cline{3-8}
&&\cellcolor{gray!25}$\alpha=0.1 $ &\cellcolor{gray!25}$\alpha=0.05$&
\cellcolor{gray!25}$\alpha=0.01$ &\cellcolor{gray!25}$\alpha=0.1 $&
\cellcolor{gray!25}$\alpha=0.05$ &\cellcolor{gray!25}$\alpha=0.01$\\
\hline
\multicolumn{1}{|c}{\cellcolor{gray!25}} & \cellcolor{gray!25}n=25 & 0.106 &
0.063 & 0.015 & 0.107 & 0.052 & 0.012 \\
\multicolumn{1}{|c}{\cellcolor{gray!25}} & \cellcolor{gray!25}n=50 & 0.107 &
0.043 & 0.010 & 0.103 & 0.054 & 0.010 \\
\multicolumn{1}{|c}{\cellcolor{gray!25}%
\multirow{-3}{*}{\begin{sideways}Exp$(1)$\end{sideways}}}&
\cellcolor{gray!25}n=100 & 0.104 & 0.065 & 0.017 & 0.110 & 0.055 & 0.015 \\
\hline
\multicolumn{1}{|c}{\cellcolor{gray!25}} & \cellcolor{gray!25}n=25 & 0.113 &
0.055 & 0.014 & 0.097 & 0.058 & 0.016 \\
\multicolumn{1}{|c}{\cellcolor{gray!25}} & \cellcolor{gray!25}n=50 & 0.109 &
0.058 & 0.014 & 0.098 & 0.056 & 0.018 \\
\multicolumn{1}{|c}{\cellcolor{gray!25}%
\multirow{-3}{*}{\begin{sideways}Exp$(2)$\end{sideways}}}&
\cellcolor{gray!25}n=100 & 0.110 & 0.048 & 0.011 & 0.108 & 0.044 & 0.009 \\
\hline
\end{tabular}
\end{document}
(我还把代码行拆开了,这样读者就不必滚动三个屏幕才能看到整个代码。)
答案2
我认为用于处理多行多列的 ConTeXt 接口更好,因为它提供了内容和表示的清晰分离。例如,无需任何样式,上面的表格可以排版为(我只是复制粘贴了 Exp(2) 部分的数据)。
\starttext
\bTABLE
\bTR
\bTD[nc=2] \eTD
\bTD[nc=3] Cramér von Mises \eTD
\bTD[nc=3] Anderson-Darling \eTD
\eTR
\bTR
\bTD[nc=2] \eTD
\bTD $α = 0.1$ \eTD
\bTD $α = 0.05$ \eTD
\bTD $α = 0.01$ \eTD
\bTD $α = 0.1$ \eTD
\bTD $α = 0.05$ \eTD
\bTD $α = 0.01$ \eTD
\eTD
\bTR
\bTD[nr=3] \rotate{Exp(1)} \eTD
\bTD $n = 25$ \eTD
\bTD 0.106 \eTD
\bTD 0.063 \eTD
\bTD 0.015 \eTD
\bTD 0.107 \eTD
\bTD 0.052 \eTD
\bTD 0.012 \eTD
\eTR
\bTR
\bTD $n = 50$ \eTD
\bTD 0.107 \eTD
\bTD 0.043 \eTD
\bTD 0.010 \eTD
\bTD 0.103 \eTD
\bTD 0.054 \eTD
\bTD 0.010 \eTD
\eTR
\bTR
\bTD $n = 100$ \eTD
\bTD 0.10R \eTD
\bTD 0.065 \eTD
\bTD 0.017 \eTD
\bTD 0.110 \eTD
\bTD 0.055 \eTD
\bTD 0.015 \eTD
\eTR
\bTR
\bTD[nr=3] \rotate{Exp(2)} \eTD
\bTD $n = 25$ \eTD
\bTD 0.106 \eTD
\bTD 0.063 \eTD
\bTD 0.015 \eTD
\bTD 0.107 \eTD
\bTD 0.052 \eTD
\bTD 0.012 \eTD
\eTR
\bTR
\bTD $n = 50$ \eTD
\bTD 0.107 \eTD
\bTD 0.043 \eTD
\bTD 0.010 \eTD
\bTD 0.103 \eTD
\bTD 0.054 \eTD
\bTD 0.010 \eTD
\eTR
\bTR
\bTD $n = 100$ \eTD
\bTD 0.10R \eTD
\bTD 0.065 \eTD
\bTD 0.017 \eTD
\bTD 0.110 \eTD
\bTD 0.055 \eTD
\bTD 0.015 \eTD
\eTR
\eTABLE
\stoptext
这使
现在,让我们逐一添加样式。首先,创建一个设置来添加框架:
\startsetups table:frame
\setupTABLE[frame=off]
\setupTABLE[row][1,3,6][topframe=on]
\setupTABLE[row][last][bottomframe=on]
\setupTABLE[column][1,3][leftframe=on]
\setupTABLE[column][last][rightframe=on]
% Correct for spanning cells.
\setupTABLE[6][2][rightframe=on]
\setupTABLE[1][6][bottomframe=on]
% Correct for missing top left cell
\setupTABLE[1][1,2][topframe=off, leftframe=off]
\stopsetups
并且使用就是使用
\bTABLE[setups={table:frame}
这使:
接下来,通过创建另一个设置将背景添加到顶行和左列
\startsetups table:background
\setupTABLE[background=color]
\setupTABLE[row][1,2][backgroundcolor=gray]
\setupTABLE[column][1,2][backgroundcolor=gray]
% Correct for missing top left cell
\setupTABLE[1,2][1,2][background=]
\stopsetups
并使用:
\bTABLE[setups={table:frame, table:background}]
这使:
最后,通过创建新的设置来纠正对齐和间距:
\startsetups table:style
% Middle align all data columns
\setupTABLE[align={middle,lohi}]
% ... except the 2nd column
\setupTABLE[column][5][align=flushleft]
% Add spacing
\setupTABLE[loffset=0.25em, roffset=0.25em]
\stopsetups
并使用:
\bTABLE[setups={table:frame, table:background, table:style}]
这使:
请注意,该代码比 LaTeX 更具可读性,并且将来更改样式也相对容易。
答案3
{NiceTabular}
以下是使用构建该表的一种方法nicematrix
。该环境类似于经典环境{tabular}
(由 提供array
),但增加了新功能。
具体来说,当使用 键时corners
,空角将由 自动计算nicematrix
。然后绘制规则的命令(例如和\Hline
提供nicematrix
的类似\hline
)和颜色单元会考虑到这些角。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{center}
\begin{NiceTabular}{|ll|cccccc|}[corners]
\CodeBefore
\rowcolor{gray!25}{1,2}
\columncolor{gray!25}{1,2}
\Body
\Hline
&& \Block{1-3}{Cramér von Mises}&&& \Block{1-3}{Anderson-Darling} \\
&&$\alpha=0.1 $ &$\alpha=0.05$& $\alpha=0.01$ &$\alpha=0.1 $& $\alpha=0.05$ &$\alpha=0.01$ \\
\Hline
\Block{3-1}{\rotate Exp$(1)$}
& n=25 & 0.106 & 0.063 & 0.015 & 0.107 & 0.052 & 0.012 \\
& n=50 & 0.107 & 0.043 & 0.010 & 0.103 & 0.054 & 0.010 \\
& n=100 & 0.104 & 0.065 & 0.017 & 0.110 & 0.055 & 0.015 \\
\Hline
\Block{3-1}{\rotate Exp$(2)$}
& n=25 & 0.113 & 0.055 & 0.014 & 0.097 & 0.058 & 0.016 \\
& n=50 & 0.109 & 0.058 & 0.014 & 0.098 & 0.056 & 0.018 \\
& n=100 & 0.110 & 0.048 & 0.011 & 0.108 & 0.044 & 0.009 \\
\Hline
\end{NiceTabular}
\end{center}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。
无论您使用哪种 PDF 查看器,规则似乎都不会消失在彩色面板下。