1 ページを超える表
繰り返されるロングテーブルのヘッダーとフッター。
1 ページを超える表
通常の「テーブル」環境はフロートであり、フロートは単一ページに収まる必要があります。これに 60 行を与えると、LaTeX はそれを float ページに押し込んでオーバーフローさせるか、永久に延期します。これを修正するのが「longtable」パッケージです。このパッケージは、スプレッドシートの印刷と同じように、複数のページにまたがって各ページにヘッダーを繰り返す表を植字します。
\usepackage{longtable,booktabs}\begin{longtable}{ll} \toprule Key & Value \\ \midrule \endfirsthead \toprule Key & Value \\ \midrule \endhead \bottomrule \endfoot a & 1 \\ % ... many rows\end{longtable}ヘッダー ブロックの仕組み
longtable は、実際のデータ行の前に最大 4 つの宣言ブロックで始まります。 \endfirsthead より上のすべては、テーブルの先頭に一度印刷されるヘッダーです。 \endfirsthead と \endhead の間はすべて、後続の各ページの先頭に繰り返されるヘッダーです。そのため、この例では同じ「キーと値」行が 2 回表示されます。 \endfoot で終わるブロックは、テーブルが触れるすべてのページの下部に印刷されます。ここでは、終了の \bottomrule だけが表示されます。合計行など、最終行の下にのみ表示される資料用の \endlastfoot もあります。継続のヒントが必要な場合、一般的なパターンは、フット ブロックに \midrule \multicolumn{2}{r}{Continued on next page} \\ があり、実際の \bottomrule が最後のフットにあることです。
宣言の後にデータ行が来ます。通常の「表形式」とまったく同じように、セル間に「&」を挟み、各行の最後に「\」を入れて記述します。 「booktabs」ルールは変更されずに機能します。置き換えるものについては、3 つのルール テーブル を参照してください。
float ではありません、そしてそれが何を意味するか
最も重要な動作上の違いは、「longtable」は float ではないという一文で説明されています。ソース内で指定した場所から正確に開始され、ページが分割された場所で中断され、[htbp] 引数は必要ありません。これにより、キャプションの仕組みも変わります。 「table」環境で「longtable」をラップしません。代わりに、テーブル自体の中に、first-head ブロックの最初の行として \caption{...}\\ を配置すると、他のテーブルと同じ順序で番号が付けられます。
信頼する前に知っておくべき 2 つのこと
まず、列幅はグローバルに決定されるため、LaTeX では列の移動が停止するまでに数回のコンパイル パスが必要になる場合があります。レイアウトが安定するまでコンパイルを続けます。次に、「longtable」は 2 列レイアウト内では使用できないため、ほとんどの会議テンプレートでは使用できません。これらの文書では、表を縮小するか、複数の部分に分割するか、または 1 列の付録に移動することが現実的な選択肢となります。