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