Оформление многостраничных таблиц в LaTeX (пакет longtable)
Почему стандартное окружение tabular не переносится
Стандартное окружение \begin{table} ... \begin{tabular}
в LaTeX является неделимым «плавающим объектом» (float). Если число строк в таблице превышает
высоту печатного листа, таблица не разрывается, а просто срезается нижним краем страницы и
уходит за пределы листа бумаги.
Для создания таблиц произвольной длины (на 2, 5 или 20 страниц)
используется специализированный пакет longtable. Он не оборачивается в
плавающее окружение table, а вставляется напрямую в текст документа.
Таблица на несколько страниц latex longtable: базовый шаблон
Подключите пакет: \usepackage{longtable}. Полноценная
таблица на несколько страниц latex longtable разделяется на четыре служебные
зоны заголовков и подвалов:
\begin{longtable}{|c|p{8cm}|r|}
% 1. Шапка на САМОЙ ПЕРВОЙ странице
\refstepcounter{table}\label{tab:measurements}
\multicolumn{3}{l}{Таблица~\thetable{} --- Экспериментальные данные измерений} \\
\hline
\textbf{№} & \textbf{Наименование образца} & \textbf{Масса, г} \\
\hline
\endfirsthead
% 2. Шапка на ВСЕХ ПОСЛЕДУЮЩИХ страницах (по ГОСТ)
\multicolumn{3}{l}{\textit{Продолжение таблицы \ref{tab:measurements}}} \\
\hline
\textbf{№} & \textbf{Наименование образца} & \textbf{Масса, г} \\
\hline
\endhead
% 3. Подвал на промежуточных страницах (необязательно: ГОСТ его не требует)
\hline
\multicolumn{3}{|r|}{\small Продолжение на следующей странице...} \\
\hline
\endfoot
% 4. Завершающий подвал на последней странице
\hline
\endlastfoot
% ТЕЛО ТАБЛИЦЫ
1 & Образец кремниевой пластины марки А-1 & 14.52 \\ \hline
2 & Образец кремниевой пластины марки А-2 & 14.88 \\ \hline
% ... сотни строк данных ...
\end{longtable}
Перенос таблицы на следующий лист latex: подписи по ГОСТ
Российский ГОСТ 7.32-2017 строго регламентирует, как должен выглядеть перенос таблицы на следующий лист latex (подробный разбор правил смотрите в статье о переносе таблицы на следующий лист в дипломе):
- На первом листе над таблицей пишется полное название: «Таблица 1 — Название».
- На всех следующих листах перед повторной шапкой слева пишется надпись «Продолжение таблицы 1».
- Использование связки
\multicolumn{N}{l}{\textit{Продолжение таблицы \ref{...}}}в блоке\endheadзакрывает строку «Продолжение таблицы». Первую подпись так же набирайте вручную:\captionдаёт «Таблица 1:» с двоеточием, а не «Таблица 1 — Название». - Подвал «Продолжение на следующей странице…» ГОСТ не требует: добавляйте его, только если об этом просит методичка.
Ширина колонок и переносы строк внутри ячеек
Чтобы текст внутри ячеек автоматически переносился по словам,
используйте колонки с фиксированной шириной p{ширина} (например,
p{6cm}) вместо стандартных l, c, r (базовые
приемы верстки описаны в руководстве по переносу таблиц по ГОСТ).
Для центрирования текста в таких ячейках используйте пакет
array с модификатором >{\centering\arraybackslash}p{4cm}.
Практические советы
Двойная компиляция для расчета колонок
Движок LaTeX рассчитывает ширину столбцов longtable в два прохода. Если при первой сборке границы колонок «поплыли», запустите компиляцию повторно.
Принудительный разрыв страницы
Если нужно разорвать longtable в строго определенном месте до заполнения листа, вставьте
команду \pagebreak прямо между строк данных.