Колонтитулы и нумерация страниц
Урок про оформление страницы: колонтитулы, нумерацию и стили подвала/шапки.
Колонтитул — служебная строка вверху (header) или внизу (footer) страницы: номер страницы, название главы, ваше имя.
В дипломе и книге сверху или снизу страницы обычно стоят номер, название главы или раздела. LaTeX управляет этим через «стиль страницы», а гибкую настройку даёт пакет fancyhdr.
Встроенные стили страницы
| Стиль | Что показывает |
plain | номер страницы внизу по центру (по умолчанию у article) |
empty | ничего — пустые колонтитулы |
headings | название раздела/главы и номер сверху |
\pagestyle{headings} % на весь документ
\thispagestyle{empty} % только на текущей страницеКоманда \thispagestyle{empty} часто стоит на титульном листе, чтобы убрать с него номер.
Гибкие колонтитулы: fancyhdr
Пакет fancyhdr позволяет задать содержимое шести зон: слева/центр/справа в шапке и в подвале:
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{} % очистить всё
\fancyhead[L]{\leftmark} % слева сверху — глава
\fancyhead[R]{\thepage} % справа сверху — номер
\fancyfoot[C]{Дипломная работа} % внизу по центру — текстЗоны кодируются буквами: L (left), C (center), R (right). Команда \thepage печатает текущий номер страницы, \leftmark — название текущей главы.
Управление нумерацией
Стиль самих номеров задаёт \pagenumbering: arabic (1, 2, 3), roman (i, ii, iii), Roman (I, II), alph (a, b). В книгах введение часто нумеруют римскими, а основную часть — арабскими, начиная заново:
\pagenumbering{roman} % введение: i, ii, iii
...
\pagenumbering{arabic} % основная часть: 1, 2, 3
\setcounter{page}{1} % сбросить счётчикКак работает под капотом
Стиль страницы — это набор макросов, которые LaTeX вызывает при наборе каждой страницы, чтобы напечатать шапку и подвал. fancyhdr подменяет эти макросы своими, читающими содержимое зон, которые вы задали. \leftmark и \rightmark хранят «отметки» — названия текущей главы и раздела, которые команды разделов обновляют автоматически по ходу набора. Номер страницы — это значение счётчика page, печатаемое командой \thepage в выбранном формате нумерации.
leftmark, rightmark и линейка под шапкой
Пара \leftmark и \rightmark — основа «бегущих» колонтитулов в книгах. В классе book с двусторонней печатью \leftmark обычно содержит название текущей главы (его подставляет команда \chapter), а \rightmark — название текущего раздела (его подставляет \section). По умолчанию они приходят в верхнем регистре; чтобы вернуть обычный, главу переопределяют через \renewcommand{\chaptermark}. За горизонтальную линейку под шапкой отвечает длина \headrulewidth: команда \renewcommand{\headrulewidth}{0.4pt} делает её тоньше, а 0pt — убирает совсем. Аналогичная \footrulewidth по умолчанию равна нулю и включает линейку над подвалом, если её задать.
Стиль plain на «особых» страницах
Есть тонкость, которая ставит в тупик многих: на первой странице каждой главы (а также на странице с \maketitle и началом оглавления) LaTeX принудительно применяет стиль plain — то есть ваши красивые колонтитулы fancyhdr там пропадают, и внизу по центру оказывается одинокий номер. Это поведение «вшито» в команды \chapter. Чтобы оформить и эти страницы по-своему, fancyhdr даёт переопределяемый стиль: \fancypagestyle{plain}{...} — внутри блока вы заново описываете зоны именно для plain-страниц. Без этого приёма колонтитулы на страницах начала глав будут выглядеть иначе, чем на всех остальных, и это сразу бросается в глаза в готовом дипломе.
Раздельная нумерация частей работы
Команда \pagenumbering не только меняет формат номеров, но и сбрасывает счётчик страниц в единицу. На этом построена типичная для книг и диссертаций схема: титульный лист, оглавление и введение нумеруют римскими цифрами (\pagenumbering{roman}), а перед основной частью переключаются на арабские (\pagenumbering{arabic}) — и счёт автоматически начинается заново с единицы. Поэтому отдельный \setcounter{page}{1} при смене формата чаще всего избыточен: достаточно самого вызова \pagenumbering. Явный \setcounter нужен в более редком случае — когда формат не меняется, но номер всё же требуется задать вручную, например продолжить нумерацию приложения с конкретной страницы.
Частые ошибки
- Настроить fancyhdr, но не включить
\pagestyle{fancy}— изменения не видны. - Забыть
\fancyhf{}— останутся стандартные колонтитулы поверх ваших. - Сменить нумерацию без
\setcounter{page}{1}— римская и арабская продолжат общий счёт.
Итоги
- Встроенные стили:
plain,empty,headings; для одной страницы —\thispagestyle. fancyhdrзадаёт шесть зон колонтитулов (L/C/R сверху и снизу).\pagenumberingменяет формат номеров; счётчик можно сбросить.