Date Редакция Категория comp Теги LaTeX

layout

Страница в документе LaTeX состоит из трех частей: верхнего колонтитула, тела страницы и нижнего колонтитула. В тело страницы входит все, что расположено между колонтитулами: сам текст, сноски, заметки на полях (маргиналии). Размеры всех частей страницы и вид колонтитулов определяются классом документа. При двусторонней печати (twocolumn) страницы делятся на левые и правые, а при односторонней все страницы считаются правыми. Правые страницы имеют нечетные номера (odd), левые — четные (even).

Параметров, определяющих значения полей страницы, в LaTeX довольно много. Увидеть их, и узнать текущие значения можно с помощью пакета layout:

\documentclass{article}
\usepackage{layout}

\begin{document}
 \layout
\end{document}

layout0.png

Изменим, к примеру, параметр \topmargin

\setlength{\topmargin}{10pt}

и layout немедленно пересчитает его значение:

layout1.png

Для изменения параметров страницы можно воспользоваться также пакетом geometry .

showframe

Макет страницы, приводимый layout, располагается в области, отведенной в документе под текст, т.е. представляет собой уменьшенное изображение страницы. Увидеть реальные границы текста и колонтитулов в текущем документе можно с помощью пакета showframe :

\documentclass{article}
\usepackage{showframe}
\usepackage{lipsum}

\begin{document}
 \lipsum[1-5]
\end{document}

layout2.png

Если нужно показать поля только на одной странице документа, то в преамбуле следует указать:

\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}

layout3.png

В следующем примере отображается фоновая сетка с шагом 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}

layout4.png

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}

layout5.png

layouts

Кроме указанных выше пакетов существует пакет layouts, способный выдать массу информации о параметрах, определяющих внешний вид документа, в частности, о параметрах абзацев, заголовков, списков, сносок, оглавления и т. п. В том числе он может сделать это в графическом виде, подобно layout.

На первый взгляд идея использовать такой универсальный пакет для моделирования внешнего вида документа выглядит привлекательно, но: 1) layouts уже много лет не обновляется; 2) использовать его сложнее чем узкоспециализированные пакеты.

layouts может пригодиться для вывода значений переменных TeX в заданных единицах измерения. Дело в том, что встроенная команда \the выводит значение переменной в пунктах (pt). Например, если попросить вывести в готовом документе значение ширины текста (\textwidth):

The width of text is \the\textwidth.

то, после трансляции документа, получим нечто вроде

the.png

(у вас может быть другое значение \textwidth).

В layouts существуют функция \prntlen, которая выводит значение переменной, и функция \printinunitsof, позволяющая указывать единицы измерения, в которых это значение будет выводиться:

The width of text is \printinunitsof{mm}\prntlen{\textwidth}.

prntlen.png

Но, как говорится, это уже совсем другая история.



Комментарии

comments powered by Disqus