Оформление многостраничных таблиц в 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. Шапка на САМОЙ ПЕРВОЙ странице
\caption{Экспериментальные данные измерений}\label{tab:measurements} \\
\hline
\textbf{№} & \textbf{Наименование образца} & \textbf{Масса, г} \\
\hline
\endfirsthead
% 2. Шапка на ВСЕХ ПОСЛЕДУЮЩИХ страницах (по ГОСТ)
\multicolumn{3}{r}{\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}{r}{\textit{Продолжение таблицы \ref{...}}}в блоке\endheadполностью закрывает это требование нормоконтроля в автоматическом режиме.
Ширина колонок и переносы строк внутри ячеек
Чтобы текст внутри ячеек автоматически переносился по словам, используйте колонки с фиксированной шириной p{ширина} (например, p{6cm}) вместо стандартных l, c, r (базовые приемы верстки описаны в руководстве по переносу таблиц по ГОСТ).
Для центрирования текста в таких ячейках используйте пакет array с модификатором >{\centering\arraybackslash}p{4cm}.
Практические советы
Двойная компиляция для расчета колонок
Движок LaTeX рассчитывает ширину столбцов longtable в два прохода. Если при первой сборке границы колонок «поплыли», запустите компиляцию повторно.
Принудительный разрыв страницы
Если нужно разорвать longtable в строго определенном месте до заполнения листа, вставьте команду \pagebreak прямо между строк данных.