以下の表があります:
すべてのセルエントリを中央揃えにしたいのですが、うまくいきません。どうすればいいでしょうか?
私のソースコードは以下の通りです:
\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}