Версия для печати

Архив документации на OpenNet.ru / Раздел "Обработка текста" (Многостраничная версия)

Не очень краткое введение в LATEX2e

Или LATEX2e за 84 минуты


Оригинал: xtalk.price.ru

by Tobias Oetiker
Hubert Partl, Irene Hyna and Elisabeth Schlegl
Version 3.1, 14. April, 1998
Перевод с анг.: Б. Тоботрас, 19 апреля 1998г.
Книга конвертирована из LaTeX-формата в HTML-формат
конвертором LaTeX2HTML.


Copyright ©1998 Tobias Oetiker and all the Contributers to LShort. All rights reserved. This document is free; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 


Не очень краткое введение в LATEX2e

Или LATEX2e за 84 минуты

by Tobias Oetiker
Hubert Partl, Irene Hyna and Elisabeth Schlegl
Version 3.1, 14. April, 1998
Перевод с анг.: Б. Тоботрас, 19 апреля 1998г.
Книга конвертирована из LaTeX-формата в HTML-формат
конвертором LaTeX2HTML.


Copyright ©1998 Tobias Oetiker and all the Contributers to LShort. All rights reserved. This document is free; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 


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
next up previous
Next: 3. Набор математических формул Up: No Title Previous: 1. Это нужно знать

Подсекция

2. Верстка текста

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

2.1 Разбиение на строки и страницы

2.1.1 Выровненные абзацы

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

В некоторых случаях может быть необходимо указать LATEX разорвать строку:

$\backslash\backslash$ или $\backslash$newline

начинают новую строку, не начиная нового абзаца.

$\backslash\backslash *$

запрещает, кроме того, разрыв страницы после вставленного разрыва строки.

$\backslash$newpage

начинает новую страницу.

$\backslash$linebreak[n], $\backslash$nolinebreak[n], $\backslash$pagebreak[n] и $\backslash$nopagebreak[n]

разрывают строку, запрещают разрыв строки, разрывают страницу и запрещают разрыв страницы, соответственно. Необязательный аргумент n позволяет автору влиять на их действие. Он может быть равен числу от нуля до четырех. Устанавливая n в значение, меньшее 4, вы оставляете LATEX возможность игнорировать вашу команду, если результат будет очень плох.

LATEX всегда пытается производить наилучшее из возможных разбиение строк. Если он не может найти способ разбить строки в соответствии со своими стандартами, он позволяет одной строке выступать из абзаца вправо. LATEX затем выводит диагностику (<<overfull hbox>>) во время обработки входного файла. Чаще всего это случается, когда LATEX не может найти место для переноса слова. Давая команду sloppy, вы можете сказать, чтобы LATEX несколько ослабил свои стандарты. Тогда он сможет предотвратить такие слишком длинные строки, увеличивая интервалы между словами -- даже, если конечный вывод будет не оптимален. В этом случае пользователь получит предупреждение (<<underfull hbox>>). В большинстве случаев результат выглядит не очень хорошо. Команда fussy действует в обратную сторону.

   
2.1.2 Переносы

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

Команда

$\backslash$hyphenation{список слов}

вызывает перенос слов, перечисленных в ее аргументе, только в местах, отмеченных <<->>. Эта команда должна даваться в преамбуле входного файла, и должна содержать только слова, состоящие из обычных букв. Регистр букв игнорируется. Следующий пример разрешает переносы в слове <<hyphenation>>, так же, как и в слове << Hyphenation>>, и запрещает переносы в словах <<FORTRAN>>, <<Fortran>> и <<fortran>>.

Пример:

\hyphenation{FORTRAN Hy-phen-a-tion}

Команда $\backslash$- вставляет в слово выборочный перенос. Он также становится единственной разрешенной точкой переноса в этом слове. Эта команда в особенности полезна для слов, содержащих специальные символы (например, символы с акцентами), потому что LATEX не переносит такие слова автоматически.

I think this is: su\-per\-cal\-%
i\-frag\-i\-lis\-tic\-ex\-pi\-%
al\-i\-do\-cious

I think this is: supercal ifragilisticexpi alidocious

Несколько слов можно удержать вместе на одной строке командой

$\backslash$mbox{текст}

Она будет в любом случае сохранять свой аргумент вместе.

Номер моего телефона скоро сменится.
Он будет \mbox{0116 291 2319}.

Параметр
\mbox{\emph{имя файла}} должен
содержать имя файла.

Номер моего телефона скоро сменится.
Он будет \mbox{0116 291 2319}.

Параметр имя файла должен содержать имя файла.

2.2 Специальные буквы и символы

2.2.1 Знаки кавычек

Для набора кавычек  вы не должны использовать знак " , как на пишущей машинке. При верстке существуют специальные знаки открывающей и закрывающей кавычек. В LATEX используйте два знака ` в качестве открывающей кавычки и два знака ' в качестве закрывающей.

``Пожалуйста, нажмите 
клавишу `x' ''

``Пожалуйста, нажмите клавишу `x' ''

2.2.2 Тире и дефисы

LATEX знает про четыре вида тире. Три из них вы можете получить различным числом последовательных знаков -. Четвертое на самом деле не тире вовсе, а математический знак минус:

         

мальчик-с-пальчик, X-лучи\\
страницы 13--67\\
да~--- или нет?\\
$0$, $1$ и $-1$

мальчик-с-пальчик, X-лучи
страницы 13-67
да -- или нет?
0, 1 и -1

Эти тире называются так: - дефис, - короткое тире, -- длинное тире и $-$ знак минуса.  

2.2.3 Многоточие ( ...)

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

$\backslash$ldots  

Не так ... а вот так:\\
Нью-Йорк, Токио, Будапешт, \ldots

Не так ... а вот так:
Нью-Йорк, Токио, Будапешт, ...

2.2.4 Лигатуры

Некоторые комбинации букв верстаются не просто набором разных букв друг за другом, а с использованием специальных символов8.

ff fi fl ffi...     вместо    ff fi fl ffi ...

Эти так называемые  лигатуры могут быть запрещены вставкой $\backslash$mbox{} между двумя соответствующими буквами. Это может быть необходимо для слов, образованных из двух частей.

  Не ``shelfful''\\
  а ``shelf\mbox{}ful''

Не ``shelfful''
а ``shelfful''

2.2.5 Акценты и специальные символы

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

Чтобы поместить знак акцента над буквами i или j, точки над ними должны быть удалены. Это достигается набором \i и \j.

  H\^otel, na\"\i ve, \'el\`eve,\\ 
  sm\o rrebr\o d, !`Se\~norita!,\\
  Sch\"onbrunner Schlo\ss{} 
  Stra\ss e

Акценты и специальные символы  

  \begin{figure}\centering\includegraphics[width=5in]{c1.ps}\end{figure}

         

   
2.3 Поддержка иностранных языков

Если вам нужно писать документы на отличных от английского языках, LATEX нужно применять различные правила переноса.

Для многих языков эти изменения достигаются использованием пакета babel (автор Johannes Braams). Для этого ваша система LATEX должна быть специально сконфигурирована. Ваш [4] может включать дополнительную информацию об этом.

Если ваша система уже соответствующим образом сконфигурирована, вы можете активизировать пакет babel добавлением команды

$\backslash$usepackage[язык]{babel}

после команды \documentclass. Какие языки поддерживает ваша система, также может быть указано в [4].

Для некоторых языков babel указывает также новые команды, упрощающие ввод специальных символов. Например, немецкий язык содержит множество диакритических знаков (äöü). С использованием babel вы можете вводить ö, печатая "o вместо \"o.

Некоторые компьютерные системы позволяют вам вводить специальные символы прямо с клавиатуры. LATEX может обрабатывать такие символы. Начиная с выпуска LATEX2e от декабря 1994г., поддержка нескольких входных кодировок является частью базовой поставки LATEX2e. Ознакомьтесь с пакетом inputenc. При использовании этого пакета вы должны понимать, что другие могут неправильно видеть ваши входные файлы на своем компьютере из-за использования другой кодировки. Например, немецкий акцент ä на IBM PC кодируется как 132, а на некоторых Unix системах, использующих ISO-LATIN 1, -- как 228. Поэтому используйте эту возможность с осторожностью.

Иной случай -- с кодировкой шрифта. Она определяет, в какой позиции в пределах шрифта TEX находится каждая буква. Оригинальный TEX шрифт Computer Modern содержит только 128 символов из старого 7-битного набора символов ASCII. Когда требуются акцентированные символы, TEX создает их, комбинируя нормальный символ с акцентом. Несмотря на то, что результирующая верстка выглядит прекрасно, этот подход не дает автоматическим переносам работать внутри слов, использующих акцентированные символы.

К счастью, большинство современных поставок TEX содержат копию шрифтов EC. Эти шрифты выглядят, как шрифты Computer Modern, но содержат специальные символы для большинства акцентированных букв, используемых в европейских языках. Используя эти шрифты, вы можете улучшить переносы в не-английских документах. Шрифты EC активизируются включением в преамбуле вашего документа пакета fontenc.

$\backslash$usepackage[T1]{fontenc}

Настоящие шрифты EC следуют кодировке T1. Отсюда -- опция команды $\backslash$usepackage.

2.4 Пробелы между словами

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

Любое исключение из этих предположений должно быть явно оговорено автором. Знак <<\>> перед пробелом дает в результате пробел, который не будет увеличен. Знак <<~>> дает пробел, который не может увеличиться и который, кроме того, запрещает разрыв строки. Команда \@ перед точкой указывает, что эта точка заканчивает предложение, несмотря на то, что стоит за буквой верхнего регистра.  

Mr.~Smith was happy to see her\\
cf.~Fig.~5\\
I like BASIC\@. What about you?

I like BASIC. What about you? Mr. Smith was happy to see her
cf. Fig. 5
I like BASIC. What about you?

Дополнительный пробел после точек можно запретить командой

$\backslash$frenchspacing

которая указывает LATEX не вставлять пробела после точки более, чем после обычных символов. Это обычно для языков, отличных от английского, за исключением библиографий. Если вы используете $\backslash$frenchspacing, команда \@ не нужна.

2.5 Заголовки, главы и разделы

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

Класс article включает следующие команды секционирования:

$\backslash$section{...} $\backslash$paragraph{...}
$\backslash$subsection{...} $\backslash$subparagraph{...}
$\backslash$subsubsection{...} $\backslash$appendix

В классах report и book вы можете использовать две дополнительные команды:

$\backslash$part{...} $\backslash$chapter{...}

Так как глав (chapters) в классе article нет, то статьи довольно легко добавлять в книгу в качестве глав. Интервалы между разделами, нумерация и размер шрифта заголовков устанавливаются LATEX автоматически.

Две из команд секционирования -- особенные:

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

$\backslash$tableofcontents

вставляет оглавление в то место, где она вызвана. Чтобы получить правильное оглавление, новый документ должен быть обработан LATEX дважды. В особых случаях может быть необходим и третий проход. Когда это потребуется, LATEX вас предупредит.

Все вышеперечисленные команды секционирования существуют также в вариантах со звездочкой. Такой вариант получается добавлением * к имени команды. Они генерируют заголовки разделов, которые не нумеруются и не включаются в оглавление. Например, команда \section{Справка} становится \section*{Справка}.

Обычно заголовки разделов появляются в оглавлении точно в том же виде, в каком они вводятся в тексте. Иногда это невозможно из-за того, что заголовок слишком длинен для оглавления. Элемент оглавления может в этом случае указываться необязательным аргументом перед собственно заголовком.

\chapter[Прочтите! Это замечательно]{Это~--- длинный,
длинный и очень нудный заголовок}

Титульный лист    документа в целом генерируется при помощи команды

$\backslash$maketitle

Его содержимое должно быть определено командами

$\backslash$title{...}, $\backslash$author{...} и $\backslash$date{...}

до момента вызова \maketitle. Аргумент команды $\backslash$authors может содержать несколько имен, разделенных командами $\backslash$and.

Пример некоторых из упомянутых команд может быть найден на иллюстрации.

Помимо описанных выше команд секционирования, LATEX2e вводит три дополнительных команды для использования с классом book.

$\backslash$frontmatter, $\backslash$mainmatter и $\backslash$backmatter Они полезны для деления вашей публикации. Команды изменяют заголовки глав и нумерацию страниц так, как это ожидается от книги.11

2.6 Перекрестные ссылки

В книгах, отчетах и статьях часто встречаются перекрестные ссылки на иллюстрации, таблицы и отдельные части текста. Для этого LATEX предоставляет следующие команды: $\backslash$label{метка}, $\backslash$ref{метка} и $\backslash$pageref{метка}

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

Ссылка на этот 
раздел~\label{sec:this} 
выглядит так: <<см. 
раздел~\ref{sec:this} на 
стр.~\pageref{sec:this}.>>

Ссылка на этот раздел   выглядит так: <<см. раздел 2.6 на стр. [*].>>

2.7 Сноски

Команда

$\backslash$footnote{текст сноски}

печатает сноску внизу текущей страницы.

  Пользователи \LaTeX{} 
  часто употребляют 
  сноски\footnote{%
    Это~--- сноска.}.

Пользователи LATEX часто употребляют сноски12.

2.8 Выделенные слова

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

$\backslash$emph{текст}

Ее аргументом является текст для выделения .

Если вы используете
\emph{выделение в уже 
выделенном тексте, то 
\LaTeX{} использует 
\emph{прямой} шрифт.}

Если вы используете выделение в уже выделенном тексте, то LATEX использует прямой шрифт.

   
2.9 Окружения

Для верстки специальных видов текста LATEX определяет множество  окружений для разных типов форматирования:

$\backslash$begin{название}     текст     $\backslash$end{название}

где название определяет окружение. Окружения можно вызывать внутри окружений, соблюдая порядок вызова и возврата:

\begin{aaa}...\begin{bbb}...\end{bbb}...\end{aaa}

В следующих разделах рассказывается обо всех важных окружениях.

2.9.1 Список, перечисление и описание

Окружение itemize подходит для простых списков, окружение enumerate -- для нумерованных списков, а окружение description -- для описаний.

\flushleft
\begin{enumerate}
\item Вы можете как угодно 
смешивать окружения списков: 
\begin{itemize}
\item Но это может смотреться 
глупо.
\item[-] С минусом.
\end{itemize}
\item Поэтому помните:
\begin{description}
\item[Глупые] вещи не станут
умнее от помещения в список.
\item[Умные] вещи, однако,
вполне можно представить 
списком.
\end{description}
\end{enumerate}

1.
Вы можете как угодно смешивать окружения списков:
  $\mbox{$\bullet$}$
Но это может смотреться глупо.
-
С минусом.
2.
Поэтому помните:
Глупые
вещи не станут умнее от помещения в список.
Умные
вещи, однако, вполне можно представить списком.

2.9.2 Выравнивание влево, вправо и по центру

Окружения flushleft и flushright форматируют абзацы, выровненные влево или вправо.  Окружение center дает центрированный текст. Если вы не используете $\backslash\backslash$ для указания разрывов строк, LATEX определит их автоматически.

\begin{flushleft}
  Этот текст\\ выровнен влево.
  \LaTeX{} не старается сделать 
  все строки одинаковой длины.
\end{flushleft}

Этот текст
выровнен влево. LATEX не старается сделать все строки одинаковой длины.

\begin{flushright}
  Этот текст\\ выровнен вправо.
  \LaTeX{} не старается сделать 
  все строки одинаковой длины.
\end{flushright}

Этот текст
выровнен вправо. LATEX не старается сделать все строки одинаковой длины.

\begin{center}
  В центре\\Земли
\end{center}

В центре
Земли

2.9.3 Цитаты и стихи

Окружение quote полезно для цитат, важных фраз и примеров.

Типографское правило для 
длины строки:
\begin{quote}
Никакая строка не должна
содержать больше 66~символов.

Вот почему \LaTeX{} делает
такими широкими поля страниц.
\end{quote}
Поэтому в газетах часто
применяют набор в 
несколько колонок.

Типографское правило для длины строки:

Никакая строка не должна содержать больше 66 символов.

Вот почему LATEX делает такими широкими поля страниц.

Поэтому в газетах часто применяют набор в несколько колонок.

Существуют еще два похожих окружения: quotation и verse. Окружение quotation полезно для более длинных цитат, охватывающих несколько абзацев, потому что оно начинает абзацы с красной строки. Окружение verse используют для стихов, где важны разрывы строк. Строки разделяются при помощи $\backslash\backslash$ в конце строки и пустой строки после каждой строфы.

Я знаю только одно английское 
стихотворение наизусть: про 
Шалтая-Болтая:
\begin{flushleft}
\begin{verse}
Humpty Dumpty sat on a wall:\\
Humpty Dumpty had a great fall.\\ 
All the King's horses and all
the King's men\\
Couldn't put Humpty together
again.
\end{verse}
\end{flushleft}

Я знаю только одно английское стихотворение наизусть: про Шалтая-Болтая:

Humpty Dumpty sat on a wall:
Humpty Dumpty had a great fall.
All the King's horses and all the King's men
Couldn't put Humpty together again.

2.9.4 Буквальное воспроизведение

Текст, заключенные между \begin{verbatim} и \end{verbatim} будет напрямую напечатан, как набранный на пишущей машинке, со всеми пробелами и возвратами каретки, без выполнения каких бы то ни было команд LATEX.

Внутри абзаца аналогичную функцию выполняет команда

$\backslash$verb+текст+

Здесь <<+>> -- это только пример символа-ограничителя. Вы может использовать любой символ, кроме букв, <<*>> или пробела. Многие примеры на LATEX в этом буклете набраны этой командой.

Команда \verb|\ldots| \ldots

Команда \ldots ...

begin{verbatim}
10 PRINT "HELLO WORLD ";
20 GOTO 10
end{verbatim}

10 PRINT "HELLO WORLD ";
20 GOTO 10

begin{verbatim*}
вариант   окружения
verbatim         со
звездочкой выделяет
пробелы   в  тексте
end{verbatim*}

вариант   окружения
verbatim         со
звездочкой выделяет
пробелы   в  тексте

Команду $\backslash$verb тоже можно использовать аналогичным образом со звездочкой:

\verb*|вот   так :-) |

вот так :-)

Окружение verbatim и команду \verb нельзя использовать внутри параметров других команд.

2.9.5 Таблицы

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

Аргумент спецификация команды

\begin{tabular}{спецификация}

определяет формат таблицы. Используйте l для столбца текста, выровненного влево, r для текста, выровненного вправо и c для центрированного текста, p{ширина} для столбца, содержащего выровненный текст с переносом строк, и | для вертикальной линии. Внутри окружения tabular знак <<&>> переходит к следующему столбцу, команда  $\backslash\backslash$ начинает новую строку, а $\backslash$hline вставляет горизонтальную линию.  

\begin{tabular}{|r|l|}
\hline
54 & шестнадцатеричное \\
124 & восьмеричное \\
1010100 & двоичное \\
\hline \hline
84 & десятичное \\
\hline
\end{tabular}

54 шестнадцатеричное
124 восьмеричное
1010100 двоичное
84 десятичное

\begin{tabular}{|p{4.7cm}|}
\hline
Добро пожаловать в абзац в 
рамочке. Надеемся, вам всем
тут понравится.\\
\hline 
\end{tabular}

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

При помощи конструкции @{...} можно указать разделитель столбцов. Эта команда удаляет пробел между столбцами и заменяет его на то, что включено в фигурные скобки. Одно из частых использований этой команды показано ниже, при рассказе о проблеме выравнивания по десятичной точке. Другое возможно использование -- для подавления ведущего пробела в таблице при помощи @{}:

\begin{tabular}{@{} l @{}}
\hline 
нет ведущего пробела\\
\hline
\end{tabular}

нет ведущего пробела

\begin{tabular}{l}
\hline
ведущий пробел слева и справа\\
\hline
\end{tabular}

ведущий пробел слева и справа

  Поскольку встроенный способ выровнять числовые столбцы по десятичной точке отсутствует13, мы можем <<обмануть>> TEX и добиться этого при помощи двух столбцов: выровненной вправо целой части и выровненной влево дробной. Команда @{.} в строке \begin{tabular} заменяет нормальный пробел между столбцами просто на <<.>>, давая эффект одного столбца, выровненного по десятичной точке. Не забудьте заменить в ваших числах точку на разделитель столбцов (&)! Метку столбца можно поместить над нашим числовым <<столбцом>> командой $\backslash$multicolumn:

\begin{tabular}{c r @{.} l}
Выражение с $\pi$       &
\multicolumn{2}{c}{Значение} \\
\hline
$\pi$               & 3&1416  \\
$\pi^{\pi}$         & 36&46   \\
$(\pi^{\pi})^{\pi}$ & 80662&7 \\
\end{tabular}

Выражение с $\pi$ Значение  
$\pi$ 3 .1416
$\pi^{\pi}$ 36 .46
$(\pi^{\pi})^{\pi}$ 80662 .7

2.10 Плавающие объекты

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

Для решения этой проблемы любая иллюстрация или таблица, не умещающаяся на текущей странице, может `плавать', перемещаясь на следующую страницу в процессе заполнения текстом текущей. LATEX предлагает для плавающих объектов  два окружения, одно для таблиц и одно для иллюстраций. Чтобы полностью использовать их преимущества, важно примерно представлять, как LATEX обрабатывает плавающие объекты. Иначе они могут стать источником разочарования из-за того, что LATEX помещает их не туда, куда вы хотите.

Давайте вначале рассмотрим команды, предоставляемые LATEX для плавающих объектов.

Любой материал, включенный в окружения figure или table, трактуется как плавающий. Оба окружения имеют необязательный параметр \begin{figure}[спецификация размещения] или
\begin{table}[спецификация размещения]

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


 
Таб.: Ключи размещения плавающего объекта
 


Ключ Разрешает помещать объект ...
h здесь же, в том самом месте текста, где он появился. Обычно используется для маленьких объектов.
t наверху страницы
b внизу страницы
p на специальной странице, содержащей только плавающие объекты.
! не рассматривать большинство внутренних параметров , которые могут предотвратить размещение этого объекта.



Например, таблицу можно начать следующей строкой:

\begin{table}[!hbp]

Спецификация размещения   [!hbp] позволяет LATEX разместить таблицу прямо по месту (h), или внизу той же страницы (b), или на выделенной странице (p), и все это -- даже если это будет смотреться не так уж хорошо (!). Если никакой спецификации размещения не задано, стандартные классы предполагают [tbp]. LaTeX размещает каждый встреченный плавающий объект в соответствии с заданной автором спецификацией. Если объект нельзя поместить на текущей странице, он откладывается, помещаясь в очередь иллюстраций  или в очередь таблиц 14. Когда начинается новая страница, LATEX проверяет, можно ли заполнить специальную страницу плавающими объектами из очередей. Если нет, то первый объект из каждой очереди считается только что встретившимся в тексте: LATEX снова пытается разместить их в соответствии с их спецификациями (за исключением `h', что уже невозможно). Новые встреченные в тексте плавающие объекты помещаются в соответствующие очереди. LATEX сохраняет порядок, в котором встретились плавающие объекты соответствующего типа. Поэтому иллюстрация, которую не удается разместить, отталкивает все дальнейшие иллюстрации к концу документа. Следовательно:

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


После объяснения этих механизмов остается еще несколько замечания про окружения table и figure. Командой

$\backslash$caption{текст заголовка}

вы можете задать заголовок для объекта. Увеличивающийся номер и строка <<Рисунок>> или <<Таблица>> добавляются LATEX.

Две команды

$\backslash$listoffigures и $\backslash$listoftables

работают аналогично команде \tableofcontents, печатая список иллюстраций или таблиц, соответственно. В этих списках заголовки повторяются целиком. Если вы используете длинные заголовки, то вы должны предоставить их краткий вариант для включения в списки. Это делается помещением краткого варианта в квадратные скобки после команды \caption.

\caption[Короткий]{Дддддллллллиииинннннныыыыыыыыыыыыыыййй}

При помощи \label и \ref можно делать ссылки из вашего текста на плавающий объект.

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

Рисунок~\ref{white} является примером Поп-Арта.
\begin{figure}[!hbp]
\makebox[\textwidth]{\framebox[5cm]{\rule{0pt}{5cm}}}
\caption{Пять на пять сантиметров} \label{white}
\end{figure}

В этом примере15 LATEX будет очень сильно (!) стараться разместить иллюстрацию прямо по месту (h). Если это невозможно, он попытается разместить ее внизу страницы (b). Если ему не удастся поместить иллюстрацию на текущей странице, он выяснит, можно ли создать страницу плавающих объектов, содержащую эту иллюстрацию и, возможно, некоторые таблицы из очереди таблиц. Если для отдельной страницы материала еще не накопилось, LATEX начинает новую страницу и снова рассматривает иллюстрацию, как если бы она только что появилась в тексте.

В определенных случаях может быть необходимо использовать команду

$\backslash$clearpage или даже $\backslash$cleardoublepage

Она указывает LATEX немедленно разместить все плавающие объекты, остававшиеся в очередях, и затем начать новую страницу. $\backslash$cleardoublepage, помимо этого, начинает новую левостороннюю страницу.

Позже вы узнаете, как включать в ваши документы LATEX рисунки в формате POSTSCRIPT.


next up previous
Next: 3. Набор математических формул Up: No Title Previous: 1. Это нужно знать
next up previous
Next: 4. Специальные возможности Up: No Title Previous: 2. Верстка текста

Подсекция

3. Набор математических формул

Вот теперь мы готовы! В этой главе мы встретимся с основной мощью TEX: математической версткой. Но имейте в виду, что эта глава дает только поверхностный обзор. Хотя для многих из вас изложенных здесь вещей будет достаточно, не отчаивайтесь, если вы не сможете найти решение, отвечающее нуждам верстки вашей математики. Весьма возможно, что ваша проблема решается в AMS-LATEX16 или в каком-нибудь ином пакете.

3.1 Общие сведения

LATEX включает в себя специальный режим для верстки математики.  . Математический текст внутри абзаца вводится между $\backslash$( и $\backslash$), между $ и $ или между \begin{math} или \end{math}. 

  Складывая $a$ в квадрате с 
  $b$ в квадрате, получаем 
  $c$ в квадрате. Или 
  излагая языком математики: 
  $c^{2}=a^{2}+b^{2}$

Складывая a в квадрате с b в квадрате, получаем c в квадрате. Или излагая языком математики: c2=a2+b2

  
  \TeX{} произносится как
  $\tau\epsilon\chi$.\\[6pt]
  100~м$^{3}$ воды.\\[6pt]
  Это исходит от моего 
  $\heartsuit$.

TEX произносится как $\tau\epsilon\chi$.

100 м3 воды.

Это исходит от моего $\heartsuit$.

Большие математические уравнения или формулы предпочтительнее <<выключать>>, то есть верстать их на отдельных строчках. Для этого заключайте их между $\backslash$[ и $\backslash$] или между \begin{displaymath} и \end{displaymath}. Это дает вам не нумерованные формулы. Если вы хотите, чтобы LATEX их нумеровал, пользуйтесь окружением equation.

  Складывая $a$ в квадрате с 
  $b$ в квадрате, получаем 
  $c$ в квадрате. Или 
  излагая языком математики: 
  \begin{displaymath}
    c^{2}=a^{2}+b^{2}
  \end{displaymath}
  И еще одна строчка

Складывая a в квадрате с b в квадрате, получаем c в квадрате. Или излагая языком математики:

c2=a2+b2

И еще одна строчка

При помощи $\backslash$label и $\backslash$ref вы можете в тексте ссылаться на уравнение.

  \begin{equation} 
    \label{eq:eps}
    \epsilon > 0
  \end{equation}
  Из (\ref{eq:eps}) 
  выводим \ldots


 \begin{displaymath}
\epsilon > 0
\end{displaymath} (1)

Из (1) выводим ...

Заметьте, что выражения в выключных формулах верстаются в другом стиле:

  $\lim_{n \to \infty} 
  \sum_{k=1}^n \frac{1}{k^2} 
  = \frac{\pi^2}{6}$

$\lim_{n \to \infty}
\sum_{k=1}^n \frac{1}{k^2}
= \frac{\pi^2}{6}$

  \begin{displaymath}
    \lim_{n \to \infty} 
    \sum_{k=1}^n \frac{1}{k^2} 
    = \frac{\pi^2}{6}
  \end{displaymath}


\begin{displaymath}\lim_{n \to \infty}
\sum_{k=1}^n \frac{1}{k^2}
= \frac{\pi^2}{6}
\end{displaymath}

Математический режим отличается от текстового режима. Например, в математическом режиме:

1.
Большинство пробелов и возвратов каретки не принимаются во внимание, так как все пробелы либо выводятся из логики математических выражений, или должны в явном виде задаваться командами вроде $\backslash$,, $\backslash$quad или $\backslash$qquad.
2.
Пустые строчки недопустимы. Каждая формула занимает только один абзац.
3.
Каждая буква считается именем переменной, и верстается в этом качестве. Если вы хотите в формулу ввести нормальный текст (нормальный прямой шрифт с нормальными пробелами), то вам нужно вводить его командами \textrm{...}.

  \begin{equation}
    \forall x \in \mathbf{R}:
    \qquad x^{2} \geq 0
  \end{equation}


$\displaystyle \forall x \in \mathbf{R}:
\qquad x^{2} \geq 0$     (2)

  

  \begin{equation}
    x^{2} \geq 0\qquad
    \textrm{для всех }x\in
    \mathbf{R}
  \end{equation}


$\displaystyle x^{2} \geq 0\qquad
\textrm{для всех }x\in
\mathbf{R}$     (3)

Математики бывают очень строги к используемым символам: здесь будет удобно использовать `ажурные полужирные символы' , которые получаются командой $\backslash$mathbb из пакетов amsfonts или amssymb. Последний пример теперь выглядит так:

  \begin{displaymath}
    x^{2} \geq 0\qquad
    \textrm{для всех }x\in
    \mathbb{R}
  \end{displaymath}


$\displaystyle x^{2} \geq 0\qquad
\textrm{для всех }x\in
\mathbb{R}$     (4)

3.2 Группировка в математическом режиме

Большинство команд математического режима действует только на следующий символ. Так что, если вы хотите, чтобы команда влияла на несколько символов, вам нужно сгруппировать их вместе при помощи фигурных скобок: {...}.

  \begin{equation}
    a^x+y \neq a^{x+y}
  \end{equation}


\begin{displaymath}a^x+y \neq a^{x+y}
\end{displaymath} (5)

3.3 Составляющие математической формулы

В этом разделе будут описаны наиболее важные команды, используемые в математической верстке. Список всех доступных символов смотрите в разделе 3.9.

Строчные греческие буквы вводятся как \alpha, \beta, \gamma, ..., прописные буквы вводятся как \Gamma, \Delta, ...17

  $\lambda,\xi,\pi,\mu,%
  \Phi,\Omega$

$\lambda,\xi,\pi,\mu,%
\Phi,\Omega$ Верхние и нижние индексы вводятся при помощи символов <<  ^ >> и <<_ >>.

  $a_{1}$ \qquad $x^{2}$ \qquad
  $e^{-\alpha t}$ \qquad
  $a^{3}_{ij}$\\
  $e^{x^2} \neq {e^x}^2$

a1         x2          $e^{-\alpha t}$          a3ij
$e^{x^2} \neq {e^x}^2$

Квадратный корень  вводится как $\backslash$sqrt, корень n-ной степени печатается при помощи \sqrt[n]. Размер знака корня выбирается LATEX автоматически. Если нужен один только знак, используйте \surd.

  $\sqrt{x}$ \qquad 
  $\sqrt{ x^{2}+\sqrt{y} }$ 
  \qquad $\sqrt[3]{2}$\\[3pt]
  $\surd[x^2 + y^2]$

$\sqrt{x}$          $\sqrt{ x^{2}+\sqrt{y} }$          $\sqrt[3]{2}$
$\surd[x^2 + y^2]$

Команды $\backslash$overline и $\backslash$underline создают горизонтальные линии сразу над или под выражением.  

  $\overline{m+n}$

$\overline{m+n}$

Команды $\backslash$overbrace и $\backslash$underbrace создают длинные горизонтальные фигурные скобки сразу над или под выражением.  

  $\underbrace{ a+b+\cdots%
    +z }_{26}$

$\underbrace{ a+b+\cdots%
+z }_{26}$

  Для добавления к переменным знаков математических акцентов, таких, как маленькие стрелки или знака тильда, вы можете пользоваться командами, перечисленным в таблице. Широкие <<шляпки>> и тильды, охватывающие несколько символов, генерируются командами $\backslash$widetilde и $\backslash$widehat. Символ <<' >> дает знак производной.  .

  
  \begin{displaymath}
    y=x^{2}\qquad y'=2x
    \qquad y''=2
  \end{displaymath}


\begin{displaymath}y=x^{2}\qquad y'=2x
\qquad y''=2
\end{displaymath}

Векторы  часто указываются добавлением маленьких стрелок стрелки над переменной. Это делается командой $\backslash$vec. Для обозначения вектора от A до B полезны две команды $\backslash$overrightarrow и $\backslash$overleftarrow.

  \begin{displaymath}
    \vec a\quad
    \overrightarrow{AB}
  \end{displaymath}


\begin{displaymath}\vec a\quad
\overrightarrow{AB}
\end{displaymath}

Имена функций типа $\lg$ часто верстаются прямым шрифтом, а не курсивом, как переменные. Поэтому LATEX содержит следующие команды для набора имен наиболее важных функций:  

\arccos   \cos    \csc   \exp   \ker     \limsup  \min   \sinh
\arcsin   \cosh   \deg   \gcd   \lg      \ln      \Pr    \sup
\arctan   \cot    \det   \hom   \lim     \log     \sec   \tan
\arg      \coth   \dim   \inf   \liminf  \max     \sin   \tanh

\[\lim_{x \rightarrow 0}
\frac{\sin x}{x}=1\]


\begin{displaymath}\lim_{x \rightarrow 0}
\frac{\sin x}{x}=1\end{displaymath}

Для функции модуля функция модуля есть две команды: $\backslash$bmod для бинарного оператора <<$a \bmod b$>> и $\backslash$pmod для выражений вроде << $x\equiv a \pmod{b}$>>.

Двухъярусная дробь верстается командой $\backslash$frac{...}{...}. Часто предпочтительнее ее форма с косой чертой 1/2, потому что она смотрится лучше при небольшом количестве `дробного материала'.

  $1\frac{1}{2}$~часа
  \begin{displaymath}
    \frac{ x^{2} }{ k+1 }\qquad
    x^{ \frac{2}{k+1} }\qquad
    x^{ 1/2 }
  \end{displaymath}

$1\frac{1}{2}$ часа

\begin{displaymath}\frac{ x^{2} }{ k+1 }\qquad
x^{ \frac{2}{k+1} }\qquad
x^{ 1/2 }
\end{displaymath}

Для верстки биноминальных коэффициентов или аналогичных структур можно пользоваться или {... $\backslash$choose ...}, или {... $\backslash$atop ...}. Вторая команда дает тот же вывод, что и первая, но без скобок.

\begin{displaymath}
{n \choose k}\qquad {x \atop y+2}
\end{displaymath}


\begin{displaymath}{n \choose k}\qquad {x \atop y+2}
\end{displaymath}

Оператор интеграла  печатает команда  $\backslash$int, оператор суммы  -- команда  $\backslash$sum. Верхние и нижние пределы указываются при помощи знаков <<^>> и <<_>>, так же, как верхние и нижние индексы.

\begin{displaymath}
\sum_{i=1}^{n} \qquad
\int_{0}^{\frac{\pi}{2}} \qquad
\end{displaymath}


\begin{displaymath}\sum_{i=1}^{n} \qquad
\int_{0}^{\frac{\pi}{2}} \qquad
\end{displaymath}

Для  скобок и прочих ограничителей  в TEX существует множество символов (скажем, $[\;\langle\;\Vert\;\updownarrow$). Круглые и квадратные скобки можно вводить соответствующими клавишами, фигурные скобки --\{, прочие ограничители -- специальными командами (например, \updownarrow). Список доступных ограничителей смотрите в таблице.

\begin{displaymath}
{a,b,c}\neq\{a,b,c\}
\end{displaymath}


\begin{displaymath}{a,b,c}\neq\{a,b,c\}
\end{displaymath}

Если вы поместите перед открывающим ограничителем команду $\backslash$left, или перед закрывающим -- $\backslash$right, то TEX автоматически выберет правильный размер ограничителя. Заметьте, что вы должны каждый $\backslash$left закрывать соответствующим $\backslash$right. Если вы не хотите ничего справа, используйте невидимый ограничитель $\backslash$right..

\begin{displaymath}
1 + \left( \frac{1}{ 1-x^{2} }
    \right) ^3
\end{displaymath}


\begin{displaymath}1 + \left( \frac{1}{ 1-x^{2} }
\right) ^3
\end{displaymath}

В некоторых случаях необходимо указать корректный размер математического ограничителя  вручную, для этого есть команды $\backslash$big, $\backslash$Big, $\backslash$bigg и $\backslash$Bigg, служащие префиксами к большинству команд ограничителей18.

$\Big( (x+1) (x-1) \Big) ^{2}$\\
$\big(\Big(\bigg(\Bigg($\quad
$\big\}\Big\}\bigg\}\Bigg\}$\quad
$\big\|\Big\|\bigg\|\Bigg\|$

$\Big( (x+1) (x-1) \Big) ^{2}$
$\big(\Big(\bigg(\Bigg($     $\big\}\Big\}\bigg\}\Bigg\}$     $\big\Vert\Big\Vert\bigg\Vert\Bigg\Vert$

Чтобы ввести в формулу три точки, есть несколько команд. $\backslash$ldots верстает точки на базовой линии, $\backslash$cdots -- центрированные. Кроме того, существуют команды $\backslash$vdots для вертикальных и $\backslash$ddots для диагональных точек.    В разделе 3.5 вы найдете другой пример.

\begin{displaymath}
x_{1},\ldots,x_{n} \qquad
x_{1}+\cdots+x_{n}
\end{displaymath}

\begin{displaymath}x_{1},\ldots,x_{n} \qquad
x_{1}+\cdots+x_{n}
\end{displaymath}

3.4 Математические пробелы

  Если выбранные TEX пробелы внутри формул неудовлетворительны, вы можете их подстраивать с использованием команд управления пробелами. Команды для маленьких пробелов: $\backslash$, для $\frac{3}{18}\:\textrm{\Eng quad}$ (0.166em), $\backslash$: для $\frac{4}{18}\: \textrm{\Eng quad}$ (0.222em) и $\backslash$; для $\frac{5}{18}\: \textrm{\Eng quad}$ (0.277em). Экранированный символ пробела \ дает средних размелов пробел, а $\backslash$quad (1em) и $\backslash$qquad (2em) дают большие пробелы. Размер $\backslash$quad примерно соответствует ширине буквы `M' в текущем шрифте. Команда \! $\backslash$"! производит отрицательный пробел размером $-\frac{3}{18}\:\textrm{\Eng quad}$ (0.166em).

\newcommand{\ud}{\mathrm{d}}
\begin{displaymath}
\int\!\!\!\int_{D} g(x,y)
  \, \ud x\, \ud y 
\end{displaymath}
вместо
\begin{displaymath}
\int\int_{D} g(x,y)\ud x \ud y
\end{displaymath}


\begin{displaymath}\int\!\!\!\int_{D} g(x,y)
\, \mathrm{d}x\, \mathrm{d}y
\end{displaymath}

вместо

\begin{displaymath}\int\int_{D} g(x,y)\mathrm{d}x \mathrm{d}y
\end{displaymath}

Заметьте, что `d' в дифференциале обычно верстается прямым шрифтом.

   
3.5 Вертикально расположенный материал

Для верстки матриц пользуйтесь окружением array. Его работа напоминает окружение tabular. Для разрыва строки используется команда \\.

\begin{displaymath}
\mathbf{X} =
\left( \begin{array}{ccc}
x_{11} & x_{12} & \ldots \\
x_{21} & x_{22} & \ldots \\
\vdots & \vdots & \ddots
\end{array} \right)
\end{displaymath}


\begin{displaymath}\mathbf{X} =
\left( \begin{array}{ccc}
x_{11} & x_{12} & \ldo...
...{22} & \ldots \\
\vdots & \vdots & \ddots
\end{array} \right)
\end{displaymath}

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

\begin{displaymath}
y = \left\{ \begin{array}{ll}
 a & \textrm{если $d>c$}\\
 b+x & \textrm{по утрам}\\
 l & \textrm{остальное время дня}
  \end{array} \right.
\end{displaymath}


\begin{displaymath}y = \left\{ \begin{array}{ll}
a & \textrm{если $d>c$ }\\
b...
...рам}\\
l & \textrm{остальное время дня}
\end{array} \right.
\end{displaymath}

Для формул, занимающих несколько строк или для систем уравнений  вместо equation пользуйтесь окружениями eqnarray и eqnarray*. В eqnarray каждая строка получает отдельный номер уравнения. В eqnarray* номера не ставятся.

Окружения eqnarray и eqnarray* работают наподобие таблицы из трех столбцов формата {rcl}, где средний столбец используется для знака равенства, или знака неравенства, или другого подходящего знака. Команда \\ разбивает строки.

\begin{eqnarray}
f(x) & = & \cos x     \\
f'(x) & = & -\sin x   \\
\int_{0}^{x} f(y)dy &
 = & \sin x
\end{eqnarray}


f(x) = $\displaystyle \cos x$ (6)
f'(x) = $\displaystyle -\sin x$ (7)
$\displaystyle \int_{0}^{x} f(y)dy$ = $\displaystyle \sin x$ (8)

Заметьте, что по обеим сторонам средней колонки, знаков равенства, слишком много свободного места. Оно может быть уменьшено установкой \setlength\arraycolsep{2pt}, как в следующем примере.

  Длинные уравнения не будут автоматически разбиваться на правильные части. Автор должен указать, где их разбивать и насколько выравнивать. Чаще всего для этого используют следующие методы:

\setlength\arraycolsep{2pt}
\begin{eqnarray}
\sin x & = & x -\frac{x^{3}}{3!}
     +\frac{x^{5}}{5!}-{}
                    \nonumber\\
 & & {}-\frac{x^{7}}{7!}+{}\cdots
\end{eqnarray}}


$\displaystyle \sin x$ = $\displaystyle x -\frac{x^{3}}{3!}
+\frac{x^{5}}{5!}-{}$  
    $\displaystyle {}-\frac{x^{7}}{7!}+{}\cdots$ (9)

\begin{eqnarray}
\lefteqn{ \cos x = 1
     -\frac{x^{2}}{2!} +{} }
                    \nonumber\\
 & & {}+\frac{x^{4}}{4!}
     -\frac{x^{6}}{6!}+{}\cdots
\end{eqnarray}


$\displaystyle { \cos x = 1
-\frac{x^{2}}{2!} +{} }$
    $\displaystyle {}+\frac{x^{4}}{4!}
-\frac{x^{6}}{6!}+{}\cdots$ (10)

Команда $\backslash$nonumber заставляет LATEX не генерировать номер для этого уравнения.

Такими методами может быть сложно получить правильно выглядящие вертикально выровненные уравнения; более мощную альтернативу предоставляет пакет amsmath.

3.6 Размер математического шрифта

  В математическом режиме TEX выбирает размер шрифта в зависимости от контекста. Индексы, например, верстаются меньшим шрифтом. Если вы хотите добавить к уравнению обычный текст командой \textrm, механизм переключения размера работать не будет, так как \textrm временно выходит в текстовый режим. Чтобы оставить его работающим, используйте команду \mathrm19. Но имейте в виду, $\backslash$mathrm будет хорошо работать только с короткими элементами. Пробелы по-прежнему не активны и акцентированные символы не работают20.

\begin{equation}
2^\textrm{nd} \quad 
2^\mathrm{nd}
\end{equation}


\begin{displaymath}2^\textrm{\Eng nd} \quad
2^\mathrm{nd}
\end{displaymath} (11)

Все же иногда вам нужно указать LATEX корректный размер шрифта. В математическом режиме размер устанавливается четырьмя командами:

$\backslash$displaystyle ( $\displaystyle 123$), $\backslash$textstyle ( $\textstyle 123$), $\backslash$scriptstyle ( $\scriptstyle 123$) и $\backslash$scriptscriptstyle ( $\scriptscriptstyle 123$).

Смена стилей влияет также на способ изображения пределов.

\begin{displaymath}
\mathop{\mathrm{corr}}(X,Y)= 
 \frac{\displaystyle 
   \sum_{i=1}^n(x_i-\overline x)
   (y_i-\overline y)} 
  {\displaystyle\biggl[
 \sum_{i=1}^n(x_i-\overline x)^2
\sum_{i=1}^n(y_i-\overline y)^2
\biggr]^{1/2}}
\end{displaymath}


\begin{displaymath}\mathop{\mathrm{corr}}(X,Y)=
\frac{\displaystyle
\sum_{i=...
...-\overline x)^2
\sum_{i=1}^n(y_i-\overline y)^2
\biggr]^{1/2}}
\end{displaymath}

Это один из примеров, когда нам нужны скобки большие, чем предоставляемые стандартными \left[ \right].

3.7 Теоремы, законы, ...

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

$\backslash$newtheorem{название}[счетчик]{ текст}[раздел] Аргумент название -- это краткое ключевое слово, используемое для идентификации <<теоремы>>. Аргументом текст вы определяете настоящее название <<теоремы>>, под которым она будет печататься в документе.

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

После использования в преамбуле документа команды $\backslash$newtheorem, вы можете пользоваться следующими командами:

\begin{название}[текст]
Это интересная теорема.
\end{название}

На этом теории должно быть достаточно. Дальнейшие примеры должны развеять последнюю тень сомнений, и окончательно убедить вас, что окружение \newtheorem слишком сложно, чтобы его можно было понять:

% определения для 
% преамбулы документа
\newtheorem{law}{Law}
\newtheorem{jury}[law]{Jury}
% в теле документа
\begin{law} \label{law:box}
Don't hide in the witness box
\end{law}
\begin{jury}[The Twelve]
It could be you! So beware and
see law \ref{law:box}\end{jury}
\begin{law}No, No, No\end{law}

Law 1   Don't hide in the witness box

Jury 2 (The Twelve)   It could be you! So beware and see law 1

Law 3   No, No, No

Теорема <<Jury>> использует тот же счетчик, что и теорема <<Law>>. Следовательно, она получит номер в последовательности с другими теоремами <<Law>>. Аргумент в квадратных скобках указывает заголовок теоремы, или нечто аналогичное.

\flushleft
\newtheorem{mur}{Murphy}[subsection]
\begin{mur}
Если существует два или
более способа сделать
нечто, и один их этих
способов может привести
к катастрофе, то кто-то
обязательно это сделает.
\end{mur}

Murphy 3.7.1   Если существует два или более способа сделать нечто, и один их этих способов может привести к катастрофе, то кто-то обязательно это сделает.

Теорема <<Murphy>> получает номер, связанный с номером текущего раздела. Вы можете также использовать другую структурную единицу, например, главу или подраздел.

   
3.8 Полужирные символы

В LATEX довольно непросто получить жирные символы; это, вероятно, сделано преднамеренно, потому что непрофессионалы слишком часто злоупотребляют ими. Команда смены шрифта \mathbf дает полужирные символы, но они обычные (прямые), тогда как математические символы обычно курсивные. Существует команда $\backslash$boldmath, но она может использоваться только вне математического режима. То же относится и к символам.

\begin{displaymath}
\mu, M \qquad \mathbf{M} \qquad
\mbox{\boldmath $\mu, M$}
\end{displaymath}


\begin{displaymath}\mu, M \qquad \mathbf{M} \qquad
\mbox{\boldmath$\mu, M$ }
\end{displaymath}

Заметьте, что запятая тоже полужирная, что может быть нежелательным.

Пакет amsbsy (включаемый пакетом amsmath) включает команду $\backslash$boldsymbol, и команду <<полужирного для бедных>> $\backslash$pmb21, которая использует двухпроходную печать в системах без шрифтов, требуемых для полужирных символов.

\begin{displaymath}
\mu, M \qquad
\boldsymbol{\mu}, \boldsymbol{M}
\qquad \pmb{\mu}, \pmb{M}
\end{displaymath}


\begin{displaymath}\mu, M \qquad
\boldsymbol{\mu}, \boldsymbol{M}
\qquad \pmb{\mu}, \pmb{M}
\end{displaymath}

   
3.9 Список математических символов

В следующих таблицах вы найдете все символы, известные обычно в математическом режиме.

Для доступа к символам, перечисленным в таблицах22 в преамбуле документа должен быть загружен пакет amssymb, и в системе должны быть установлены математические шрифты AMS. Если пакеты и шрифты AMS в вашей системе не установлены, посмотрите на
CTAN:macros/latex/packages/amslatex


  
Таб.: Акценты математического режима
\begin{table}
\begin{symbols}{*4{cl}}
\W{\hat}{a} & \W{\check}{a} & \W{\tilde}{...
...}{a} &\W{\vec}{a} &\W{\widehat}{A}&\W{\widetilde}{A}\\
\end{symbols}\end{table}


 
Таб.: Строчные греческие буквы
\begin{table}\begin{symbols}{*4{cl}}
\X{\alpha} & \X{\theta} & \X{o} & \X{\up...
...& \X{\varsigma} & & \\
\X{\eta} & \X{\xi} & \X{\tau}
\end{symbols}\end{table}


 
Таб.: Прописные греческие буквы
\begin{table}\begin{symbols}{*4{ll}}
\X{\Gamma} & \X{\Lambda} & \X{\Sigma} & ...
...lon} & \X{\Omega} \\
\X{\Theta} & \X{\Pi} & \X{\Phi}
\end{symbols}\end{table}


 
Таб.: Бинарные отношения
\begin{table}\bigskip
Вы можете получить соответствующие отрицания добавлением...
...Для доступа к этому символу пользуйтесь
пакетом \textsf{latexsym}.}
\end{table}


 
Таб.: Бинарные операторы
\begin{table}\begin{symbols}{*3{cl}}
\X{+} & \X{-} & & \\
\X{\pm} & \X{\mp}...
... \X{\unlhd}$^1$\space & \X{\unrhd}$^1$\space & \X{\wr}
\end{symbols} \end{table}


 
Таб.: Большие операторы
\begin{table}\begin{symbols}{*4{cl}}
\X{\sum} & \X{\bigcup} & \X{\bigvee} & \...
...bigodot} \\
\X{\int} & \X{\oint} & & & \X{\biguplus}
\end{symbols} \end{table}


 
Таб.: Стрелки
\begin{table}\begin{symbols}{*3{ll}}
\X{\leftarrow}или \Eng\verb*\vert\gets\v...
...Для доступа к этому символу пользуйтесь
пакетом \textsf{latexsym}.}
\end{table}


  
Таб.: Ограничители
\begin{table}
\begin{symbols}{*4{cl}}
\X{(} & \X{)} & \X{\uparrow} & \X{\Uparro...
...X{\lceil} & \X{\rceil} \\
\X{/} & \X{\backslash} & &%
\end{symbols}\end{table}


 
Таб.: Большие ограничители
\begin{table}\begin{symbols}{*4{cl}}
\Y{\lgroup} & \Y{\rgroup} & \Y{\lmoustac...
... \\
\Y{\arrowvert} & \Y{\Arrowvert} & \Y{\bracevert}
\end{symbols}\end{table}


 
Таб.: Прочие символы
\begin{table}\begin{symbols}{*4{cl}}
\X{\dots} & \X{\cdots} & \X{\vdots} & \X...
...Для доступа к этому символу пользуйтесь
пакетом \textsf{latexsym}.}
\end{table}


 
Таб.: Не-математические символы
\begin{table}\bigskip
Эти символы можно использовать и в текстовом режиме.
\be...
...copyright} \\
\SC{\ddag } & \SC{\P} & \SC{\pounds} \\
\end{symbols}\end{table}


  
Таб.: Ограничители AMS
\begin{table}
\bigskip
\begin{symbols}{*4{cl}}
\X{\ulcorner}&\X{\urcorner}&\X{\llcorner}&\X{\lrcorner}
\end{symbols}\end{table}


 
Таб.: Буквы греческого и иврита AMS
\begin{table}\begin{symbols}{*5{cl}}
\X{\digamma} &\X{\varkappa} & \X{\beth}& \X{\daleth} &\X{\gimel}
\end{symbols}\end{table}


 
Таб.: Бинарные отношения AMS
\begin{table}% latex2html id marker 1757\begin{symbols}{*3{cl}}
\X{\lessdot} ...
...lefteq} & \X{\trianglerighteq} &\X{\blacktriangleright}
\end{symbols}\end{table}


 
Таб.: Стрелки AMS
\begin{table}\begin{symbols}{*3{cl}}
\X{\dashleftarrow} & \X{\dashrightarrow}...
...& \\
\X{\circlearrowleft} & \X{\circlearrowright} & &
\end{symbols}\end{table}


  
Таб.: Отрицательные бинарные отношения и стрелки AMS
\begin{table}
\begin{symbols}{*3{cl}}
\X{\nless} & \X{\ngtr} & \X{\varsubsetneq...
...eftarrow} & \X{\nRightarrow} & \X{\nLeftrightarrow}
\par\end{symbols}\end{table}


 
Таб.: Бинарные операторы AMS
\begin{table}\begin{symbols}{*3{cl}}
\X{\dotplus} & \X{\centerdot} & \X{\inte...
...& \X{\circledast} \\
\X{\curlyvee} & \X{\curlywedge}
\end{symbols}\end{table}


 
Таб.: Прочие символы AMS
\begin{table}\begin{symbols}{*3{cl}}
\X{\hbar} & \X{\hslash} & \X{\Bbbk} \\
...
...& \X{\Finv} & \X{\varnothing} \\
\X{\eth} & \X{\mho}
\end{symbols}\end{table}


 
Таб.: Математические алфавиты
\begin{table}\begin{symbols}{@{}*3l@{}}
Пример & Команда & Требуемый пакет\\
...
...ert
&\pai{\Eng amsfonts} или \textsf{\Eng amssymb} \\
\end{symbols}\end{table}


next up previous
Next: 4. Специальные возможности Up: No Title Previous: 2. Верстка текста
next up previous
Next: Литература Up: No Title Previous: 3. Набор математических формул

Подсекция

4. Специальные возможности

При сборке большого документа LATEX поможет вам некоторыми специальными функциями, например, генерацией предметного указателя, управлением библиографией и тому подобными. Более подробное описание специальных возможностей и расширений LATEX находится в [1] и в [3].

4.1 Включение EPS графики

Окружения figure и table обеспечивают базовые средства работы с плавающими объектами, такими, как изображения или графики.

Существует также несколько способов создавать собственно графику  средствами базового LATEX или его расширений. К сожалению, большинство пользователей находит их трудными для понимания. Дополнительная информация приведена в [3] и в [1].

Более простой метод получения графики в документе -- это создавать ее специализированными программными пакетами23 и включать в документ готовую графику. Пакеты LATEX предлагают множество способов это делать. В этом введении обсуждается только использование графики в формате Encapsulated POSTSCRIPT (EPS), поскольку это довольно просто делается и широко распространено. Чтобы использовать картинки в формате EPS, вам нужно использовать для вывода POSTSCRIPT принтер24.

Хороший набор команд включения графики входит в пакет graphicx (автор D. P. Carlisle). Он является частью целого семейства пакетов, называющегося комплектом ``graphics''25.

В предположении, что вы работаете в системе с доступным для вывода POSTSCRIPT принтером, и с установленным пакетом graphicx, для включения картинки в ваш документ можете использовать следующую пошаговую инструкцию:

1.
Экспортируйте картинку из вашей графической программы в формате EPS.
2.
В преамбуле документа загрузите пакет graphicx при помощи \usepackage[драйвер]{graphicx} где драйвер -- это название вашего конвертера DVI в POSTSCRIPT. Самый широко используемый называется dvips. Название драйвера требуется потому, что не существует стандарта включения графики в TEX. Зная название драйвера, graphicx может выбрать правильный способ вставить информацию о графике в .dvi файл так, чтобы драйвер ее понял и смог корректно вставить .eps файл.
3.
Для включения файла в ваш документ пользуйтесь командой $\backslash$includegraphics[ключ=значение, ...]{файл} Необязательный параметр принимает вид списка разделенных запятыми пар ключей и соответствующих значений. Ключи можно использовать для изменения ширины, высоты, поворота включаемой графики. Таблица перечисляет самые важные ключи.


 
Таб.: Названия ключей для пакета graphicx
 
\begin{lined}{9cm}
\begin{tabular}{@{}ll}
\texttt{\Eng width}& масштабирует граф...
...
\texttt{\Eng scale}& масштабирует графику\\
\end{tabular}\bigskip
\end{lined}

Возможно, пример сделает это понятнее:

\begin{figure}
\begin{center}
\includegraphics[angle=90, width=0.5\textwidth]{test.eps}
\end{center}
\end{figure}

Здесь включается графика, записанная в файл test.eps. Она сначала поворачивается на 90 градусов и затем масштабируется до конечной ширины в 0.5 ширины стандартного абзаца. Пропорции сохраняются, поскольку не указано конкретной высоты. Параметры высоты и ширины могут также быть указаны в абсолютных размерах. Обратитесь к таблице на. Если вы хотите знать об этом больше, прочтите [8] и [11].

4.2 Библиография

Окружение thebibliography генерирует  библиографию. Каждый элемент начинается с

$\backslash$ bibitem{маркер} Затем маркер используется для дальнейших ссылок на книгу, статью или труд.

$\backslash$ cite{маркер} Элементы библиографии нумеруются автоматически. Параметр после команды \begin{thebibliography} устанавливает максимальную ширину этих номеров.

{Partl}~\cite{pa} {предложил,
чтобы} {\ldots}
 
\begin{thebibliography}{99}
\bibitem{pa} H.~Partl: 
\emph{German \TeX},
TUGboat Vol.~9, No.~1 ('88)
\end{thebibliography}

Partl [1] предложил, чтобы ...



next up previous
Next: 5. Настройка LATEX Up: No Title Previous: 4. Специальные возможности

Подсекция

Литература

1
H. Partl: German TEX, TUGboat Vol. 9, No. 1 ('88)

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

   
4.3 Указатели

Полезной особенностью многих книг является их предметный указатель . Указатели могут создаваться автоматически при помощи LATEX и сопровождающей программы makeindex26. В этом введении будут изложены только базовые команды генерации указателя. Более глубокое изложение смотрите в [3].   

Для включения возможностей LATEX в преамбуле должен загружаться пакет makeidx: \usepackage{makeidx} а специальные команды должны быть разрешены помещением в преамбулу команды

$\backslash$ makeindex

Содержимое указателя создается командами

$\backslash$index{ключ} где ключ является элементом указателя. Вы вводите команды указателя в том месте текста, куда этот элемент должен указывать. Таблица объясняет синтаксис аргумента ключ несколькими примерами.


 
 
Таб.: Примеры синтаксиса ключей указателя
Пример Вид указателя Комментарий
\index{hello} hello, 1 Обычный элемент
\index{hello!Peter} Peter, 3 Подчиненный `hello' элемент
\index{Sam@\textsl{Sam}} Sam, 2 Форматированный ключ
\index{Lin@\textbf{Lin}} Lin, 7 То же
\index{Jenny|textbf} Jenny, 3 Форматированная страница
\index{Joe|textit} Joe, 5 То же

По мере обработки входного файла LATEX, каждая команда \index записывает соответствующий элемент указателя вместе с номером текущей страницы в специальный файл. Файл имеет то же имя, что и входной файл LATEX, но другое расширение имени (.idx). Если теперь повторно обработать входной файл, этот отсортированный указатель включается в документ в то место, где LATEX находит команду

$\backslash$ printindex

Пакет showidx, входящий в LATEX2e, печатает все элементы указателя на левом поле текста. Это весьма полезно при проверке текста и сверке указателя.

4.4 Настраиваемые колонтитулы

Пакет fancyhdr27, написанный Piet van Oostrum, предоставляет несколько простых команд, позволяющих вам настраивать верхние и нижние колонтитулы документа. Если вы сейчас взглянете на верх этой страницы, то увидите одно их возможных применений этого пакета.

Рис 4.1: Пример настройки fancyhdr  

\documentclass{book}
\usepackage{fancyhdr}
\pagestyle{fancy}
% этим мы убеждаемся, что заголовки глав и 
% разделов используют нижний регистр.
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\fancyhf{}  % убираем текущие установки для колонтитулов
\fancyhead[LE,RO]{\bfseries\thepage}
\fancyhead[LO]{\bfseries\rightmark}
\fancyhead[RE]{\bfseries\leftmark}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headheight}{0.5pt} % оставляем место для линейки
\fancypagestyle{plain}{%
   \fancyhead{} % на обычных страницах убираем колонтитулы
   \renewcommand{\headrulewidth}{0pt} % и линейку
}

Сложность в настройке колонтитулов в том, чтобы включить туда вещи вроде заголовков раздела или главы. LATEX достигает этого в два этапа. В определениях колонтитулов можно использовать команды $\backslash$rightmark и $\backslash$leftmark, представляющих заголовки текущей главы и раздела, соответственно. Значения этих двух команд меняются при обработке команд chapter или section.

Для большей гибкости команды $\backslash$chapter и ей подобные не переопределяют $\backslash$rightmark и $\backslash$leftmark сами, а вызывают еще одну команду, называющуюся $\backslash$chaptermark, $\backslash$sectionmark или $\backslash$subsectionmark, ответственную за переопределение $\backslash$rightmark и $\backslash$leftmark.

Так что, если вы хотите изменить вид названия главы в верхнем колонтитуле, вы просто переопределяете команду $\backslash$chaptermark. $\backslash$sectionmark $\backslash$subsectionmark

Рисунок показывает, как можно настроить пакет fancyhdr так, чтобы колонтитулы выглядели почти так, как они выглядят у этого буклета. В любом случае вам рекомендуется ознакомиться с документацией к пакету по адресу, упомянутому в сноске.

4.5 Пакет verbatim

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

$\backslash$verbatiminput{файл}

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

Так как пакет verbatim входит в комплект `tools', вы найдете его установленным на большинстве систем. Если вы хотите узнать о нем больше, обязательно прочитайте [9].


next up previous
Next: 5. Настройка LATEX Up: No Title Previous: 4. Специальные возможности
...WYSIWYG1
What you see is what you get.
.
.
.
.
... времени.2
Говорят, что это -- одна из основных целей будущей системы LATEX3.
.
.
.
.
... строки3
Вместо это пользуйтесь командой $ $\backslash$backslash$. Она дает ` $\backslash$'.
.
.
.
.
... 4
Область между documentclass и begin $\mathtt{\{}$document $\mathtt{\}}$ называется преамбулой.
.
.
.
.
... рис.5
На самом деле, для того, чтобы документы могли содержать русские буквы, необходимо подключить пакет руссификации LATEX. Поскольку в настоящее время таких пакетов несколько, используемая вами руссификация может отличаться от той, что использовалась при переводе. В этом случае вместо пакета babel вам, возможно, понадобится подключать что-то другое. Ожидается, что в будущем babel будет стандартным средством локализации TEX. Проконсультируйтесь с вашим [4] или с администратором. --прим. переводчика.
.
.
.
.
...TEX6
CTAN:macros/latex/packages/supported/foiltex
.
.
.
.
...doc.dtx 7
Этот файл должен быть установлен на вашей системе, и вы можете получить dvi файл, напечатав latex doc.dtx. То же самое относится ко всем прочим файлам, упомянутым в этой таблице.
.
.
.
.
... символов8
Лигатуры широко используются при верстке текстов на английском языке. Насколько мне известно, при верстке на русском языке лигатур не используется. Однако, механизм лигатур TEX используется для генерации, например, кавычек и тире. -- прим. переводчика.
.
.
.
.
... читабельным9
В соответствии с традициями верстки, принятыми в английском языке-- прим. переводчика.
.
.
.
.
... главы10
В классе article -- разделы.
.
.
.
.
... книги.11
$\backslash$frontmatter начинает вводную часть книги, $\backslash$mainmatter -- основную, $\backslash$backmatter -- заключающую. -- прим. переводчика
.
.
.
.
... сноски12
Это -- сноска.
.
.
.
.
... отсутствует13
Если на вашей системе установлен комплект `tools', обратите внимание на пакет dcolumn.
.
.
.
.
... 14
Эти очереди подчиняются дисциплине fifo: `первым вошел -- первым вышел'.
.
.
.
.
... примере15
Предполагая, что очередь иллюстраций пуста
.
.
.
.
...16
CTAN:macros/latex/packages/amslatex
.
.
.
.
......17
В LATEX2e не определяется прописная <<альфа>>, потому что она выглядит так же, как латинская <<A>>. При новой кодировке математики это будет изменено.
.
.
.
.
... ограничителей18
Эти команды не работают как ожидается, если используются команды смены размера шрифта, или если указана опция 11pt или 12pt. Для корректирования этого поведения пользуйтесь пакетами exscale или amsmath.
.
.
.
.
...tex2html_verb_mark19
В зависимости от используемой руссификации, у вас могут не работать русские буквы внутри команды $\backslash$mathrm, вместо которой может использоваться команда $\backslash$cyrmath -- прим. переводчика.
.
.
.
.
... работают20
При подключении пакета AMS-LATEX команда $\backslash$textrm начинает работать с изменением размера.
.
.
.
.
...pmb21
poor man's bold -- прим. переводчика
.
.
.
.
...22
Эти таблицы были получены из symbols.tex (автор David Carlisle) и позже сильно изменены по совету Josef Tkadlec
.
.
.
.

... пакетами23
Такими, как XFig, CorelDraw!, Freehand, Gnuplot, ...
.
.
.
.
... принтер24
Другая возможность вывода POSTSCRIPT заключается в использовании программы GHOSTSCRIPT, доступной с CTAN:support/ghostscript.
.
.
.
.
... ``graphics''25
CTAN:macros/latex/packages/graphics.
.
.
.
.
...makeindex26
На системах, не поддерживающих длинные имена файлов, программа может называться makeidx.
.
.
.
.
...fancyhdr27
Доступный из CTAN:macros/latex/contrib/supported/fancyhdr/
.
.
.
.
... замечательно28
Это для американцев не замечательно. Для нас интересно то, что пакет verbatim включает команду verbatim@font, позволяющую использовать произвольный шрифт, например, русский, что невозможно в окружении verbatim без модификации стандартного поведения LATEX. -- прим. переводчика
.
.
.
.
... опасности29
danger -- прим. переводчика
.
.
.
.
... SIZE="+3">т30
Я очень надеюсь, что вам удалось уловить тут сарказм
.
.
.
.
... команду31
Для добавления отступа к первому абзацу после каждого заголовка раздела пользуйтесь пакетом indentfirst из комплекта `tools'.
.
.
.
.
... книгу32
Имея в виду настоящую печатную книгу, выпущенную уважаемым издательством.
.
.
.
.
... снаружи33
Это означает, что она может быть меньше, чем материал внутри блока. В предельном случае вы можете даже установить ее в 0pt, так что текст внутри блока верстается, вообще не оказывая влияния на окружающие блоки.
.
.
.
.
...текста.34
Ширина, высота, глубина и общая высота (высота плюс глубина) текста, соответственно -- прим. переводчика.
.
.
.
.

next up previous
Next: Литература Up: No Title Previous: Литература

Подсекция

5. Настройка LATEX

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

5.1 Новые команды, окружения и пакеты

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

\ci{dum}

$\backslash$dum

В этом примере используются как новое окружение, называющееся command и отвечающее за рисование рамки вокруг команды, так и новая команда, называющаяся $\backslash$ci и верстающая название команды и заносящая соответствующий элемент в указатель. Вы можете в этом убедиться, поискав команду $\backslash$dum в указателе в конце книги, где вы найдете запись для $\backslash$dum, указывающую на эту страницу.

Если автор когда-нибудь решит, что ему не нравятся больше команды, сверстанные в рамке, он просто изменит определение окружения command. Это намного проще, чем пройти по всему документу, выискивая все места, где использованы общие команды LATEX для рисования рамки вокруг слов.

5.1.1 Новые команды

Чтобы добавить ваши собственные команды, пользуйтесь командой

$\backslash$newcommand{ название}[число]{определение}

Обычно эта команда требует двух аргументов. Название команды, которую вы создаете, и определение команды. Аргумент число в квадратных скобках не обязателен. Он применяется для создания новых команды, которые, в свою очередь, принимают до 9 аргументов.

Следующие два примера должны вам помочь получить представление о команде. Первый пример определяет новую команду, называющуюся $\backslash$tnss, что является сокращением от ``The Not So Short Introduction to LATEX2e''. Такая команда пригодится, если вам много раз приходится писать название этой книги.

\newcommand{\tnss}{The not
   so Short Introduction to
   \LaTeXe}
% в теле документа:
``\tnss'' \ldots{} ``\tnss''

``The not so Short Introduction to LATEX2e'' ... ``The not so Short Introduction to LATEX2e''

Следующий пример иллюстрирует использование аргумента число. Метка #1 заменяется на заданный аргумент. Если вы хотите использовать более одного аргумента, пользуйтесь #2, и так далее.

\newcommand{\txsit}[1]
    {The \emph{#1} краткое
      введение в \LaTeXe}
% в теле документа
\begin{itemize}
\item \txsit{\Rus Не очень}
\item \txsit{\Rus Очень}
\end{itemize}

  • The Не очень краткое введение в LATEX2e
  • The Очень краткое введение в LATEX2e

LATEX не позволит вам создать новую команду, которая бы изменяла уже существующую. Но для случая, когда вы явно хотите изменить существующую команду, есть специальная команда: $\backslash$renewcommand. Она имеет тот же синтаксис, что и команда \newcommand.

В некоторых случаях может пригодиться команда $\backslash$providecommand. Она работает так же, как $\backslash$newcommand, но, если команда уже определена, то LATEX2e ее молча проигнорирует.

5.1.2 Новые окружения

Аналогично команде \newcommand, существует команда для создания вашего собственного окружения. Команда $\backslash$newenvironment имеет следующий синтаксис:

$\backslash$newenvironment{ название}[номер]{ начало}{конец}

Подобно команде \newcommand, $\backslash$newenvironment можно использовать с необязательным аргументом, или без него. Материал, заключенный в аргумент начало, обрабатывается до обработки текста внутри окружения. Материал, заключенный в аргумент конец, обрабатывается, когда встречается команда \end{название}. Следующий пример иллюстрирует использование команды $\backslash$newenvironment.

\newenvironment{king}
 {\rule{1ex}{1ex}%
      \hspace{\stretch{1}}}
 {\hspace{\stretch{1}}%
      \rule{1ex}{1ex}}

\begin{king} 
Мои смиренные подданные\ldots
\end{king}

Мои смиренные подданные...

Аргумент номер используют так же, как и для команды \newcommand. LATEX контролирует, чтобы вы не определяли уже существующее окружение. Если вы заходите все же это сделать, пользуйтесь командой $\backslash$renewenvironment. Она имеет тот же синтаксис, что ли $\backslash$newenvironment.

Команды, использованные в этом примере, будут разъяснены позже.

5.1.3 Ваш собственный пакет

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

Пример пакета  

% Пакет для демонстрации. Tobias Oetiker.
\ProvidesPackage{demopack}
\newcommand{\tnss}{Не очень краткое введение в \LaTeXe}
\newcommand{\txsit}[1]{\emph{#1} краткое
                       введение в \LaTeXe}
\newenvironment{king}{\begin{quote}}{\end{quote}}

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

$\backslash$ProvidesPackage{название пакета} в самом начале файла с вашим пакетом. \ProvidesPackage указывает LATEX название пакета, что позволяет ему выдавать осмысленное сообщение об ошибке, когда вы пытаетесь включать пакет дважды. Иллюстрация показывает маленький пример пакета, содержащего определенные в вышеприведенных примерах команды.

5.2 Шрифты и их размеры

5.2.1 Команды смены шрифта

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

 
 {\small Маленький, 
    \textbf{полужирный},
    \Large большой,
    \textit{курсив}.}

Маленький, полужирный, большой, курсив.

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

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


 
Таб.: Шрифты
 
\begin{lined}{12cm}
\begin{tabular}{@{}rl@{\qquad}rl@{}}
\ci{\Eng textrm}\verb*\...
...erb*\vert{...}\vert & \textnormal{обычный}
\end{tabular}\par\bigskip
\end{lined}


 
Таб.: Размеры шрифта
   
\begin{lined}{12cm}
\begin{tabular}{@{}ll}
\ci{\Eng tiny} & \tiny крошечный \\
...
... \\ [5pt]
\ci{\Eng Huge} & \Huge громадный
\end{tabular}\par\bigskip
\end{lined}


 
Таб.: Абсолютные размеры шрифтов в стандартных классах
  
\begin{lined}{12cm}
\begin{tabular}{lrrr}
\multicolumn{1}{c}{\textit{Размер}} &
...
...ert & \Eng 25pt & \Eng 25pt & \Eng 25pt\\
\end{tabular}\par\bigskip
\end{lined}


 
Таб.: Математические шрифты
 
\begin{lined}{\textwidth}
\begin{tabular}{@{}lll@{}}
\textit{Команда}&\textit{Пр...
...{ffi}\neq ffi$\vert& $\mathit{ffi}\neq ffi$\end{tabular}\par\bigskip
\end{lined}

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

  Ему нравятся {\LARGE 
    большие и {\small 
      маленькие} буквы}.

Ему нравятся большие и маленькие буквы.

Команды, влияющие на размер шрифта, влияют также на расстояние между строками, но только если соответствующий абзац заканчивается внутри области действия команды. Поэтому закрывающая фигурная скобка } не должна стоять слишком рано. Заметьте положение команды \par в следующих двух примерах:

{\Large Не читайте это! Это
неправда. Верьте мне!\par}

%\end{example}

Не читайте это! Это неправда. Верьте мне!

{\Large Это тоже неправда.
Но помните, что я вру.}\par

Это тоже неправда. Но помните, что я вру.

Если вы хотите применить команду изменения размера к целому абзацу текста или больше того, то для этого лучше использовать синтаксис окружения.

  
  \begin{Large}
    Это неправда. Но
    что в наши дни\ldots
  \end{Large}

Это неправда. Но что в наши дни...

Это избавит вас от подсчета множества фигурных скобок.

5.2.2 Опасность

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

% в преамбуле или пакете
\newcommand{\danger}[1]{\textbf{#1}}
% в документе
Не \danger{входите} в эту комнату.
Она занята \danger{машиной}
неизвестного назначения.

Не входите в эту комнату. Она занята машиной неизвестного назначения.

Этот подход имеет то преимущество, что вы позже можете решить, что хотите использовать другое визуальное представление опасности29, нежели \textbf, без необходимости пробираться через весь документ, отыскивая все вхождения \textbf и определяя, отмечает ли каждое из них опасность или что-нибудь другое.

5.2.3 Совет

Для завершения нашего путешествия в мир шрифтов и их размеров, позвольте дать вам один совет:

Помните! Чем БОЛЬШЕ шрифтов вы используете в вашем документе, тем легче его читать и тем красивее он будет30.

5.3 Интервалы

5.3.1 Интервалы между строками

Если вам нужны большие интервалы между строками, то их значение можно изменить помещением в преамбулу команды

$\backslash$linespread{коэффициент} Для печати <<через полтора интервала>> пользуйтесь \linespread{1.3}, для печати <<через два интервала>> -- \linespread{1.6}. По умолчанию этот коэффициент равен 1. 

  
5.3.2 Форматирование абзацев

Два параметра в LATEX влияют на верстку абзацев. Поместив в преамбулу определения вида

$\backslash$setlength{parindent}{0pt}
\setlength{parskip}{1ex plus 0.5ex minus 0.2ex}

вы измените внешний вид абзацев. Эти две строчки увеличивают расстояние между абзацами и устанавливают абзацный отступ равным нулю. В Европе абзацы часто отделяют пробелами и не делают в них отступа. Однако, имейте в виду, что это влияет также и на оглавление: его строки тоже становятся теперь более разреженными. Чтобы этого избежать, эти команды можно перенести из преамбулы документа куда-нибудь после \tableofcontents, или не использовать их совсем, потому что в профессиональной книжной верстке используется выделение абзацев красной строкой, а не пробелами.

Если вы хотите сделать абзацный отступ в не имеющем его абзаце, то вставьте в начало абзаца команду31 $\backslash$indent Понятно, что эффект от нее будет только если \parindent не установлен равным нулю.

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

$\backslash$noindent Это может быть удобно, когда вы начинаете документ с текста, а не с команды секционирования.

5.3.3 Горизонтальные интервалы

 LATEX автоматически определяет пробелы между словами и предложениями. Чтобы добавить горизонтальный пробел , пользуйтесь

$\backslash$hspace{длина} Если такой интервал должен быть выдержан, даже если он приходится на начало или конец строки, используйте \hspace*, а не \hspace. В простейшем случае длина -- это просто число и единица измерения. Наиболее важные единицы перечислены в таблице.   

Тут\hspace{1.5cm}пробел
в 1,5см.

Тут пробел в 1,5см.


 
Таб.: Единицы размерности в TEX
   \begin{lined}{9.5cm}
\begin{tabular}{@{}ll@{}}
\texttt{\Eng mm} & миллиметр $\a...
... x' \Rus текущего шрифта \quad \demowidth{1ex}
\end{tabular}\bigskip
\end{lined}

 

Команда $\backslash$stretch{n} генерирует специальный <<резиновый>> пробел. Он растягивается, заполняя все оставшееся места на строке. Если на одной строке встречаются две команды \hspace{\stretch{n}}, то они растягиваются пропорционально своим коэффициентам.

x\hspace{\stretch{1}}
x\hspace{\stretch{3}}x

x x x

5.3.4 Вертикальные интервалы

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

$\backslash$vspace{длина}

Обычно эта команда вставляется между двумя пустыми строчками. Если это пространство должно сохраняться вверху или внизу страницы, используйте вариант команды со звездочкой: \vspace*. 

Команду \stretch вместе с \pagebreak можно применять для верстки текста на последней строке страницы или для вертикального центрирования текста на странице.

Некий текст\ldots

\vspace{\stretch{1}}
А это окажется на последней строке страницы.\pagebreak

Дополнительный пробел между двумя строками одного абзаца или внутри таблицы указывается командой

$\backslash\backslash$[длина]

5.4 Компоновка страницы



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

Безусловно, если сравнить со страницей, выданной свежеустановленным MS Word, то страницы LATEX выглядят ужасно узкими. Однако, взгляните на вашу любимую книгу32 и посчитайте количество букв на одной строчке. Вы обнаружите, что на каждой строчке не больше 66 букв. Теперь повторите это со страницей LATEX. Вы увидите, что и здесь тоже около 66 букв в строке. Опыт показывает, что при большем количестве букв чтение затрудняется, потому, что глазам становится труднее переходить от конца одной строки к началу следующей. Именно поэтому газеты часто верстаются в несколько колонок.

Так что, увеличивая ширину вашего текста, имейте в виду, что вы затрудняете жизнь его читателям. Однако, достаточно предупреждений, вам был обещан рассказ о том, как же это сделать...

LATEX предоставляет две команды для изменения этих параметров. Их обычно используют в преамбуле документа.

Первая команда присваивает фиксированное значение любому параметру:

$\backslash$setlength{параметр}{длина}

Вторая команда прибавляет длину к любому параметру: $\backslash$addtolength{параметр}{длина}

Она даже более полезна, чем $\backslash$setlength, потому что позволяет вам делать настройку относительно существующих установок. Чтобы добавить сантиметр к общей ширине текста, например, в преамбулу нужно поместить следующее:

\addtolength{\hoffset}{-0.5cm}
\addtolength{\textwidth}{1cm}

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

5.5 Еще о длинах

Всегда, когда это возможно, избегайте использовать в документах абсолютных величин. Лучше основывайтесь на ширине или высоте других элементов страницы. Для ширины иллюстрации этим может служить \textwidth, чтобы она заполняла страницу целиком.

Следующие три команды позволяют определить ширину, высоту и глубину текстовой строки.

$\backslash$settoheight{команда}{текст}
$\backslash$settodepth{команда}{текст}
$\backslash$settowidth{команда}{текст}

Нижеследующий пример показывает возможное применение этих команд.

\flushleft
\newenvironment{vardesc}[1]{%
  \settowidth{\parindent}{#1:\ }
  \makebox[0pt][r]{#1:\ }}{}

\begin{displaymath}
a^2+b^2=c^2
\end{displaymath}

\begin{vardesc}{Где}$a$, 
$b$ -- прилегают к прямому углу
прямоугольного треугольника.

$c$ -- одинокая гипотенуза 
этого треугольника.

$d$ -- вообще тут не участвует. 
Вот загадка\ldots
\end{vardesc}


a2+b2=c2

Где: a, b - прилегают к прямому углу прямоугольного треугольника.

c - одинокая гипотенуза этого треугольника.

d - вообще тут не участвует. Вот загадка...

5.6 Блоки

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

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

В предыдущих главах вы уже встречали некоторые блоки, хотя об этом и не говорилось. Примерами могут быть окружение tabular или $\backslash$includegraphics, оба производящие блок. Это значит, что вы легко можете сверстать рядом две таблицы или иллюстрации. Только убедитесь, что их общая ширина не превышает \textwidth.

Вы также можете упаковать любой абзац в блок или командой

$\backslash$parbox[поз]{ширина}{текст}

или окружением

\begin{minipage}[поз]{ширина} текст \end{minipage}

Параметр поз может принимать одну из букв c, t или b, контролируя вертикальное выравнивание блока по отношению к базовой линии окружающего текста. Ширина принимает аргументом длину, определяющую ширину блока.

В то время, как $\backslash$parbox упаковывает целый абзац, разбивая строчки и прочее, существует класс блоковых команд, работающих только на горизонтально расположенном материале. Одну из них мы уже знаем. Она называется $\backslash$mbox и просто упаковывает последовательность блоков, что можно использовать для предотвращения переноса LATEX двух слов. Так как вы можете помещать одни блоки в другие, эти упаковщики горизонтальных блоков чрезвычайно гибки.

$\backslash$makebox[ширина][поз]{текст}

Ширина определяет ширину результирующего блока так, как его видно снаружи33. Кроме выражений длины, вы тут можете использовать $\backslash$width, $\backslash$height, $\backslash$depth и $\backslash$totalheight. Они устанавливаются равными значениям, полученным измерением параметров текста.34 Параметр поз принимает однобуквенное значение: c: центрировать, l: отжать влево, r: отжать вправо или s: равномерно заполнить блок текстом.

Команда $\backslash$framebox работает в точности так же, как $\backslash$makebox, но рисует рамку вокруг текста.

Следующий пример показывает некоторые возможности использования команд $\backslash$makebox и $\backslash$framebox.

\makebox[\textwidth]{%
    ц е н т р}\par
\makebox[\textwidth][s]{%
    р а с т я н у т ы й}\par
\framebox[1.1\width]{Я теперь
  в рамке!} \par
\framebox[0.8\width][r]{Ой,
    я слишком толстый} \par
\framebox[1cm][l]{ничего,
  я тоже} 
Можете это прочитать?

ц е н т р

р а с т я н у т ы й

\framebox[1.1\width]{Я теперь
в рамке!}

\framebox[0.8\width][r]{Ой,
я слишком толстый}

\framebox[1cm][l]{ничего,
я тоже} Можете это прочитать?

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

$\backslash$raisebox{сдвиг}[глубина][высота]{текст}

позволяет вам определить вертикальные характеристики блока. В первых трех параметров можно использовать $\backslash$width, $\backslash$height, $\backslash$depth и $\backslash$totalwidth, чтобы получить размеры аргумента текст.

\raisebox{0pt}[0pt][0pt]{\Large%
\textbf{Aaaa\raisebox{-0.3ex}{a}%
\raisebox{-0.7ex}{aa}%
\raisebox{-1.2ex}{a}%
\raisebox{-2.2ex}{a}%
\raisebox{-4.5ex}{a}}}
кричал он, но даже стоящий рядом
не заметил, что с ней случилось
что-то ужасное.

[0pt][0pt] Aaaaa aa a a a кричал он, но даже стоящий рядом не заметил, что с ней случилось что-то ужасное.

   
5.7 Линейки и распорки

Несколько страниц назад вы могли отметить команду

$\backslash$rule[сдвиг]{ширина}{высота}

При обычном использовании она генерирует простой черный блок.

\rule{3mm}{.1pt}%
\rule[-1mm]{5mm}{1cm}%
\rule{3mm}{.1pt}%
\rule[1mm]{1cm}{5mm}%
\rule{3mm}{.1pt}

Это можно использовать для рисования вертикальных и горизонтальных линий. Например, линия на титульном листе нарисована командой $\backslash$rule.

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

\begin{tabular}{|c|}
\hline
\rule{0pt}{4ex}Pittprop \ldots\\
\hline
\rule{0pt}{4ex}Strut\\
\hline
\end{tabular}

Pittprop ...
Strut


next up previous
Next: Литература Up: No Title Previous: Литература
next up previous
Up: No Title Previous: 5. Настройка LATEX

Литература

1
Leslie Lamport.
LATEX: A Document Preparation System.
Addison-Wesley, Reading, Massachusetts, второе издание, 1994, ISBN 0-201-52983-1.

2
Donald E. Knuth.
The TEXbook, Volume A of Computers and Typesetting, Addison-Wesley Publishing Company (1984), ISBN 0-201-13448-9.

3
Michel Goossens, Frank Mittelbach and Alexander Samarin.
The LATEX Companion.
Addison-Wesley, Reading, Massachusetts, 1994, ISBN 0-201-54199-8.

4
Каждая установка LATEX должна содержать так называемый LATEX Local Guide, объясняющий особенности локальной системы. Он должен находиться в файле, называющемся local.tex. К сожалению, некоторые ленивые администраторы такого документа не предоставляют. В таком случае просите о помощи местного LATEX гуру.

5
LATEX3 Project Team.
LATEX2efor authors.
Включен в поставку LATEX2e как usrguide.tex.

6
LATEX3 Project Team.
LATEX2efor Class and Package writers.
Включен в поставку LATEX2e как clsguide.tex.

7
LATEX3 Project Team.
LATEX2eFont selection.
Включен в поставку LATEX2e как fntguide.tex.

8
D. P. Carlisle.
Packages in the `graphics' bundle.
Входит в состав комплекта `graphics' как grfguide.tex, доступен оттуда же, откуда ваша поставка LATEX.

9
Rainer Schöpf, Bernd Raichle, Chris Rowley.
A New Implementation of LATEX's verbatim Environments.
Входит в состав комплекта `tools' как verbatim.dtx, доступен оттуда же, откуда ваша поставка LATEX.

10
Graham Williams.
The TeX Catalogue полный список множества пакетов, имеющих отношение к TEX и LATEX
Доступен в Интернет по адресу CTAN:help/Catalogue/catalogue.html

11
Keith Reckdahl.
Using EPS Graphics in LATEX2e Documents объясняет все, что вы когда бы то ни было хотели знать про EPS файлы и их использование в документах LATEX.
Доступен в Интернет по адресу CTAN:info/epslatex.ps