メモ

備忘録です。

tabularx環境とlongtable環境を同時に使いたい

のっぴきならない事情で長くてごちゃごちゃした表を作らなければならなくなったんだけど、ちょっと手こずってしまったので備忘用のメモ。
「セル内で改行したい!」って場合はtabularx環境、「複数ページにまたがるような表をつくりたい!」って場合はlongtable環境を使うわけですが、
tabularx環境を使うと複数ページにまたがる表をつくれないし、longtable環境を使うとセル内改行できないしで、
複数ページにまたがって、かつセル内で改行が起こるような表をつくりたいという状況にぶち当たると、ちょっと困ったことになってしまいます(まあそんな表をつくることは滅多にないでしょうが)。

こんな状況を打開してくれるのが、ltablex環境です。
くわしくはこちらのページ(CTAN: Package ltablex)にある仕様書をご覧いただければと思うのですが、
要するにtabluarx環境下で、longtable環境も使えるようにしてくれる、というものです。
使い方としては、プリアンブルに

\usepackage{ltablex}

と書いて、あとはtabularx環境やlongtable環境と同じように表を組んでいくだけです。たとえば、

\setlongtables %これでlongtable環境を使えるようになる。
\begin{tabularx}{\linewidth}{|X|X|} %表の中身はtabularx環境と同じ書き方。
\hline
項目 & 説明 \\
\hline
\endhead %longtable環境と同様にendheadやendfootも使える
%以下、表の中身。
マグロ&赤身で美味しい。\\&白身で美味しい。\\
赤貝&貝は美味しい。\\
……
鰻&蒲焼きで美味しい。\\
\hline
\end{tabularx}

ちなみに、以下のように書くと上手く動きませんのでご注意を。

\begin{table}[htb]
\setlongtables
\begin{tabularx}{\linewidth}{|X|X|}\end{tabularx}
\end{table}