将多列表格条目居中

将多列表格条目居中

我有下表:

在此处输入图片描述

我想让所有单元格条目都居中。但我做不到。我该怎么做?

我的源代码如下:

\documentclass{article}

\usepackage{array,multirow,graphicx}
\begin{document}



\newcommand{\colrot}{\rotatebox[origin = c]{90}{Variant}}
\begin{table}[h]
\begin{tabular}{cc|c|c|c|c|c|c|}
\cline{3-8}                                     &   & \multicolumn{6}{c|}{Time}                        \\ \cline{3-8} 
                                                &   & 75.5  & 76.0   & 76.5   & 77.0   & 77.5  & 78.0  \\ \hline
\multicolumn{1}{|c|}{\multirow{3}{*}{\colrot}}  & a & 69.39 & 139.95 & 172.78 & 177.83 & -     & -     \\[4mm] \cline{2-8} 
\multicolumn{1}{|c|}{}                          & b & 31.95 & 31.83  & 31.60  & 31.39  & 31.15 & 30.89 \\[4mm] \cline{2-8} 
\multicolumn{1}{|c|}{}                          & c & 48.89 & 54.59  & 55.33  & 55.76  & 56.0  & 56.14 \\[4mm] \hline
\end{tabular}
\end{table}


\end{document}

非常感谢您对改善表格质量的任何进一步建议。

答案1

我认为大多数人都不喜欢伸长脖子研究表格标题。与其将字符串“Variant”旋转 90 度,不如考虑将其放在主标题行的左上角。因此,第一个标题行将包含两个项目,“Variant”和“Time”,而第二个标题行将为“Time”变量提供六种可能性。

我还建议您删除所有垂直条和几条水平线,并使用书签包而不是\hline和,\cline以便在其余情况下获得间距良好的水平线。并且,由于表格的大部分信息由十进制数组成,因此请考虑加载希尼奇包并使用其S列类型而不是基本c(“居中”)列类型。(将少数非数字单元格材料放在花括号中以使其内容居中。)

在此处输入图片描述

\documentclass[preview]{standalone}
\usepackage{siunitx}  % for "S" column type
\usepackage{booktabs} % for \toprule, \midrule, etc
\begin{document}
\begin{table}[h]
\centering
\begin{tabular}{@{} l *{6}{S[table-format=3.2]} @{}}
\toprule
Variant & \multicolumn{6}{c@{}}{Time} \\ 
\cmidrule(l){2-7} 
& 75.5  & 76.0   & 76.5   & 77.0   & 77.5  & 78.0  \\ 
\midrule
a & 69.39 & 139.95 & 172.78 & 177.83 & {--} & {--}\\ 
b & 31.95 & 31.83  & 31.60  & 31.39  & 31.15 & 30.89 \\ 
c & 48.89 & 54.59  & 55.33  & 55.76  & 56.0  & 56.14 \\ 
\bottomrule
\end{tabular}
\end{table}
\end{document}

相关内容