はじめに
LaTeXで何か書く際に、縦に大きな表を用意する必要が出てくることがあります。
普通の大きさの表であれば標準のtableを使えばいいのですが、表の大きさがデカくなった際にページからはみ出てしまうことがあります。
そこで登場するものがlongtableです。
longtableでもtableの書き方がベースにはなりますが、少し違う部分があるので自分の備忘録も兼ねて解説したいと思います。
例
実際にlongtableを使うときはこんな感じです。
\documentclass{jartcle}
\usepackage{longtable} % longtableを使う際に必要
\title{longtableを使ってみる}
\begin{longtable}{|c|c|c|}
% firsthead
% 表の一番最初に表示されます。
% 省略した場合はheadの内容が表示されます。
\caption{長い表} \label{tab:long} \\ % 強制改行が必要
\hline 要素1 & 要素2 & 要素3 \\ \hline
\endfirsthead
% head
% 各ページの最初に表示されます。
% 省略した場合は何も表示されません。
\hline 要素1 & 要素2 & 要素3 \\ \hline
\endhead
% foot
% 各ページの最後に表示されます。
% 省略した場合は何も表示されません。
\hline \multicolumn{3}{|r|}{次のページへ続く。} \\ \hline
\endfoot
% lastfoot
% 表の一番最後に表示されます。
% 省略した場合はfootの内容が表示されます。
\hline \multicolumn{3}{|r|}{終了} \\ \hline
\endlastfoot
% ここから表の内容
% tableの書き方と同じです。
お試し1 & お試し2 お試し3 & 3.141592 \\
お試し1 & お試し2 お試し3 & 3.141592 \\
お試し1 & お試し2 お試し3 & 3.141592 \\
お試し1 & お試し2 お試し3 & 3.141592 \\
お試し1 & お試し2 お試し3 & 3.141592 \\
\end{longtable}
\end{document}
コードを短くするために表の内容を省略しています。
コンパイルするとこんな感じです。
クリックで拡大表示できます。
tableとの違いについて
tableでは先に\begin{table}
をしてから、表の部分はさらに\begin{tabular}
をすることが多いですが、longtableでは、いきなり\begin{longtable}
から始める事ができます。
もちろんキャプションやラベル等も含めることができますが、注意が必要です。
longtableにキャプションやラベルを埋めた際はその後ろに\\
を入れる必要があります。
また、tableとは違い、複数ページにまたがることが想定されているため、ヘッダーやフッターを指定することができます。
なお、センタリングは自動で行われるので\centering
の必要はありません。
書き方について
\begin{longtable}
でlongtableを開始する際にtabularと同様に各列の位置を指定できます。
表のデータ自体の書き方はtabularと同様の書き方ができますが、先頭行と末尾行だけ書き方が少し違います。
各ヘッダー・フッターについて
各ヘッダーとフッターは\endhead
のように\end~
の形で書きます。書く際最初にbegin等は書きません。
firsthead
表の一番最初のみに表示されます。
最初のキャプションなどをここに書くと良いと思います。
省略するとheadの内容が表示されます。
head
各ページの最初に表示されます。
前のページから続いていることを書いたり、各列の名前について再度記すことができます。
foot
各ページの最後に表示されます。
次のページに続いていることなどを書くことができます。
endfoot
表の一番最後のみに表示されます。
この表がここで終了していることなどを記すことができます。