Таблицы длиннее одной страницы

повторяющиеся верхние и нижние колонтитулы длинных таблиц.

Таблиц длиннее одной страницы

Обычная «табличная» среда представляет собой плавающее число, а плавающее число должно помещаться на одной странице. Дайте ему шестьдесят строк, и LaTeX либо поместит его на плавающую страницу и позволит ему переполниться, либо отложит его навсегда. Исправлением является пакет 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}

Как работают блоки заголовков

«Длинная таблица» начинается с четырех блоков объявлений перед фактическими строками данных. Все, что находится выше \endfirsthead, представляет собой заголовок, напечатанный один раз, в самом начале таблицы. Все, что находится между \endfirsthead и \endhead, представляет собой заголовок, повторяющийся вверху каждой последующей страницы, поэтому в примере дважды появляется одна и та же строка «Ключ и значение». Блок, заканчивающийся на \endfoot, печатается внизу каждой страницы, к которой прикасается таблица, здесь просто закрывающее \bottomrule. Существует также \endlastfoot для материала, который должен появляться только под последними строками, например, строкой итогов. Если вам нужна подсказка о продолжении, обычно используйте шаблон \midrule \multicolumn{2}{r}{продолжение на следующей странице} \\ в нижнем блоке и настоящее \bottomrule в последнем футе.

После объявлений идут строки данных, записанные точно так же, как в обычной «таблице», с & между ячейками и \\ в конце каждой строки. Правила booktabs работают без изменений. См. таблицы трёх правил, чтобы узнать, чем они заменяют.

Не число с плавающей запятой, и что это означает

Самое важное различие в поведении указано в одном предложении: «longtable» не является числом с плавающей запятой. Он начинается именно там, где вы его разместили в исходном коде, прерывается там, где разрываются страницы, и не принимает аргумента [htbp]. Это также меняет принцип работы подписей. Вы не помещаете «longtable» в окружение «table». Вместо этого поместите \caption{...}\\ внутри самой таблицы в качестве первой строки блока first-head, и она будет пронумерована в той же последовательности, что и другие ваши таблицы.

Две вещи, которые следует знать, прежде чем полагаться на него

Во-первых, ширина столбцов определяется глобально, поэтому LaTeX может потребоваться несколько проходов компиляции, прежде чем столбцы перестанут смещаться. Продолжайте компилировать, пока макет не стабилизируется. Во-вторых, «longtable» нельзя использовать внутри двухколоночного макета, что исключает его для большинства шаблонов конференций. В этих документах реалистичными вариантами являются уменьшение таблицы, разделение ее на части или перемещение ее в приложение в одну колонку.

Вернуться к Флоат-хирургия