next up previous
Next: 2. Верстка текста Up: No Title Previous: No Title

Подсекция

1. Это нужно знать

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

1.1 Названия

1.1.1 TEX

TEX -- это компьютерная программа, созданная Дональдом Кнутом ( Donald E. Knuth) [2]. Она предназначена для верстки текста и математических формул. Кнут начал писать TEX в 1977 году из-за расстройства от того, что Американское Математическое Общество делало с его статьями в процессе их публикации. Где-то в 1974 году он даже прекратил посылать статьи: <<просто мне было слишком больно смотреть на конечный результат>>. TEX, в том виде, в каком мы его сегодня используем, был выпущен в 1982 году и слегка улучшен с годами. Последние несколько лет TEX стал чрезвычайно стабилен. Кнут утверждает, что в нем практически нет ошибок. Номер версии TEX сходится к $\pi$ и сейчас равен 3.14159.

TEX произносится как <<тех>>. В среде ASCII TEX нужно писать как TeX.

1.1.2 LATEX

LATEX -- макропакет, позволяющий авторам верстать и печатать их работы с высоким типографским качеством, при помощи заранее определенных, профессиональных макетов. LATEX был написан  Leslie Lamport [1]. В качестве механизма для верстки он использует TEX.


  
Рис.: Компоненты системы TEX
\begin{figure}\noindent
\setlength{\unitlength}{3.8ex}
\begin{picture}
(14,15....
...{\Eng Typesetting}}
\put(12.4,-1.75){\vector(1, 0){1}}
\end{picture}\end{figure}

Позже LATEX был обновлен командой  LATEX3 во главе с  Frank Mittelbach. В нем были сделаны некоторые давно ожидавшиеся улучшения, и вновь объединены все варианты LATEX, разошедшиеся с выпуска много лет назад  версии LATEX 2.09. Чтобы не путать эту новую версию со старой, она называется  LATEX2e. Эта документация описывает именно LATEX2e.

LATEX произносится как <<лэйтех>> или как <<латех>>. Если вы ссылаетесь на LATEX в ASCII окружении, пишите LaTeX. LATEX2e пишется как LaTeX2e.

Рисунок показывает, как работают вместе TEX и LATEX2e. Он взят из wots.tex Kees van der Laan.

1.2 Основы

1.2.1 Автор, дизайнер и верстальщик

Для того, чтобы опубликоваться, авторы отдают свои рукописи в издательство. Затем дизайнер издательства определяет макет документа (ширину столбцов, шрифты, интервалы выше и ниже заголовков и т.п.). Дизайнер записывает свои инструкции в рукописи и отдает ее верстальщику, который верстает книгу в соответствии с этими инструкциями.

Дизайнер-человек пытается понять, что автор имел в виду, когда писал свою рукопись. Он определяет заголовки глав, цитаты, примеры, формулы и прочее, исходя из своего профессионального опыта и из содержания рукописи.

В среде LATEX, LATEX берет на себя роль дизайнера книги, используя TEX в качестве верстальщика. Но LATEX -- это всего лишь программа, и, следовательно, нуждается в более четких инструкциях. Автор должен предоставить дополнительную информацию, описывающую логическую структуру своей работы. Эта информация записывается в текст в виде <<команд LATEX>>.

Это в корне отличается от WYSIWYG1 подхода, принятого в большинстве современных текстовых процессоров, таких как MS Word или Corel WordPerfect. В этих приложениях авторы форматируют документ интерактивно в процессе набора текста на компьютере. В процессе работы они могут видеть на экране как будет выглядеть их работа, когда, в конце концов, она будет напечатана.

При использовании LATEX обычно невозможно увидеть итоговую картину во время печатания текста. Ее, однако, можно посмотреть на экране после обработки файла LATEX. Затем можно внести исправления перед собственно печатью.

1.2.2 Дизайн макета

Типографский дизайн -- это профессия. Неопытные авторы часто допускают серьезные ошибки форматирования, предполагая, что дизайн книги -- это большей частью вопрос эстетики: <<если документ выглядит художественно, значит, он хорошо отдизайнен>>. Но, так как документ предназначен для чтения, а не для вывешивания в картинной галерее, удобство его чтения и понимания гораздо более важны, нежели красота. Например:

С WYSIWYG системами авторы часто производят эстетически приятные документы со слабо выраженной или невыдержанной структурой. LATEX предотвращает такие ошибки форматирования, заставляя автора объявлять логическую структуру его документа. Затем уже LATEX выбирает наиболее подходящий макет (раскладку) документа.

1.2.3 Преимущества и недостатки

Тема, часто обсуждаемая, когда люди из мира WYSIWYG встречаются с пользователями LATEX, -- <<преимущества LATEX перед нормальными текстовыми процессорами>>, или наоборот. Лучшее, что вы можете сделать, когда начинается такая дискуссия, -- это пригнуться, так как она часто выходит из-под контроля. Однако, иногда вы не можете уклониться ...


Вот вам некоторое оружие. Основные преимущества LATEX перед обычными текстовыми процессорами:


LATEX имеет также и некоторые недостатки, но, кажется, мне трудно найти среди них заметные, хотя, я уверен, другие вам найдут их сотни ;-)

1.3 Исходные файлы LATEX

Исходными данными для LATEX являются обычный текстовый файл в ASCII. Его можно создать в любом текстовом редакторе. Он содержит текст документа вместе с командами, указывающими LATEX, как верстать текст.

1.3.1 Пробелы

<<Пустые>> символы, такие, как пробел или табуляция, трактуются LATEX одинаково, как <<пробел>>. Несколько последовательных пустых символов  трактуются как один <<пробел>>. Пустые символы в начале строки обычно игнорируются, а единичный перевод строки воспринимается как <<пробел>>.  

Пустая строка между двух строк текста определяет конец абзаца. Несколько пустых строк трактуются так же, как одна пустая строка. Ниже приведен пример. Сверху -- текст из входного файла, снизу -- форматированный вывод.


Неважно, вставляете ли вы 
один   или    несколько
пробелов между словами.

Пустая строчка начинает 
новый абзац.



Неважно, вставляете ли вы
один или несколько
пробелов между словами.

Пустая строчка начинает
новый абзац.

1.3.2 Спецсимволы

Следующие символы являются   зарезервированными символами, которые либо имеют в LATEX специальное значение, либо имеются не во всех шрифтах. Если вы введете их в текст напрямую, то они обычно не напечатаются, а заставят LATEX сделать что-нибудь, вами вовсе не предусмотренное.

$ & % # _ { } ~ ^ \

Как вы позже увидите, эти символы можно использовать в ваших документах, добавляя к ним префикс <<\>>:


\$ \& \% \# \_ \{ \}

$ & % # _ { }

Прочие символы, как и многие, многие другие, можно набрать специальными командами в математических формулах или как акценты. Знак <<\>> нельзя вводить, добавляя перед ним еще один, так как эта команда (\\) используется для разрыва строки3.

1.3.3 Команды LATEX

Команды  LATEX чувствительны к регистру и принимают одну из следующих двух форм:

LATEX игнорирует пробелы после команд. Если вы хотите получить  пробел после команды, вы должны поместить или <<{}>> и пробел, или специальную команду пробела после имени команды. <<{}>> не дает LATEX игнорировать все пробелы после имени команды.


Я слышал, что Кнут разделяет
людей, работающих с \TeX{}
на \TeX{}ников и \TeX пертов.\\
Сегодня~--- \today



Я слышал, что Кнут разделяет людей, работающих с TEX на TEXников и TEXпертов.
Сегодня -- Ноябрь 27, 1998

Некоторые команды нуждаются в  параметре, который должен быть задан между  фигурными скобками <<{ }>> после имени команды. Некоторые команды поддерживают необязательные параметры, которые добавляются после имени команды в  квадратных скобках <<[ ]>>. Следующий пример использует некоторые команды LATEX. Не задумывайтесь над ними, они будут разъяснены позже.

Вы можете \textsl{положиться} 
на меня!

Вы можете положиться на меня!

Пожалуйста, начните новую 
строчку прямо тут!\newline
Спасибо!

Пожалуйста, начните новую строчку прямо тут!
Спасибо!

   
1.3.4 Комментарии

Когда в процессе обработки входного файла LATEX встречает символ %, он игнорирует остаток текущей строки. Это полезно для добавления в исходный файл замечаний, которые не будут выводиться на печать.

Это % глупый
% Лучше: поучительный <----
пример.

Это пример.

1.4 Структура входного файла

Когда LATEX2e обрабатывает входной файл, он ожидает от него следования определенной  структуре. Так, каждый входной файл должен начитаться с команды

\documentclass{...}

Она указывает, документ какого типа вы собираетесь писать. После этого, вы можете включать команды, влияющие на стиль документа в целом, или загружать  пакеты, добавляющие новые возможности в систему LATEX. Для загрузки такого пакета используется команда

\usepackage{...}

Когда вся настройка закончена 4, вы начинаете тело текста командой

\begin{document}

Теперь вы вводите текст с командами LATEX. В конце документа вы добавляете команду \end{document} Все, что следует после нее, LATEX игнорирует.

Рис. ниже показывает содержимое минимального файла для LATEX2e. Несколько более сложный входной файл дан на следующем рис.5.

Минимальный файл LATEX  
\documentclass{article}
\usepackage[russian]{babel}
\begin{document}
Краткость~--- сестра таланта.
\end{document}

Пример реалистичной журнальной статьи  
\documentclass[a4paper,11pt]{article}
\usepackage{latexsym}
\usepackage[russian]{babel}
\begin{document}
\author{Б.~Тоботрас}
\title{Минимализм}
\frenchspacing
\begin{document}
\maketitle
\tableofcontents
\subsection{Начало}
Вот тут и начинается моя замечательная статья.
\subsection{Конец}
\ldots{} а тут она кончается.
\end{document}

1.5 Макеты документов

  
1.5.1 Классы документов

Первое, что LATEX должен знать при обработке входного файла, это тип создаваемого автором документа. Он задается командой $\backslash$documentclass.

$\backslash$documentclass[опции]{класс}

Здесь класс определяет тип создаваемого документа. Таблица перечисляет классы документов, рассматриваемые в этом введении. В состав LATEX2e входят дополнительные классы для других документов, включая письма и слайды. Параметр опции изменяет поведение класса документа. Опции должны разделяться запятыми. В таблице перечислены самые употребительные опции стандартных классов документов.

Классы документов 

article
для статей в научных журналах, презентаций, коротких отчетов, программной документации, приглашений...  
report
для более длинных отчетов, содержащих несколько глав, небольших книжек, диссертаций...  
book
для настоящих книг  
slides
для слайдов. Использует большие буквы без засечек. Вместо этого можно использовать FoilTEX6.   

Опции классов документов  
10pt, 11pt, 12pt
     Устанавливает размер основного шрифта документа. Если ни одна из этих опций не указана, подразумевается 10pt.   
a4paper, letterpaper...
     Определяет размер листа. По умолчанию подразумевается letterpaper. Так же могут быть указаны a5paper, b5paper, executivepaper и legalpaper.          

fleqn
    Выключные формулы будут выравнены влево, а не отцентрированы.

leqno
    Формулы нумеруются слева, а не справа.
titlepage, notitlepage
     Указывает, должна начинаться новая страница после заголовка документа  или нет. По умолчанию класс article не начинает новую страницу, а report и book -- начинают.  

twocolumn
    Заставляет LATEX набирать документ в два столбца.
twoside, oneside
    Выбирает одно- или двусторонний вывод. По умолчанию классы article и report используют односторонний вывод, класс book -- двусторонний вывод.

openright, openany
    Делает главы начинающимися или только на правой странице, или на первой доступной. Это не работает с классом article, так как он ничего не знает о главах. Класс report по умолчанию начинает главы на следующей странице, а класс book -- на правой.

Пример: Входной файл для документа LATEX может начинаться строкой

$\backslash$documentclass[11pt,twoside,a4paper]{article}

она заставляет LATEX набирать документ как статью, с базовым размером шрифта одиннадцать пунктов и форматировать документ для двусторонней печати на бумаге формата A4.

   
1.5.2 Пакеты

В процессе написания вашего документа, вы, вероятно, обнаружите, что в некоторых областях базовый LATEX не сможет решить ваши проблемы. Если вы захотите включить в документ графику , цветной текст или исходный код программы из внешнего файла, вам нужно будет расширить возможности LATEX. Такие расширения называются пакетами. Пакеты активизируются командой

$\backslash$usepackage[опции]{пакет}

Где пакет -- это имя пакета, а опции -- список ключевых слов, включающих специальные свойства пакета. Некоторые пакеты включены в основную поставку LATEX2e (см. таблицу). Другие предоставляются отдельно. Дополнительная информация об установленных у вас пакетах может содержаться в [4]. Основной источник информации о LATEX -- это [3]. Она содержит описания сотен пакетов вместе с информацией о том, как писать ваши собственные расширения для LATEX2e.

Некоторые из распространяемых с LATEX пакетов
 
doc
Позволяет документировать программы на LATEX.
Описан в doc.dtx 7 и в [3].

exscale
Предоставляет масштабированные версии расширенных математических шрифтов.
Описан в ltexscale.dtx.
fontenc
Указывает, какую кодировку шрифта  должен использовать LATEX.
Описан в ltoutenc.dtx.
ifthen
Предоставляет команды вида `если ..., то выполнять ..., иначе выполнять ...'.
Описан в ifthen.dtx и в [3].
latexsym
Чтобы подключить шрифт специальных символов LATEX, нужно использовать пакет latexsym. Описан в latexsym.dtx и в [3].
makeidx
Предоставляет команды для генерации указателей. Описан в разделе и в [3].

syntonly
Обрабатывает документ, не печатая его.
Описан в syntonly.dtx и в [3]. Это удобно для быстрой проверки на ошибки.
inputenc
Позволяет указать входную кодировку, такую как ASCII, ISO Latin-1, ISO Latin-2, 437/850 IBM code pages, Apple Macintosh, Next, ANSI-Windows или определяемую пользователем. Описан в inputenc.dtx.

1.5.3 Стили страницы

LATEX поддерживает три предопределенных комбинации верхнего колонтитула и нижнего колонтитула   -- так называемые стили страницы. Параметр стиль команды         

$\backslash$pagestyle{стиль}

определяет, какой из них использовать. Предопределенные стили страницы перечислены в таблице ниже.

Предопределенные стили страницы LATEX  

plain
печатает номера страниц внизу страницы в середине нижнего колонтитула. Этот стиль установлен по умолчанию.

headings
печатает название текущей главы и номер страницы в верхнем колонтитуле каждой страницы, а нижний колонтитул остается пустым. (Этот стиль использован в данном документе.)

empty
делает и верхние, и нижние колонтитулы пустыми.

Возможно сменить стиль текущей страницы командой

$\backslash$thispagestyle{стиль}

В [3] включено описание того, как создавать ваши собственные колонтитулы.

1.6 Большие проекты

При работе с большими документами вам может быть удобно разделить входной файл на несколько частей. LATEX содержит две команды, которые помогают это делать.

$\backslash$include{файл}

Эту команду можно использовать в теле документа, чтобы включить в него содержимое другого файла. Заметьте, что LATEX начнет новую страницу, прежде, чем обрабатывать материал, содержащийся в файле.

Вторая команда может использоваться только в преамбуле. Она указывает LATEX читать только некоторые из включенных (\include) файлов.

$\backslash$includeonly{filename,filename ,...}

После выполнения в преамбуле документа этой команды будут выполняться только те команды $\backslash$include, чьи имена файлов перечислены в аргументе команды $\backslash$includeonly.

Команда $\backslash$include начинает верстку включаемого текста на новой странице. Это удобно при использовании $\backslash$includeonly, потому что границы страниц не будут двигаться, даже когда некоторые включаемые файлы пропускаются. Иногда это неудобно, и в этом случае вы можете использовать команду

$\backslash$input{filename}

Она просто включает содержимое указанного файла.


next up previous
Next: 2. Верстка текста Up: No Title Previous: No Title