複数列の表エントリを中央揃えにする

複数列の表エントリを中央揃えにする

以下の表があります:

ここに画像の説明を入力してください

すべてのセルエントリを中央揃えにしたいのですが、うまくいきません。どうすればいいでしょうか?

私のソースコードは以下の通りです:

\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」の 2 つの項目で構成され、2 番目のヘッダー行は「Time」変数の 6 つの可能性を提供します。

また、縦線と横線をすべて削除し、線描画マクロを使用することをお勧めします。ブックタブパッケージの代わりに\hline\cline残りのケースでは水平線が十分に間隔を空けられるようにします。また、表の情報のほとんどが10進数で構成されているため、siunitxSパッケージを作成し、基本的な (「中央揃え」) 列タイプの代わりにその列タイプを使用します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}

関連情報