各位经验丰富的朋友,
我在绘制表格的时候遇到了一个奇怪的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}