表格对齐和宽度问题

表格对齐和宽度问题

所以我有这个代码:

\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

这里有两个选项,都使用booktabstabular对于的构造,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 列指定固定的列宽。您可以根据需要调整此宽度,具体取决于您希望将这些列拉伸多少。

相关内容