我有下表:
我想让所有单元格条目都居中。但我做不到。我该怎么做?
我的源代码如下:
\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}