Yamamoto's Laboratory
表紙
表組
数式
数式: amsmath
公開情報
古い情報

はじめに

なぜ,LaTeXの表を使うか

LaTeX の表は Microsoft Word に比べ,柔軟性に富み,美しく仕上がります.作成に要する時間も短時間です.柔軟性に富む—というのは,ふたつの意味があります.(1) 表のデータと区切りがテキストなので外部データの取り込みが容易,(2) 表のスタイルが自在—ということです.Excel のデータさえも,簡単に取り込めます.また,自分でプログラムを書く場合は,LaTeX フォーマットで表を出力すると良いでしょう.多くのページから構成されるレポートや論文の場合,表のスタイルは揃えなくはなりません.LaTeX では自動的に揃えられます.ばからしいことに,Word で表を作成する場合,表の内容の作成よりも,スタイルの修正に多くの時間がかかります.私は,「クソ Word !!」と叫ぶことが多々あります.

表の例

実際の LaTeX の表組の例 (ソース) を以下に示します.一見,難しそうに見えますが,慣れるととても簡単です.いつも同じパターンで,表を作ることができます.表の内容はテキストで表現されるので,簡単かつ短時間で入力ができます.

\documentclass[10pt,a4paper]{jarticle}
\usepackage[dvipdfmx]{graphicx}
\pagestyle{empty}    % ページ番号を出力しない
%
% ----- ドキュメントの開始 -----
\begin{document}
光速度の測定は,物理学の発展に大きく寄与しました.表\ref{table:SpeedOfLight}
に,その歴史を簡単にまとめます.
%
% ----- 表:物理定数 ------
\begin{table}[h]
 \caption{光速度の測定の歴史}
 \label{table:SpeedOfLight}
 \centering
  \begin{tabular}{clll}
   \hline
   西暦 & 測定者 & 測定方法 & 測定結果 \\
    & & & $\times 10^8$ [m/sec] \\
   \hline \hline
   1638 & Galileo & 二人が離れてランプの光を見る & (音速10倍以上) \\
   1675 & Roemer & 木製の衛星の観測から & 2 \\
   1728 & Bradley & 星の収差から & 3.01 \\
   1849 & Fizeau & 高速に回転する歯車を通過する光を見る & 3.133 \\
   1862 & Foucault & 高速に回転する鏡の光の角度変化 & 2.99796 \\
   今日 & (定義) & & 2.99792458 \\
   \hline
  \end{tabular}
\end{table}
% --------------------
\end{document}

このソースの内,11 – 28 行で表を作成します.table 環境 (「\begin{table}[h]」から「\end{table}」まで) に,表に関するすべての情報を記載します.ここに書かれている情報(表の内容)は,以下のとおりです.こんなパイル結果である図1を確認しながら,各行の役割を見ると理解しやすいでしょう.

内容
11 table 環境の開始.[h]は here の略で,表はできればここに挿入してね — の意味
12 キャプションです.
13 表を参照するときのラベル指定です.
14 表全体をセンタリングを表します.
15 表の開始と列の位置指定です.l:左詰め,c:センタリングを表します.
16 横線を引きます.
17–18 第1行と第2行の内容です.
19 2本の横線を描きます.
20—25 二重線と最後の一重線の間(3行–8行の内容です.
26 横線を引きます.
27 表の終わりです.
28 table 環境の終了.

図1: 表組みを使った例

基本

追加のスタイルファイルを使わない普通の表の作成方法を説明します.ほとんどの場合,ここで示す表で十分でしょう.

キャプション付きの普通の表

文書で最も使われるタイプのキャプション付きの表の作成方法を示します.

構造

文書中の表は,表番号付きのキャプションとカラムの集合であるテーブルから構成されます.もちろん,LaTeX では表番号は自動的に割り振られ,文書中で引用できます.このようなキャプションが付いた普通の表の書式は以下のとおりで,LaTeX で使われる最も基本的な表のパターンです.

\begin{table}[表の位置指定]
  \caption{キャプションを記述}
  \label{ラベル名}
  \centering
  \begin{tabular}{カラムのデータの位置指定}
      表のデータの記述
	横罫線は \hline 等を使う
	カラムの区切りは, &
	行の区切りは,\\
  \end{tabular}
\end{table}

これが,LaTeX の表の基本的な作成パターンです.表のアウトラインは table で,中身は tabular 環境で記述します.

具体例

前節「構造」で示した書式の表の設定パラメーターを説明します.リスト 1 は,C言語のデータ型の説明用の表の LaTeX のソースファイルです.その右は,このソースを LaTeX で処理した結果です.

LaTeXの普通の表(C言語の変数の型).

\begin{table}[hbtp]
  \caption{C言語の代表的なデータの型}
  \label{table:data_type}
  \centering
  \begin{tabular}{lcr}
    \hline
    データの型  & 宣言  &  ビット幅  \\
    \hline \hline
    文字型  & char  & 8 \\
    整数型  & int   & 32 \\
    倍精度実数型  & double  & 64 \\
    倍々精度実数型  &  long double  &  96 \\
    \hline
  \end{tabular}
\end{table}
図の alt 属性(LaTeX のごく一般的な表)
図2: 左のソースのコンパイル結果

表の作成には,table 環境を使います.キャプションとラベルを記述,位置を指定(任意),tabular 環境でデータの記述というパターンです.リスト 1 のソースファイルの行毎のコマンドの働きは,次の通りです.

コマンド 実行内容
\begin{table}[場所指定] 表環境の開始を宣言します.カギ括弧内は表の位置指定で,この例の優先順位はh:here→b:bottom→t:top→p:pageです.hが最優先なので,ページ内でこの表作成の命令が書かれた位置に作表されます.それが不可能ならばページの下部(bottom),それもダメなら上部(top),それでもダメならば他のページ(page)に書かれます.LaTeXは,優先度を考慮し適当な位置に表を配置します.表を強制的に配置したければ,スタイルファイル float.sty あるいは here.sty をインストールし,\begin{table}[H]とします.
\caption{文字列} 表番号とともに,この文字列がキャプションとして出力されます.
\label{ラベル名} ラベルをつけます.本文中で\ref{ラベル名}で表番号を表示します.
\centering 引き続くブロックをセンタリングします.
\begin{tabular}{列の場所} tabular 環境の開始を宣言し,カラムを作成ます.各列の場所は,l: 左詰,c: 中央揃え,r: 右揃えです.
\hline 横の罫線を描きます.
第一列 & 第二列 & 第三列 \\ カラムの内容を記述します.「&」が列の区切り,「\\」が行の終わりを示します.
\end{tabular} tabular環境の終わりを表しています.
\end{table} 表環境の終わりを表しています.

キャプション

通常のキャプションは,「\caption{キャプション文字列}」と記述します.この文字列が,表のキャプションとして出力されます.表目次にも,このキャプションの文字列が書かれます.

キャプションの文字列が長い場合には表目次のタイトルが長くなり,品がないものになります.このような場合,「\caption[表目次タイトル]{キャプション文字列}」とします.すると,表目次には「表目次」のみが,キャプションには「キャプション文字列」のみが書かれます.

罫線

リスト 1 で作成した表には縦の罫線が無く,横の線も多くはありません.このように罫線を最小限にすると,品の良い表になります.通常の文書では,やむを得ない場合を除き縦の罫線は使わないほうが無難です.とはいえ,LaTeX では,任意に罫線の指定は可能です.ここでは表の罫線の指定方法を示します.

縦線

LaTeX の表 縦線の例
図3: 縦の罫線の例

カラムの位置指定で,縦棒「|」を記述すると縦罫線が現れます.たとえば,{|c|l|r|r|} とするとすべて列の境界に罫線が引かれます.

\multicolumn を使う場合には,その位置指定子とともに縦線を指定します.たとえば,{\multicolumn{2}{|c||}{ホゲホゲ}とすると,二つのセルが結合され,文字列「ホゲホゲ」が中央そろえで配置され,そのセルの左側に罫線が1本,右に二本引かれます.これを上手に使うと,セル毎の縦線を指定できます.

横線

tabular 環境で,\hlineを書くと行の端から端まで横の罫線が引かれます.任意のカラムに横線を引く場合には,「\cline」を使います.例えば「\cline{3-5}」とすると,3 — 5 列のカラムに線が引かれます.

カラム(列)の位置・幅

表の縦列(カラム)毎の要素の場所は,\begin{tabular}{列指定}の列指定の中に,l:左詰め,c:センタリング,r:右詰め,p{幅指定}で指定します.例えば,\begin{tabular}{p{30mm}rcl}とすると,第一列は幅 20 mm の左詰め,第二列は右詰め,第三列はセンタリング,第四列は左詰めとなります.p{幅指定}は左詰です.センタリングや右詰めにしたい場合,次に述べる\multicolumnを使います.幅指定を超えた内容の場合,折り返して表示されます.

tabular の設定パラメーター
パラメーター 動作 備考
l 左詰 (left)
r 右詰 (right)
c センタリング (center) 引き続くブロックのセンタリング指定です.
p{長さ} 上/左詰めの幅指定カラム (paragraph)
m{長さ} 中/左詰めの幅指定カラ (middle) arry.sty が必要
b{長さ} 下/左詰めの幅指定カラム (bottom) arry.sty が必要
@{文字列} 文字列がセパレーターになる
| 縦線(1本)
|| 縦線(2本) 3本以上も可能

要素 (カラム/セル) の結合

横に並んだ表の要素を結合する場合,要素内を\multicolumn{結合要素数}{位置指定}{内容}とします.最初の引数は結合する要素数,第二引数は内容の表示位置指定 (l:左詰め, c:センタリング, r:右詰め),第三引数は要素の表示内容です.特定の要素の表示位置を変更する場合,例えばセンタリング: \multicolumn{1}{c}{内容}—とします.

滅多にないことですが,縦に並んだ表の要素を結合する場合には,\multirow{結合要素数}{*}{内容}とします.ただし,multirow.sty をインストールする必要があります.

フォントサイズの変更

通常,フォントサイズを変更する必要はありませんが,やむを得ない場合にはフォントサイズの変更も可能です.可能なフォントサイズについては,別ページ(フォント・行)のサイズの指定に記載があります.キャプションを除くフォントサイズの変更は,table 環境内の tabular 環境の前の任意の場所にフォントサイズのコマンド(例:\Large)を記述することで,可能です.

美しく見せるための基本的な調整

デフォルトの設定でも,LaTeXの表は美しく仕上がります.更に工夫すると良くなります.ここではその工夫を示します.また,スタイルファイルを(*.sty)を使うと更に,細かい設定が可能せです.それについては,次節以降に示します.

小数点揃え(dcolumn.sty)

表中で小数点をそろえるには,パッケージ「dcolumn.sty」が便利です.これは,tabular や arry 環境で小数点をそろえることに使います.それどころか,任意の文字をそろえ,入れ替えることもできます.

準備

普通このスタイルファイルは,LaTeXのシステムにはインストールされています.もし,インストールされていない場合は,適当なサイトからダウンロードしてインストールします.

これを使用するためには,プリアンブルに,「\usepackage{dcolumn}」と記述します.

使い方

dcolumn.styの使い方は,dcolumn.pdf が詳しいです.ここでは,その内容を簡単にまとめます.

このスタイルファイルを使うと,l (左詰) や c (センタリング),r (右詰) の代わりに,三つの引数をともなった D が使えます.これをつかうと,任意に文字の位置指定が可能になります.

D{<sep.tex>}{<sep.dvi>}{<decimal places>}

<sep.tex> は LaTeX ファイル中の文字区切りを表すひとつの文字です.通常は,ピリオド「.」またはカンマ「,」です.

<sep.dvi> は,コンパイル後の出力の文字区切りです.位置そろえに使うのであれば,これら二つの引数は同じ文字にします.異なる場合には,<sep.tex><sep.dvi>と入れ替わります.<sep.dvi>は常に数式モードなので,\cdot としても良いでしょう.

<decimal places> は,表中の小数点以下の幅を決めます.表の列の数字のうち小数点以下が最大桁数の値とすべきです.例えば,列の並びが (0.1234, 1.123, 2.12345) の場合には,2.12345が小数点以下の桁数が最大で 5 桁なので 5とします.すると,小数点以下の数字が全て書かれ,小数点以下最大桁数の右側に1文字分の空白が空き,きれいに数字が並びます.負の値にすると,区切り文字がカラムの中心には配置されます.

「dcolumn.sty」を使った具体例を以下に示します.

dcolumn.sty を使った例.

\begin{table}[hbtp]
 \centering
 \begin{tabular}{|D{.}{.}{5}|D{.}{.}{-1}|D{.}{,}{5}|D{.}{\otimes}{5}|}
   \hline
   \multicolumn{1}{|c}{\texttt{D\{.\}\{.\}\{5\}}} &
   \multicolumn{1}{|c}{\texttt{D\{.\}\{.\}\{-1\}}} &
   \multicolumn{1}{|c}{\texttt{D\{.\}\{,\}\{5\}}} &
   \multicolumn{1}{|c|}{\texttt{D\{.\}\{\textbackslash otimes\}\{5\}}} \\
   \hline\hline
   1.234           & 1.234           & 1.234           & 1.234 \\
   987654321.12345 & 987654321.12345 & 987654321.12345 & 987654321.12345 \\
   12.345          & 12.345          & 12.345          & 12.345 \\
   13579           & 13579           & 13579           & 13579 \\
   \hline
  \end{tabular}
\end{table}

4に,この実行結果を示します.第一列は,D{.}{.}{5} と最も一般的な小数点揃えになっています.第二列は,第三引数が負なので小数点がカラムの中心になるようにそろえています.第三列は小数点をカンマに変換しています.第四列は小数点を数学記号で置き換えています.数式モードなので,「$」で囲む必要がありません.

[注意] 通常の列のタイトル行には小数点が無いので,「\multicolumn」を使います.これを使うことで,思わぬ位置にタイトルが書かれるのを防ぎます.

LaTeX の表 dcolumn.sty を使った例
図4: dcolumn.sty を使った例

進んだ使い方

マニュアルには,次のようなカラムのデータの位置指定の定義の例が示されています.\newcolumntypeを使うと,任意の位置指定のコマンドを作ることができます.

\newcolumntype{d}[1]{D{.}{\cdot}{#1}}
「d{3}」のようにつかいます.これは,「D{.}{\cdot}{3}」と同じです.
\newcolumntype{.}{D{.}{.}{-1}}
ドット「.」による位置指定です.ドットをカラムの中心にそろえます.
\newcolumntype{,}{D{,}{,}{2}}
「,」とすれば,位置指定は「D{,}{,}{2}」となります.

長い表(longtable.sty)

longtable.sty を使うと複数ページにまたがる表を,美しく仕上げることができます.

準備

私の Ubuntu の環境では,longtable.sty は /usr/share/texmf-texlive/tex/latex/tools にインストールされていました.インストールされていない場合は,インストールが必要です.インストールの有無(ファイルの有無)は,コマンド「find /sur/share -name longtable.sty」で分かります.

web などで longtable.sty を見つけることができれば,それを スタイルファイルの追加方法に従いインストールするだけです.longtable.sty が見つからないならば,以下のようにしてそれを作成し,インストールします.

  1. Comprehensive TeX Archive Network(CTAN) の tools から,longtable.dtxtools.inslongtable.pdf (必須ではない)をダウンロードします.
  2. ダウンロードしたディレクトリーに移動し,次のコマンドを実行します.
    $ latex tools.ins
    いろいろとエラーが出ますが無視します([Enter]キーを押しまくる).すると,longtable.styが作成されます.
  3. スタイルファイルの追加方法に従いインストールします.

使い方

使用方法の詳細は,longtable.pdf に書かれています.詳しいですが,分かりにくいです.急いで使いたい場合には,次節の使用例を見ると良いでしょう.

このスタイルファイルを使うためには,プリアンブルに「\usepackage{longtable}」と記述します.

表の作成方法は,通常の \table と似ていまが,tabular 環境を使いません.その代わりに,longtable 環境を使います.

\begin{longtable}[位置指定]{列指定}

位置指定は表全体のページの位置指定で,l:左詰,c:センタリング,r:右詰が選択可能です.列指定はtable環境と同じで,l:左詰,c:センタリング,r:右詰,p{幅}:幅指定,小数点揃えなどが選べます.また,縦線「|」を書くと縦の罫線が書かれます.

また,複数ページにわたる長い表を記述するために見出し(フッターとヘッダー)用のコマンドが用意されています.また,そのほかにも便利なコマンドがあります.以下に代表的なコマンドを示します.

  • \endfirsthead 最初のページの表の最上部の列の内容を記述するために使います.
  • \endhead 2ページ目以降の表の最上部の列の内容を記述するために使います.
  • \endfoot 表の最下部の列の内容を記述するために使います.
  • \endlastfoot 最後のページ表の最下部の列の内容を記述するために使います.
  • \footnote{文章} 脚注を書くときに使います.通常の table では使えませんが,longtable では使用可能です.
  • \pagebreak 表中にこのコマンドがあると,強制的に改ページします.

使用例

longtable を使った例を示します.リスト2は,元素に関する長い表を作成する LaTeX ソースです.longtable を使えるようになるためには,このソースを理解してください.注意事項は,以下の通り.

  • プリアンブルに,小数点揃えのための dcolumn.sty と複数ページ用の longtable.sty を使うために,\usepackage{dcolumn}\usepackage{longtable}が書かれています.
  • \begin{longtable}[c]{rllld{-2}r}で,表全体をセンタリング,表中の各列を(右詰,左詰,左詰,左詰,小数点揃え, 右詰)にしています.
  • 通常の table と同じように,\caption{元素の名前と性質.}\label{tab:elements_list}が続きます.その後の改行を表す「\\」は必須です.
  • そして,4つのコマンド \endfirsthead\endhead\endfoot\endlastfoot で表の最上部と最下部を決めます.
  • 表の内容の書き方は tabular 環境と同じで,&で列を区切り,\\で行を終わります.

LaTeXでの複数ページの表.

\documentclass[10pt,a4paper]{jarticle}
\usepackage{dcolumn}
\usepackage{longtable}
\newcolumntype{d}[1]{D{.}{.}{#1}}
\begin{document}

表\ref{tab:elements_list}は原子番号 99 までの元素の名前と特徴を表してい
ます.
%
%===================================================
% longtable のサンプル   dcolumn も使っている
%===================================================
\begin{longtable}[c]{rllld{-2}r}
 \caption{元素の名前と性質.}
 \label{tab:elements_list}
 \\
 %------ 最初のページの表の最上部 ----
 \hline
 原子番号 & 元素記号 & 日本語 & 英語 & \multicolumn{1}{c}{原子量} & 融点/$^\circ C$ \\
 \hline\hline
 \endfirsthead
 %------ 2ページ以降の表の最上部 ----
 \multicolumn{6}{l}{\small\it 前ページからの続き}\\
 \hline
 原子番号 & 元素記号 & 日本語 & 英語 & \multicolumn{1}{c}{原子量} & 融点/$^\circ C$ \\
 \hline\hline
 \endhead
 %----- ページの表の最下部 --------
 \hline
 \multicolumn{6}{r}{\small\it 表は次ページに続く}\\
 \endfoot
 %----- 最終ページの表の最下部 --------
 \hline
 \multicolumn{6}{r}{\small\it これで終わり}\\
 \endlastfoot
 %----------------------------------------------------------------
 1  & H  & 水素               & Hydrogen      & 1.0079  & -259 \\
 2  & He & ヘリウム\footnote{最も融点が低い} & Helium & 4.0026  & -272 \\
 3  & Li & リチウム           & Lithium       & 6.941   & 180 \\
 4  & Be & ベリリウム         & Beryllium     & 9.0122  & 1278 \\
 5  & B  & ホウ素             & Boron         & 10.811  & 2300 \\
 6  & C  & 炭素               & Carbon        & 12.0107 & 3500 \\
 7  & N  & 窒素               & Nitrogen      & 14.0067 & -210 \\
 8  & O  & 酸素               & Oxygen        & 15.9994 & -218 \\
 9  & F  & フッ素             & Fluorine      & 18.9984 & -220 \\
 10 & Ne & ネオン             & Neon          & 20.1797 & -249 \\
 11 & Na & ナトリウム         & Sodium        & 22.9897 & 98 \\
 12 & Mg & マグネシウム       & Magnesium     & 24.305  & 639 \\
 13 & Al & アルミニウム       & Aluminum      & 26.9815 & 660 \\
 14 & Si & ケイ素             & Silicon      & 28.0855 & 1410 \\
 15 & P  & リン               & Phosphorus   & 30.9738 & 44 \\
 16 & S  & 硫黄               & Sulfur       & 32.065  & 113 \\
 17 & Cl & 塩素               & Chlorine     & 35.453  & -101 \\
 18 & Ar & アルゴン           & Argon        & 39.948  & -189 \\
 19 & K  & カリウム           & Potassium    & 39.0983 & 64 \\
 20 & Ca & カルシウム         & Calcium      & 40.078  & 839 \\
 21 & Sc & スカンジウム       & Scandium     & 44.9559 & 1539 \\
 22 & Ti & チタン             & Titanium     & 47.867  & 1660 \\
 23 & V  & バナジウム         & Vanadium     & 50.9415 & 1890 \\
 24 & Cr & クロム             & Chromium     & 51.9961 & 1857 \\
 25 & Mn & マンガン           & Manganese    & 54.938  & 1245 \\
 26 & Fe & 鉄                & Iron         & 55.845   & 1535 \\
 27 & Co & コバルト           & Cobalt       & 58.9332 & 1495 \\
 28 & Ni & ニッケル           & Nickel       & 58.6934 & 1453 \\
 29 & Cu & 銅                 & Copper       & 63.546  & 1083 \\
 30 & Zn & 亜鉛               & Zinc         & 65.39   & 420 \\
 31 & Ga & ガリウム           & Gallium      & 69.723   & 30 \\
 32 & Ge & ゲルマニウム       & Germanium     & 72.64   & 937 \\
 33 & As & ヒ素              & Arsenic       & 74.9216 & 81 \\
 34 & Se & セレン            & Selenium      & 78.96   & 217 \\
 35 & Br & 臭素              & Bromine       & 79.904  & -7 \\
 36 & Kr & クリプトン        & Krypton       & 83.8     & -157 \\
 37 & Rb & ルビジウム        & Rubidium      & 85.4678  & 39 \\
 38 & Sr & ストロンチウム    & Strontium     & 87.62    & 769 \\
 39 & Y  & イットリウム      & Yttrium       & 88.9059  & 1523 \\
 40 & Zr & ジルコニウム      & Zirconium     & 91.224   & 1852 \\
 41 & Nb & ニオブ            & Niobium       & 92.9064  & 2468 \\
 42 & Mo & モリブデン        & Molybdenum    & 95.94    & 2617 \\
 43 & Tc & テクネチウム      & Technetium    & 98       & 2200 \\
 44 & Ru & ルテニウム        & Ruthenium     & 101.07   & 2250 \\
 45 & Rh & ロジウム          & Rhodium       & 102.9055 & 1966 \\
 46 & Pd & パラジウム        & Palladium     & 106.42   & 1552 \\
 47 & Ag & 銀                & Silver       & 107.8682 & 962 \\
 48 & Cd & カドミウム        & Cadmium       & 112.411 & 321 \\
 49 & In & インジウム        & Indium        & 114.818 & 157 \\
 50 & Sn & スズ              & Tin          & 118.71   & 232 \\
 51 & Sb & アンチモン        & Antimony     & 121.76   & 630 \\
 52 & Te & テルル            & Tellurium    & 127.6    & 449 \\
 53 & I  & ヨウ素            & Iodine       & 126.9045 & 114 \\
 54 & Xe & キセノン          & Xenon        & 131.293  & -112 \\
 55 & Cs & セシウム          & Cesium       & 132.9055 & 29 \\
 56 & Ba & バリウム          & Barium       & 137.327  & 725 \\
 57 & La & ランタン          & Lanthanum    & 138.9055 & 920 \\
 58 & Ce & セリウム          & Cerium       & 140.116  & 795 \\
 59 & Pr & プラセオジム      & Praseodymium & 140.9077 & 935 \\
 60 & Nd & ネオジム          & Neodymium    & 144.24   & 1010 \\
 61 & Pm & プロメチウム      & Promethium   & 145      & 1100 \\
 62 & Sm & サマリウム        & Samarium     & 150.36   & 1072 \\
 63 & Eu & ユウロピウム      & Europium     & 151.964  & 822 \\
 64 & Gd & ガドリニウム      & Gadolinium   & 157.25   & 1311 \\
 65 & Tb & テルビウム        & Terbium      & 158.9253 & 1360 \\
 66 & Dy & ジスプロシウム    & Dysprosium   & 162.5    & 1412 \\
 67 & Ho & ホルミウム        & Holmium      & 164.9303 & 1470 \\
 68 & Er & エルビウム        & Erbium       & 167.259  & 1522 \\
 69 & Tm & ツリウム          & Thulium      & 168.9342 & 1545 \\
 70 & Yb & イッテルビウム     & Ytterbium    & 173.04  & 824 \\
 71 & Lu & ルテチウム        & Lutetium     & 174.967  & 1656 \\
 72 & Hf & ハフニウム        & Hafnium      & 178.49   & 2150 \\
 73 & Ta & タンタル          & Tantalum     & 180.9479 & 2996 \\
 74 & W  & タングステン      & Tungsten     & 183.84   & 3410 \\
 75 & Re & レニウム          & Rhenium      & 186.207  & 3180 \\
 76 & Os & オスミウム        & Osmium       & 190.23   & 3045 \\
 77 & Ir & イリジウム        & Iridium      & 192.217  & 2410 \\
 78 & Pt & 白金             & Platinum      & 195.078  & 1772 \\
 79 & Au & 金               & Gold          & 196.9665 & 1064 \\
 80 & Hg & 水銀             & Mercury       & 200.59   & -39 \\
 81 & Tl & タリウム          & Thallium     & 204.3833 & 303 \\
 82 & Pb & 鉛               & Lead          & 207.2   & 327 \\
 83 & Bi & ビスマス          & Bismuth      & 208.9804 & 271 \\
 84 & Po & ポロニウム        & Polonium     & 209      & 254 \\
 85 & At & アスタチン        & Astatine     & 210      & 302 \\
 86 & Rn & ラドン            & Radon        & 222      & -71 \\
 87 & Fr & フランシウム      & Francium     & 223      & 27 \\
 88 & Ra & ラジウム          & Radium       & 226      & 700 \\
 89 & Ac & アクチニウム      & Actinium     & 227      & 1050 \\
 90 & Th & トリウム          & Thorium     & 232.0381  & 1750 \\
 91 & Pa & プロアクチニウム  & Protactinium & 231.0359  & 1568 \\
 92 & U  & ウラン           & Uranium      & 238.0289  & 1132 \\
 93 & Np & ネプツニウム      & Neptunium    & 237      & 640 \\
 94 & Pu & プルトニウム      & Plutonium    & 244      & 640 \\
 95 & Am & アメリシウム      & Americium    & 243      & 994 \\
 96 & Cm & キュリウム        & Curium       & 247      & 1340 \\
 97 & Bk & バークリウム       & Berkelium   & 247      & 986 \\
 98 & Cf & カリホルニウム     & Californium & 251      & 900 \\
 99 & Es & アインスタイニウム & Einsteinium & 252      & 860 \\
\end{longtable}
%===================================================
\end{document}

57に,この LaTeX のファイルのコンパイル結果を示します.クリックすると拡大表示を見ることができます.表の最上部と最下部にメッセージが書かれており,表が複数ページにわたっていることを示しています.

LaTeX の表 logntable.sty を使った例 (1/3)ページ LaTeX の表 logntable.sty を使った例 (2/3)ページ LaTeX の表 logntable.sty を使った例 (3/3)ページ
図5: (1/3)ページ 図6: (2/3)ページ 図7: (3/3)ページ

文字の回り込み (wraptable 環境)

小さな表を別行立てにすると,文書の余白が目立ち,間抜けな感じがします.紙ももったいないので,表の周りに文字を回り込ませると良いでしょう.LaTeX では,wraptable 環境を使うと,回り込みができます.これは,図の周りに文字を回り込ませる wrapfigure 環境とよく似ています.

使い方

使い方の詳細については,マニュアルを参照ください.これでは,wrapfigure 環境ついて説明していますが,wraptable も同じです.細かい設定はマニュアルに譲るとして,ここでは普通に使う分には十分な説明を行います.

プリアンブル

wraptable 環境を使うためには,プリアンブルに以下の記述が必要です.

\usepackage{wrapfig}

本文

表(キャプションも含む)と文章を配置を決め,表の周りに文章(テキスト)を回り込ませます.これらの配置は,wraptable 環境で指定します.指定するパラメーターは,回り込みの場所とサイズ,表(必要ならばキャプションとラベルも)を指定します.基本的な wraptable 環境の記述方法は,以下の通りです.

wraptable の記述方法

\begin{wraptable}[行数]{場所}[オーバーハング幅]{表を配置する幅}
  \caption{キャプション}
  \label{ラベル}
  \centering
  \begin{tabular}{カラムのデータの位置指定}
      & 区切りの表のカラムのデータ \\
      & 区切りの表のカラムのデータ \\
      
\end{wraptable}
%---
      文章
      文章
      

ユーザーはこの構文の緑色の部分を目的に応じて記述するだけで,表の周りに文字を文字を回り込ませることができます.wraptable 環境の設定パラメーターは以下の通りです.また,図8テキストと表の位置の関係を示します.

設定 効果/動作
行数 回り込みする文章の行数の指定です.
場所 表の配置場所を指定します.大文字と小文字で設定可能で,大文字: フローティング,小文字: 記述した場所に配置します.
r, R 表をテキストの右端に配置
l, L 表をテキストの左端に配置
i, I \documentclass[twoside]の場合,開いた2ページ分の内側に配置します.
o, O \documentclass[twoside]の場合,開いた2ページ分の外側に配置します.
オーバーハング幅 表の外側へのオーバーハングの幅の指定です.回り込みをしないテキストの右端からの長さで指定します.
表を配置する幅 表を配置する幅の指定です.この幅よりも大きな表を指定するとはみ出ます.
LaTeX wrapfig.sty wraptable の設定パラメーターの説明図
図8: wraptable 環境の図とテキストの配置.場所の指定は「r」.

[注意] 回り込みで表を配置する場所のサイズは,引数の「行数×表を配置する幅」で決まります.これは場所の確保のみで,表のサイズは引き続く表のデータ次第です.表のサイズが確保した場所のサイズよりも大きくなると,はみ出た表になります.wraptable は表のサイズによる場所のサイズの調整は行いません. /begin{wraptable} — /end{wraptable}内の表内のデータを除いた文字列(ほとんどの場合はキャプション)は,オーバーハングを超えることができません.これを超える文字列の場合,折り返されます.表(カラムの文字列を含む)はオーバーハングを超えることは可能です.しかし,オーバーハングを超えることは,できるだけ避けるべきです.

具体例

以下のリストは,wrpfig.sty の wraptable 環境を使った具体例です(wraptable 環境の部分のみ表示).図9に,実行結果を示します.図をクリックすると拡大表示します(IEはだめ).

wraptable 環境を使った例

\begin{wraptable}[9]{r}[5mm]{50mm}
 \caption{単位の次元}
 \label{table:unit}
 \centering
 \begin{tabular}{lrrrr}
  \hline
  物理量 & \multicolumn{4}{c}{SI単位} \\
  & 
  \multicolumn{1}{c}{L}  & 
  \multicolumn{1}{c}{M} & 
  \multicolumn{1}{c}{T} & 
  \multicolumn{1}{c}{I} \\
  \hline \hline
  力   & 1 & 1 & -2 &  \\
  エネルギー & 2 & 1 & -2 & \\
  電場の強さ & 1 & 1 & -3 & -1 \\
  磁場の強さ & -1 &  &  & 1 \\
  \hline
 \end{tabular}
\end{wraptable}
%
物理学で使われるすべての単位には,長さ L [m]と質量 M [kg],時間 T [sec],
電流 I [A]の4つの基本単位の乗算(除算を含む)で表せます.なぜ,たった4つだ
と言い切れるのか? --- という疑問も湧くでしょう.それは,物理学の基本方程
式(力学,電磁気学,量子力学,\dots)がこれらの単位しか使っていないからです.
すべての物理法則は基本方程式から得られるので,その方程式が使う単位しか出
てこないことになります.もし,新たな基本法則が発見され,全く別の物理量が
必要になれば基本単位に加えられるでしょう.次の疑問は,乗算だけで表すこと
ができる理由は? --- です.物理学の方程式では,(1)左右の式の単位は等しい,
(2)加算(減算を含む)が可能な物理量は同じ単位のものである --- という大原則
があります.方程式は物理量の比較を行っており,その比較は同じ尺度(単位)で
なくては意味がありません.重さと長さを比較しても,大小関係は決定できない
のと一緒です.したがって,単位の異なる物理量の加算は意味をなさないので,単位の次
元にも加算は現れません.表\ref{table:unit}に,代表的な物理量の単位の次元
を示します.
wraptable 環境を使った例
図9: wraptable 環境を使った例 (ソース)

行や列,セルに色をつける (colortbl.sty)

ビジネス文書では表に色をつけて,重要な項目を分り易くすることがあります.ここではスタイル「colortbl.sty」を使い,LaTeX の色付けの方法を示します.

使い方

使い方の詳細については,マニュアルを参照ください.細かい使用方法はマニュアルに譲るとして,ここでは普通に使う分には十分な説明を行います.

プリアンブル

スタイル colortbl を使うためには,プリアンブルに以下の記述が必要です.

\usepackage{colortbl}

本文

表の色指定は,列(column)と行(row),セル単位(cell)で可能で行います.

列の色指定

列の色指定は,tabular 列の設定で行います.コマンドは,

\columncolor[<color model>]{<color>}[<left overhang>][<right overhang>]

です.具体的には,「\begin{tabular}{|l|r| >{\columncolor[rgb]{1.0, 0.0, 0.0}} l|}」のようにします.これで第3列が左揃えで背景が赤色になります.カラーモデルについては,次節を参考にしてくだい.左右のオーバーハングを指定しないと,セルいっぱいに指定色で塗りつぶされます.オーバーハングの [0pt][0pt] とすると,その列の中で最も長い文字列いっぱいに,指定色で塗りつぶされます.オーバーハングの正は左右の拡がり,負は最大文字幅から縮みます.

行の色指定

行の色指定は,行の先頭で行います.コマンドは,

\rowcolor[<color model>]{<color>}[<left overhang>][<right overhang>]

です.具体的には,「 \rowcolor[rgb]{0.0, 1.0, 0.0}」のようにします.これで行が緑色に塗りつぶされます.カラーモデルとオーバーハングは,列の色指定と同じです.列の最大文字列幅がオーバハングの [0pt][0pt] に相当します.

セルの色指定

セルの色指定は,セル内で行います.コマンドは,

\cellcolor[<color model>]{<color>}

です.具体的には,「 \cellcolor[rgb]{0.0, 0.0, 1.0}」のようにします.これで行が青色に塗りつぶされます.カラーモデルは行や列と同じです.オーバーハングは使えません.

カラーモデル

colortbl では,以下のカラーモデルを使うことができます.

カラーモデル
モデル 説明
rgb 赤緑青の要素を 0 – 1 の数値で指定 [rgb]{0.12, 0.45, 0.26}
gray グレイスケールを 0 – 1 の数値で指定 [gray]{0.85}
named black, white, red, green, blue, cyan, magenta, yellow {red}

具体例

以下のリストは,colortbl.sty を使った具体例です(表の部分のみ表示).

colortab を使った表の例.

\begin{table}[h]
  \caption{時計の精度向上の歴史.表中の「1秒誤差」は時計が1秒狂う時間.}
  \label{table:colortbl}
  \centering
  \begin{tabular}{|l|l|l|r|>{\columncolor[rgb]{0.0, 0.9, 0.9}}l|}
    \hline
    西暦 & 方式 & 発明者 & 1秒誤差 & 精度 \\
    \hline\hline
	  \rowcolor[rgb]{0.9, 0.9, 0.9}
    13世紀後半 & 最初の機械式時計 & ヨーロッパ & 50[秒] & 2E-2 \\
	  \rowcolor[rgb]{0.9, 0.9, 0.0}
    1656 & 振り子時計 & クリスチャン・ホイヘンス & 5[分] & 3E-3 \\
    1675 & てんぷぜんまいの発明 & クリスチャン・ホイヘンス & 5[分] & 3E-3 \\
    1735 & マリンクロノメーターの開発 & ジョン・ハリソン & 8[時間] & 3E-5\\
    1921 & シンクロノーム自由振子時計 & W.ショート & 12[年] & 3E-9\\
    1955 & セシウム原子時計 & \cellcolor[rgb]{0.9, 0.0, 0.0}ルイ・エッセン & 300[年] & 1E-10\\
    2005 & ストロンチウム光格子時計 & 香取 & 10[億年] & 3E-16\\
    \hline
  \end{tabular}
\end{table}

10に,実行結果を示します.図をクリックすると拡大表示します(IEはだめ).

図10: colortbl スタイルを使った例

便利なスタイル

罫線を破線に (arydshln.sty)

arydshln.sty」は,tabular や array 環境で,破線を表示するために使います.表の罫線を波線や点線にすることができます.このスタイルを使うためには,(1) arydshln.sty のインストール,(2) プリアンブルに「\usepackage{arydshln}」を記述する必要があります.

基本的な使い方

縦の罫線は「|」で実線が表示されますが,arydshln を使うと「:」で破線となります.横の罫線は「\hline」や「\cline」の代わりに,「\hdashline」や「\cdashline」を使うことで破線にできます.

破線の設定

デフォルトの変更

デフォルトの破線の実線(ダッシュ: —)の長さとその間隔(ギャップ)は,いずれも 4pt です.これは変更可ので,プリアンブルに \setlength{\dashlinedash}{2.3pt}\setlength{\dashlinegap}{0.5pt} を記述すると,ダッシュの長さは 2.3pt,ギャップは 0.5pt になります.

破線毎の変更

破線毎に,実線(ダッシュ: —)の長さとその間隔(ギャップ)を設定できます.以下の例は,いずれも,ダッシュの長さは 2.3pt,ギャップは 0.5pt になります.

縦の罫線 「;{2.4/0.5pt}」とします.コロン(:)ではなく,セミコロン(;)です.
横の罫線 「\hdashline[2.3pt/0.5pt]」とします.
横の部分罫線 「\cdashline{2-5}[2.3pt/0.5pt]」とします.これで,2 — 5カラムの破線が指定できます.

表中の脚注

表中では,脚注を記述するコマンド「\footnote{表中ではダメ}」を使うことができません.スタイルファイル「tablefootnote.sty」や「tablefootnote.sty」を使うことで,この問題は解消できます.

tablefootnote.sty

プリアンブルに以下を記述することで,table 環境で脚注を書くためのスタイルファイル「tablefootnote.sty」が使えます.

\usepackage{tablefootnote}

そして,脚注を記述するコマンド「\tablefootnote{脚注文章を書く}」を使います.通常の脚注と同じように,「\tablefootnote[番号]{脚注文章を書く}」も使えます.

footnote.sty

スタイルファイル「footnote.sty」を使うことも可能です.プリアンブルにに以下を書きます.

\usepackage{footnote}
\makesavenoteenv{tabular}

こうすることで,tabular 環境中で「\footnote{脚注を記述}」を使うことができるようになります.

表の要素(セル)を斜線で二分割 (slashbox.sty)

slashbox.sty」を使うと,表の要素(セル)を斜線で二分割できます.このスタイルを使うためには,(1) slashbox.sty のインストール,(2) プリアンブルに「\usepackage{slashbox}」を記述する必要があります.

表の要素を記述する場所で,「\backslashbox{文字列 A}{文字列 B}」とすると,二つの文字列が左上 — 右下の斜線で分割され,[文字列 A \ 文字列 B]と表示されます.また,「\slashbox{文字列 X}{文字列 Y}」とすると,二つの文字列が左下 — 右上の斜線で分割され,[文字列 X / 文字列 Y]と表示されます.

細かい調整

カラムの高さ

表中のすべての行の高さの変更は,

\renewcommand{\arraystretch}{1.5}

のようにします.これで,高さが1.5倍にすることができます.特定の表のみ変更したい場合には,\begin{table}と\end{table}を\renewcommand{\arraystretch}{1.5}\renewcommand{\arraystretch}{1.0}ではさむことになります.

表中の行毎の高さの変更は,\rule[0mm]{0mm}{5mm}のようにします.\rule は長方形を描くコマンドで,ベースラインからの底までの間隔,長方形の幅,高さ指定ができます.幅をゼロにすることにより,任意の支柱を立て,行の高さの変更を行います.具体的には,次のとおり.

カラムの高さを変える方法

\begin{table}[hbtp]
 \centering
 \begin{tabular}{rl}
   \hline
   長方形の高さ &  説明\\
   \hline \hline
   1mm  & 支柱 1mmは無意味\rule[0mm]{0mm}{1mm} \\
   \hline
   5mm  & ちょっと高くなります.\rule[0mm]{0mm}{5mm} \\
   \hline
   10mm & かなり高いです.\rule[0mm]{0mm}{10mm} \\
   \hline
   15mm & 高い!!\rule[0mm]{0mm}{15mm} \\
   \hline
   30mm & 四角形の底を -15mm.\rule[-15mm]{0mm}{30mm} \\
   \hline
  \end{tabular}
\end{table}
LaTeX の表 カラムの高さを変化させた表
図11: カラムの高さを変化させた表

様々なテクニック

以下に,様々なテクニックを示します.

  1. 表の説明文(caption)に,「\cpation{… \url{http://hoge.com/foo.html} …」のように,URLを書くとエラーが発生します.このエラーを防ぐためには,「\caption{… \protect\url{http://hoge.com/foo.html} …}」のようにします.ただし,\url{} を使うためには,プリアンブルに「\usepackage{url}」を記述します.

ページ作成情報

参考資料

  1. 表中の斜め線の作成方法を詳しく書いてある.http://blogs.yahoo.co.jp/koh_hotta/36084959.html
  2. *.dtx ファイルの処理方法については,TeX WikiTeX入門/各種パッケージの利用を参考にしました.
  3. longtable の具体例は,longtable exampleを参考にしました.
  4. arydshln については,そのマニュアルを参考にしました.

更新履歴

2007年11月頃 ページの新規作成
2014年01月13日 長い表(longtable.sty)の説明を追加.
2014年02月08日 小数点揃え(dcolumn.sty)の説明を追加.
2017年12月03日 セルの色付け(colortbl.sty)の説明を追加.


no counter