読みやすい LaTeX の表を作る
読みやすい列、単位、罫線、キャプション、ラベルを使って研究データを示します。
このページの内容
読者が正確な値を確認したり比較したりする必要がある場合は、表を使います。よい研究用の表では、測定対象を明記し、見出しに単位を入れ、比較する値の位置を揃えます。また、縦罫線や極端に小さい文字を使わなくても読みやすくします。
小さな結果表を作る#
tabular の列指定で配置を決めます。l は左揃え、c は中央揃え、r は右揃えです。& でセルを区切り、\\ で行を終えます。すべての行でセルの数を同じにする必要があります。
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{center}
\begin{tabular}{lrr}
\toprule
Method & Accuracy & Time (s) \\
\midrule
Baseline & 0.82 & 14.2 \\
Proposed & 0.89 & 11.7 \\
\bottomrule
\end{tabular}
\end{center}
\end{document}測定値は説明用の例で、実験の証拠ではありません。booktabs は控えめな横罫線を提供します。各セルで秒などの単位を繰り返さず、見出しに記載してください。精度そのものに意味がある場合を除き、同じ列では桁数を揃えます。
キャプションと参照を加える#
tabular は表本体を組み、table は表の配置、番号、キャプションを LaTeX に任せるために使います。表番号をラベルに割り当てるため、ラベルはキャプションの後に置きます。
Table~\ref{tab:runtime} compares the two methods.
\begin{table}[htbp]
\centering
\caption{Validation accuracy and mean inference time.}
\label{tab:runtime}
\begin{tabular}{lrr}
\toprule
Method & Accuracy & Time (s) \\
\midrule
Baseline & 0.82 & 14.2 \\
Proposed & 0.89 & 11.7 \\
\bottomrule
\end{tabular}
\end{table}前後の本文では、すべてのセルを読み上げるのではなく、結論を述べます。キャプションには、値を理解するために必要な母集団、条件、統計量を明記します。
数値を揃え、文章を折り返す#
投稿先のテンプレートで許可されている場合、十進小数の位置合わせと単位の処理には siunitx を使います。S 列では小数点の位置が揃い、書式も一貫します。説明文には、固定幅の p{...} 列または tabularx を使い、長い文章を l 列へ無理に収めないようにします。
次の完全な例では、注記の列が利用可能な幅を使い、測定値は小数点の位置で揃います。
\documentclass{article}
\usepackage{booktabs,siunitx,tabularx,threeparttable}
\begin{document}
\begin{table}[htbp]
\centering
\begin{threeparttable}
\caption{Validation results across two calibration methods.}
\label{tab:calibration}
\begin{tabularx}{\linewidth}{
>{\raggedright\arraybackslash}X
S[table-format=1.2(2)]
S[table-format=2.1]
}
\toprule
Method and evaluation condition & {Accuracy} & {Time (s)} \\
\midrule
Baseline with default threshold & 0.82(3) & 14.2 \\
Proposed method after calibration & 0.89(2) & 11.7 \\
\bottomrule
\end{tabularx}
\begin{tablenotes}\small
\item Values in parentheses are bootstrap standard errors.
\end{tablenotes}
\end{threeparttable}
\end{table}
\end{document}コンパイルし、2つの数値列が揃っていること、文章が余白を越えずに折り返されること、表1を Table~\ref{tab:calibration} で参照できることを確認します。数値の見出しを波括弧で囲むと、siunitx がその単語を数値として解析しません。1.2(2) という書式は、小数点以下2桁と括弧付きの不確かさを確保します。報告する精度に合わせて変更してください。ここで 0.82(3) は、値が 0.82、不確かさが 0.03 であることを示し、0.3 ではありません。例の注記と同様に、不確かさが何を表すか明記してください。threeparttable を使うと、その注記を本文に埋めず、表と一緒に保持できます。
発展的な配置として、複数ページにわたる表が必要な場合は longtable を使います。外側の table フロートの代わりになり、見出しを明示的に繰り返します。
\usepackage{booktabs,longtable}
% in the document body
\begin{longtable}{lr}
\caption{Measurements by specimen.}\label{tab:specimens} \\
\toprule
Specimen & Response (mV) \\
\midrule
\endfirsthead
\toprule
Specimen & Response (mV) \\
\midrule
\endhead
S01 & 12.4 \\
S02 & 11.9 \\
% continue with the remaining rows
\bottomrule
\end{longtable}投稿先のテンプレートに表のスタイルが定義されている場合は、それに従います。見出しの階層上どうしても必要になるまでは、セルを結合しないでください。単純な行と列、実際の見出しセル、論理的な読み順の方が解釈しやすく、アクセシブルな出力としてタグ付けしやすくなります。見た目が整っているだけでは、アクセシブルな読み順になっているとは限りません。
収まらない表を修正する#
最初から \resizebox や極端に小さいフォントで表全体を縮めないでください。まず、次の変更を試します。
- 重複する語を削り、詳細をキャプションまたは注記へ移します。
- 単位を見出しに入れ、繰り返されるラベルを短くします。
- 文章には折り返せる列を、数値には小数点で揃える列を使います。
- 関連のない測定値は別の表に分けます。
- 横向きまたは2段組みをまたぐ表は、投稿先が許可する場合に限って使います。
コンパイルし、通常の閲覧サイズで PDF を確認します。内容が余白を越えず、見出しから各値の意味が分かり、前後の本文から表番号で参照できれば成功です。続いてフロートとキャプションを学ぶか、横に広い結果を overfull box の解決方法で診断してください。
