layout
Страница в документе LaTeX состоит из трех частей: верхнего колонтитула, тела страницы и нижнего колонтитула. В тело страницы входит все, что расположено между колонтитулами: сам текст, сноски, заметки на полях (маргиналии). Размеры всех частей страницы и вид колонтитулов определяются классом документа. При двусторонней печати (twocolumn
) страницы делятся на левые и правые, а при односторонней все страницы считаются правыми. Правые страницы имеют нечетные номера (odd), левые — четные (even).
Параметров, определяющих значения полей страницы, в LaTeX довольно много. Увидеть их, и узнать текущие значения можно с помощью пакета layout:
\documentclass{article}
\usepackage{layout}
\begin{document}
\layout
\end{document}
Изменим, к примеру, параметр \topmargin
\setlength{\topmargin}{10pt}
и layout немедленно пересчитает его значение:
Для изменения параметров страницы можно воспользоваться также пакетом geometry .
showframe
Макет страницы, приводимый layout, располагается в области, отведенной в документе под текст, т.е. представляет собой уменьшенное изображение страницы. Увидеть реальные границы текста и колонтитулов в текущем документе можно с помощью пакета showframe :
\documentclass{article}
\usepackage{showframe}
\usepackage{lipsum}
\begin{document}
\lipsum[1-5]
\end{document}
Если нужно показать поля только на одной странице документа, то в преамбуле следует указать:
\usepackage[noframe]{showframe}
а на нужной странице:
\AddToShipoutPicture*{\ShowFramePicture}
geometry
Поля документа может показать и пакет geometry с опцией showframe
\usepackage[showframe,pass]{geometry}
Опция pass
отменяет все другие опции пакета, кроме showframe
и verbose
. Здесь она используется затем, чтобы geometry не изменял значения полей документа, а только отображал существующие.
pagegrid
Отобразить сетку в качестве подложки страницы можно с помощью пакета pagegrid :
\documentclass{article}
\usepackage[step=1cm]{pagegrid}
\usepackage{showframe}
\usepackage{lipsum}
\begin{document}
\lipsum[1-5]
\end{document}
В следующем примере отображается фоновая сетка с шагом step=10mm
и началом отсчёта в верхнем левом углу страницы (top-left
):
\documentclass{article}
\usepackage[step=10mm,firstcolor=gray,arrows=false,top-left]{pagegrid}
\usepackage{lipsum}
\begin{document}
\lipsum[1-5]
\end{document}
typogrid
Пакет typogrid позволяет строить сетку, состоящую из вертикальных линий, которые разделяют страницу на колонки. Это бывает удобно при установке горизонтальных расстояний.
Сетка отображается при установленной опции draft
(c заданной по умолчанию опцией final
сетка не отображается). Можно управлять отображением колонок в заголовках (headings
) и на полях (margin
) документа. Число колонок задаётся опцией columns
.
\documentclass{article}
\usepackage[draft,columns=4,headings=false, margin=false]{typogrid}
\usepackage{lipsum}
\begin{document}
\lipsum[1-5]
\end{document}
layouts
Кроме указанных выше пакетов существует пакет layouts, способный выдать массу информации о параметрах, определяющих внешний вид документа, в частности, о параметрах абзацев, заголовков, списков, сносок, оглавления и т. п. В том числе он может сделать это в графическом виде, подобно layout.
На первый взгляд идея использовать такой универсальный пакет для моделирования внешнего вида документа выглядит привлекательно, но: 1) layouts уже много лет не обновляется; 2) использовать его сложнее чем узкоспециализированные пакеты.
layouts может пригодиться для вывода значений переменных TeX в заданных единицах измерения. Дело в том, что встроенная команда \the
выводит значение переменной в пунктах (pt). Например, если попросить вывести в готовом документе значение ширины текста (\textwidth
):
The width of text is \the\textwidth.
то, после трансляции документа, получим нечто вроде
(у вас может быть другое значение \textwidth
).
В layouts существуют функция \prntlen
, которая выводит значение переменной, и функция \printinunitsof
, позволяющая указывать единицы измерения, в которых это значение будет выводиться:
The width of text is \printinunitsof{mm}\prntlen{\textwidth}.
Но, как говорится, это уже совсем другая история.
Комментарии
comments powered by Disqus