无法使列均匀分布。原因是什么?

无法使列均匀分布。原因是什么?

各位经验丰富的朋友,

我在绘制表格的时候遇到了一个奇怪的bug,如图所示,我希望所有列4,5,6,1,2,3均匀分布,但是,的宽度6总是大于其他的。请问这个bug是怎么回事,如何解决?谢谢!

在此处输入图片描述

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[table]{xcolor}
\usepackage{array}
\usepackage{multirow}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{tabularx}

\begin{document}

\setlength{\heavyrulewidth}{1.2pt}
\setlength{\abovetopsep}{2pt}
\setlength\extrarowheight{2pt}


\begin{table}[htbp!]
\centering
\scalebox{1}{

 \begin{tabular}{c  c  c  c @{\extracolsep{0.2cm}} c  c  c} 
 \toprule
 \multirow{2}{4em}{} & \multicolumn{3}{c}{Cubic Height Height} & \multicolumn{3}{c}{Width Width}\\[1ex]
 
 \cmidrule{2-4}
 \cmidrule{5-7}
 
 Model & 4 & 5 & 6 & 1 & 2 & 3 \\ [1ex]
 
 \midrule
 A & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 
 B & 0 & 0 & 0 & 0 & 0 & 0 \\
 
 C & 0 & 0 & 0 & 0 & 0 & 0 \\
 
 \bottomrule
 \hline
\end{tabular}}

\caption{Comparison}
\label{table 2}
\end{table}


\end{document}

(我也尝试过\begin{tabular}{p{3.2cm} p{0.8cm} p{0.8cm} p{0.8cm} @{\extracolsep{0.15cm}} p{0.8cm} p{0.8cm} p{0.8cm}},但是没用。)

答案1

您需要设置固定列宽——c列类型没有预先固定的宽度。由于您正在使用该array包,因此您可以使用其列类型,宽度为 8 毫米或更大,以实现此目的。(附言:我通过反复试验w想出了这个方法。)8mm

在此处输入图片描述

\documentclass{article}
%\usepackage[utf8]{inputenc} % that's the default nowadays
\usepackage{array,booktabs}

\begin{document}
\begin{table}[htbp!]
\centering
\begin{tabular}{l *{6}{w{c}{8mm}} }
\toprule
& \multicolumn{3}{c}{Cubic Height Height} 
& \multicolumn{3}{c}{Width Width}\\
\cmidrule(lr){2-4} \cmidrule(l){5-7}
 Model & 4 & 5 & 6 & 1 & 2 & 3 \\
\midrule
 A & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 B & 0 & 0 & 0 & 0 & 0 & 0 \\
 C & 0 & 0 & 0 & 0 & 0 & 0 \\ 
\bottomrule
\end{tabular}
\caption{Comparison}\label{table 2}
\end{table}
\end{document}

相关内容