所以我有这个代码:
\begin{center}
\footnotesize
\begin{tabular}{| c | c c c |}
\hline
\multirow{3}{*}{Equipment acquired at start of year} & \multicolumn{3}{c|}{Replacement cost (\$) for given years}\\
\cline{2-4}
& 1 & 2 & 3\\
\hline
1 & 4000 & \multicolumn{1}{|c|}{5400} & 9800\\
2 & 4300 & \multicolumn{1}{|c|}{6200} & 8700\\
3 & 4800 & \multicolumn{1}{|c|}{7100} & -\\
4 & 4900 & \multicolumn{1}{|c|}{-} & -\\
\hline
\end{tabular}
\end{center}
生成以下表格:
我想要的是第 3 列的宽度与第 1 列和第 2 列一样均匀。我还希望“年初购置的设备”位于两个多行之间的中央。
有任何想法吗?
答案1
这里有两个选项,都使用booktabs
tabular
对于的构造,booktabs
建议避免使用垂直规则,因为 的柱状结构tabular
必然会导致列内元素的水平对齐,并通过 提供视觉分离空格列之间。
\documentclass{article}
\usepackage{makecell,booktabs,array}
\begin{document}
% This construction does not require the array package
\begin{tabular}{ *{4}{c} }
\toprule
& \multicolumn{3}{c}{\makecell[c]{Replacement cost \\ for given years (\$)}} \\
\cmidrule{2-4}
\smash{\makecell[cb]{Equipment acquired \\ at start of year}} & 1 & 2 & 3 \\
\midrule
1 & 4000 & 5400 & 9800 \\
2 & 4300 & 6200 & 8700 \\
3 & 4800 & 7100 & -- \\
4 & 4900 & -- & -- \\
\bottomrule
\end{tabular}
\bigskip
% This construction requires the array package
\begin{tabular}{ c *{3}{>{\centering\arraybackslash}p{1cm}} }
\toprule
& \multicolumn{3}{c}{\makecell[c]{Replacement cost \\ for given years (\$)}} \\
\cmidrule{2-4}
\smash{\makecell[cb]{Equipment acquired \\ at start of year}} & 1 & 2 & 3 \\
\midrule
1 & 4000 & 5400 & 9800 \\
2 & 4300 & 6200 & 8700 \\
3 & 4800 & 7100 & -- \\
4 & 4900 & -- & -- \\
\bottomrule
\end{tabular}
\end{document}
在第一个选项中,第 2-4 列的标题会自然堆叠以适应最终的宽度。在第二个选项中,1cm
为第 2-4 列指定固定的列宽。您可以根据需要调整此宽度,具体取决于您希望将这些列拉伸多少。