Оформление текста в целом
В этой лекции мы рассмотрим такие вопросы, как общий стиль оформления документа, разбиение текста на разделы, титульный лист, оглавление и пр. Система LaTeX освобождает вас от многих забот об оформлении документа, но при этом и навязывает такие черты оформления, которые могут вас по тем или иным причинам не устраивать. От этого "диктата" можно отчасти отойти, если модифицировать стандартные классы, создав свой стилевой пакет (в последней лекции мы расскажем, как это делать). В принципе можно создать и свой собственный класс, весьма далекий от стандартных, но для этого требуются более глубокие познания в TeX'е, чем дает эта книга. Начнем же мы с того, что систематически рассмотрим вопрос о стандартных классах.
Классы, пакеты и классовые опции
Команда \documentclass, с которой начинается любой LaTeX'овский файл, имеет один обязательный аргумент — название основного класса — и один необязательный, размещающийся перед обязательным, — список, через запятую, "классовых опций" .
Прежде чем говорить о классах документов, скажем несколько слов о команде, которая очень часто идет сразу после \documentclass, а именно, команде \usepackage. После \documentclass может идти одна или несколько команд \usepackage ; аргумент этой команды — это список, через запятую, стилевых пакетов, подключаемых к нашему документу. В первой лекции мы умолчали о том, что некоторые стилевые пакеты допускают задание своих личных стилевых опций (каких именно — зависит от пакета). Список стилевых опций пакета задается в необязательном аргументе команды \usepackage (через запятую, если опций несколько). Необязательный аргумент команды \usepackage ставится перед обязательным.
Например, если включить в преамбулу строку
\usepackage{amsmath}
то вам откроются дополнительные возможности набора математических формул, о которых мы много рассказывали во "Как набирать формулы" ; если же написать
\usepackage[noamsfonts]{amsmath}
то у вас будут все эти возможности, кроме использования готического и ажурного шрифтов.
Некоторые стилевые пакеты в своей работе, кроме того, учитывают "классовые опции" (это то, что указывается в необязательном аргументе команды \documentclass — см. ниже).
Теперь вернемся к классам документов. В "Элементарное введение" мы уже перечислили пять классов, предоставляемых LaTeX'ом: article, report, book, proc и letter. Сейчас мы рассмотрим подробнее четыре из них. Класс letter рассматривается ниже, в разд."Письма". (Американское математическое общество распространяет также, вместе со своими стилевыми пакетами, классы документов amsart, amsproc и amsbook ; мы рассмотрим их в приложении Г.
Класс article удобно применять для статей, класс report — для более крупных статей, разбитых на главы, или небольших книг, класс book — для книг. В табл. 4.1 перечислены некоторые черты оформления, присущие стандартным классам. В ней знак означает "всегда присутствует", знак означает "всегда отсутствует", знак означает "по умолчанию отсутствует, но будет присутствовать, если задать классовую опцию или специальную команду", знак означает "по умолчанию присутствует, но можно отменить с помощью классовой опции или специальной команды".
article | report | book | proc | |
---|---|---|---|---|
Автоматически нумерующиеся разделы | ||||
Разбиение на главы | ||||
" Двусторонняя" печать | ||||
Титульный лист | ||||
Колонтитулы | ||||
Одинаковая высота всех страниц | ||||
Набор в две колонки | ||||
Набор в одну колонку |
Мы не стремились охватить в этой таблице все детали различий между стандартными классами (например, колонтитулы в разных классах оформляются по-разному).
Опишем теперь классовые опции. Напомним , что список классовых опций через запятую ставится в квадратных скобках перед основным аргументом команды \documentclass. Самые часто употребляемые классовые опции — это 11pt и 12pt. Они означают, что основной текст документа будет набран шрифтом кегля 11 или 12 соответственно. Если этих опций не указывать, то будет шрифт кегля 10.
Можно указать классовую опцию, задающую формат используемой бумаги, после чего TeX рассчитает размеры текста и полей так, чтобы они максимально соответствовали этому формату. Эти опции таковы (единица измерения указана в скобках):
- a4paper- (миллиметры) — самый ходовой в нашей стране;
- a5paper - (миллиметры);
- b5paper - (миллиметры);
- legalpaper - (дюймы);
- executivepaper - (дюймы).
Если ни одна из этих опций не указана, LaTeX считает, что размер бумаги равен (в дюймах) (этот формат бумаги иногда называют "letter").
Если предполагается расположить текст так, чтобы он шел параллельно широкому, а не узкому краю бумаги, то можно указать опцию landscape: в этом случае TeX будет вычислять размеры текста и полей, считая, что ширина и высота листа бумаги поменялись ролями. Подчеркнем, что задание опции landscape само по себе текст на не повернет: он будет сверстан TeX'ом исходя из соответствующих размеров, но дальше необходимо иметь принтер и/или dvi-драйвер, способные обеспечить печать текста в такой ориентации. По умолчанию же считается, что строки параллельны узкому краю листа.
Опция twoside задает печать с разными полями на нечетных и четных страницах (как в книгах), а опция oneside — печать с одинаковыми полями на всех страницах. В классе book по умолчанию установлена опция twoside, в классах article и report — oneside, в классе proc поля на четных и нечетных страницах всегда одинаковые.
Для классов article, report и book можно указать классовую опцию twocolumn. Она означает, что набор текста будет производиться в две колонки. Так как абзацы при этом будут получаться довольно узкие, разумно при пользовании этой опцией заодно увеличить параметр \tolerance, иначе будет получаться много строк, выбивающихся за колонку. В разд. "Набор в две колонки" объяснялось, как сделать так, чтобы две колонки отделялись линейкой. В классе proc набор всегда производится в две колонки, и опции twocolumn и onecolumn (есть и такая) на него не действуют.
Опция draft пригодна для любого класса. Если она включена, то каждая выбивающаяся на поля строка (т.е. строка, о которой выдается сообщение "Overfull \hbox " —) помечается на полях "марашкой". Это удобно при подготовке корректур (английское слово draft как раз и означает "набросок").
Режим, при котором разные страницы могут иметь разную высоту, задается, как мы помним, командой \raggedbottom. По умолчанию этот режим устанавливается классами article и report, если только в качестве классовой опции не указана "двусторонняя" печать (классовая опция twoside ), а также классом proc. Во всех остальных случаях LaTeX будет, по умолчанию, делать все страницы одинаковой высоты.
У классов report и book имеются опции openright и openany. Если указана опция openright, то каждая глава начинается обязательно с нечетной страницы (если необходимо, то ради этого печатается дополнительная пустая страница; на развороте нечетная страница будет правой). Если указана опция openany, то новая глава может начинаться как с четной, так и с нечетной страницы, и лишних пустых страниц ради начала главы LaTeX не делает. По умолчанию в классе report LaTeX действует так, как если бы было установлено openany, а в классе book — как если бы было openright.
Скажем кое-что про класс документов proc. В этом классе текст печатается в две колонки, с уменьшенными полями. Опции a5paper, b5paper, onecolumn и titlepage в классе proc использовать нельзя. Нельзя также пользоваться маргиналиями (разд. 10).
При пользовании классом proc внизу каждой страницы будет напечатано слово Page (" страница") и номер страницы. Если вы хотите, чтобы вместо Page печаталось что-то другое, скажем, "с.", то нужно в преамбуле переопределить команду \pagename, то есть написать:
\renewcommand{\pagename}{с.}
переопределение "стандартных надписей", делаемых LaTeX'ом по-английски; \renewcommand обсуждается в "Создание новых команд" ).
Следующие две классовые опции, применимые к любому из основных классов, влияют на оформление выключных математических формул; если вы пропустили при чтении соответствующие места в "Как набирать формулы" , то пропустите и это место. Опция fleqn означает, что выключные формулы, заданные с помощью окружений {equation}, {eqnarray} и {displaymath}, а также пары команд \[ и \], будут напечатаны не в центре строки, а в ее левой части. Опция leqno означает, что номера формул, генерируемые окружениями {equation} и {eqnarray}, будут печататься не справа, а слева.
Титульному листу и оформлению частей документа будут посвящены отдельные разделы; чтобы завершить наш обзор различных стандартных вариантов стиля, нам осталось обсудить колонтитулы и номера страниц, чему будет посвящен разд.3.