Работа в системе LaTeX



         

Таблицы, простирающиеся на несколько страниц


Как уже отмечалось, окружения {array} и {tabular} рассматриваются LaTeX'ом как одна большая буква, и потому не разбивается по страницам. Можно, однако, создавать таблицы, в которых и разбиение на страницы, и определение ширины колонок происходит автоматически. Для этого надо подключить стилевой пакет {longtable} и использовать окружение {longtable}. Как и окружение {tabular}, оно принимает один обязательный параметр — преамбулу (устроенную точно так же, как у {tabular}); внутри окружения действуют в точности те же правила записи текста, что и в окружении {tabular} (в частности, допустимы команды \hline, \cline и \multicolumn). Разница с окружением {array} в том, что получаемая при этом таблица может занимать несколько страниц и иметь произвольную длину.

Опишем теперь некоторые особенности окружения {longtable}, связанные с разбиением на страницы.

Во-первых, после первого запуска LaTeX'а колонки таблицы, определенной как {longtable}, могут оказаться невыровненными (это связано с тем, что при первом проходе LaTeX читает такую таблицу не целиком, а по кускам, и выравнивает эти куски независимо друг от друга). Чтобы добиться выравнивания, надо запустить LaTeX еще раз-другой (если есть необходимость в повторном запуске, об этом будет выдано предупреждение).

Во-вторых, вы имеете возможность сделать так, чтобы заголовок таблицы повторялся на каждой новой странице, на которой таблица продолжается. Для этого надо оформить заголовок в виде строки или группы строк (и/или команд \hline), и при этом последнюю из этих строк надо завершить не командой \\, а командой \endhead. Обычно, впрочем, повторяющийся заголовок не идентичен тому, который ставят в самом начале таблицы. Отдельный заголовок для начала таблицы также оформляют в виде одной или нескольких строк, последняя из которых завершается командой \endfirsthead. Кроме того, можно предусмотреть специальную группу строк, которая будет ставиться на каждой странице внизу таблицы — для этого надо записать строку или группу строк, завершив последнюю из них не командой \\, как обычно, а командой \endfoot.


Содержание  Назад  Вперед