Спецсимволы

Большинство символов в исходном тексте прямо обозначает то, что будет напечатано (если в исходном тексте стоит запятая, то и на печати выйдет запятая). Следующие 10 символов:

{}, $, &, #, %, _, ",^, \

имеют особый статус; если вы употребите их в тексте " просто так", то скорее всего получите сообщение об ошибке (и на печати не увидите того, что хотелось). Печатное изображение знаков, соответствующих первым семи из них, можно получить, если в исходном тексте поставить перед соответствующим символом без пробела знак "\" (по-английски он называется "backslash"):

Курс тугрика повысился на 7\%, и теперь за него дают \$200.

Если символ "%" употреблен в тексте не в составе комбинации "\%", то он является "символом комментария": все символы, расположенные в строке после него (и сам "%"), TEX игнорирует. С помощью символа "%" в исходный текст можно вносить пометки "для себя":

Это % глупый % Лучше: поучительный пример.   Жил-был у бабушки сере% нький козлик.

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

Скажем вкратце о смысле остальных спецсимволов. Фигурные скобки ограничивают группы в исходном файле. Знак доллара ограничивает математические формулы. При наборе математических же формул используются знаки "_" и "^" (" знак подчеркивания" и " крышка"). Знак "" обозначает "неразрывный пробел" между словами. Со знака "\" начинаются все TeX'овские команды. Знаки "#" и "&" используются в более сложных конструкциях TeX'а.

Отметим еще, что символы "< > |" в тексте употреблять можно в том смысле, что сообщения об ошибке это не вызовет, но напечатается при этом нечто, совсем на эти символы не похожее. Подлинное место для этих символов, так же как и для символов "=" и "+", — математические формулы, о которых речь пойдет позже.

Команды и их задание в тексте

Задание печатного знака процента с помощью последовательности символов "\%" — пример важнейшего понятия TeX'а, называемого командой. С точки зрения их записи в исходном тексте, команды делятся на два типа. Первый тип — команды, состоящие из знака "\" и одного символа после него, не являющегося буквой. Именно к этому типу относятся команды "\{", "\}",\ldots, "\%", о которых шла речь выше.

Команды второго типа состоят из "\" и последовательности букв, называемой именем команды (имя может состоять и из одной буквы). Например, команды \TeX, \LaTeX и \LaTeXe генерируют эмблемы систем TeX, LaTeX и LaTeX . В имени команды, а также между "\" и именем, не должно быть пробелов; имя команды нельзя разрывать при переносе на другую строку.

В именах команд прописные и строчные буквы различаются. Например, \large, \Large и \LARGE — это три разные команды (как вы в дальнейшем узнаете, они задают различные размеры шрифта).

После команды первого типа (из "\" и не-буквы) пробел в исходном тексте ставится или не ставится в зависимости от того, что вы хотите получить на печати:

В чем разница между \$1 и \$ 1?

После команды из "\" и букв в исходном тексте обязательно должен стоять либо пробел, либо символ, не являющийся буквой (это необходимо, чтобы TeX смог определить, где кончается имя команды и начинается дальнейший текст). Вот примеры с командой \slshape (она переключает шрифт на наклонный):

\slshape2 turtle doves \slshape and a partridge in a pear tree.

Если бы мы написали \slshapeand a partridge..., то при трансляции TEX зафиксировал бы ошибку (типичную для начинающих) и выдал сообщение о том, что команда \slshapeand не определена.

С другой стороны, если после команды из "\" и букв в исходном тексте следуют пробелы, то при трансляции они игнорируются. Если необходимо, чтобы TeX все-таки "увидел" пробел после команды в исходном тексте (например, чтобы сгенерированное с помощью команды слово не сливалось с последующим текстом), надо этот пробел специально организовать. Один из возможных способов — поставить после команды пару из открывающей и закрывающей фигурных скобок "{}" (так что TEX будет знать, что имя команды кончилось), и уже после них сделать пробел, если нужно.

Структура исходного текста LaTeX-файл должен начинаться с команды \documentclass задающей стиль оформления документа (в LaTeX'епринято говорить "класс документа".1) Пример: \documentclass{book} Слово {book} в фигурных скобках указывает, что документ будет оформлен, как книга: все главы будут начинаться с нечетных страниц, текст будет снабжен колонтитулами некоторого определенного вида и т.п. Кроме класса book, в стандартный комплект LaTeX'а входят классы article (для оформления статей), report (нечто среднее между article и book, proc (для оформления изданий типа " труды конференции") и letter (для оформления деловых писем так, как это принято в США). Чтобы задать оформление документа с помощью одного из этих классов, надо в фигурных скобках после команды \documentclass указать вместо {book} название требуемого класса. Стандартные классы можно (а иногда и нужно) менять. После команды \documentclass могут следовать команды, относящиеся ко всему документу и устанавливающие различные параметры оформления текста, например, величину абзацного отступа (вообще-то все эти параметры определяются используемым классом, но может случиться, что вам понадобится сделать в них изменения). Далее должна идти команда \begin \begin{document} Только после этой команды может идти собственно текст. Если вы поместите текст или какую-нибудь команду, генерирующую текст (например, \LaTeX до \begin{document}, то LaTeX выдаст сообщение об ошибке. Часть файла, расположенная между командами \documentclass и \begin{document}, называется преамбулой. Заканчиваться файл должен командой \end{document} Если после \end{document} в файле написано что-то еще, LaTeX это проигнорирует. Следующий пример показывает LaTeX-файл, составленный по всем правилам. Ничего интересного в результате его обработки не напечатается. \documentclass{article} \begin{document} Проба пера. \end{document} Группы Важным понятием TeX'а является понятие группы. Чтобы понять, что это такое, рассмотрим пример. При обработке TeX'ом исходного файла набор текста в каждый момент идет каким-то вполне определенным шрифтом (он называется текущим шрифтом). Изначально текущим шрифтом является " обычный" прямой шрифт (по-английски "roman"). Команда\slshape, с которой мы уже столкнулись в разд. "Команды и их задание в тексте", переключает текущий шрифт на наклонный, а upshape выполняет обратное переключение. Аналогичным образом команды bfseries и mdseries меняют жирность шрифта2).
Полужирный шрифт начнется с \bfseries этого слова. Снова \mdseries светлый, теперь \slshape наклонный, до нового переключения; вновь \upshape прямой.

В этом примере можно обойтись и без команд mdseries и upshape (отменяющих действие предыдущих команд). Для этого часть текста, которую вы хотите оформить полужирным или наклонным шрифтом, можно заключить в фигурные скобки, и дать команду bfseries или slshape внутри этих скобок! Тогда сразу же после закрывающей фигурной скобки TeX "забудет" про то, что шрифт переключался, и будет продолжать набор тем шрифтом, который был до скобок:

Полужирным шрифтом набрано только {\bfseries это} слово; после скобок все идет, как прежде.

Сами по себе фигурные скобки не генерируют никакого текста и не влияют на шрифт; единственное, что они делают — это ограничивают группу внутри файла. Как правило, задаваемые командами TeX'а изменения различных параметров (в нашем случае — текущего шрифта) действуют в пределах той группы, внутри которой была дана соответствующая команда; по окончании группы (после закрывающей фигурной скобки, соответствующей той фигурной скобке, что открывала группу) все эти изменения забываются и восстанавливается тот режим, который был до начала группы. Проиллюстрируем все сказанное следующим примером, в котором используется еще команда itshape (она переключает шрифт на курсивный):

Сначала {переключим шрифт на \itshape курсив; теперь сделаем шрифт еще и {\bfseries полужирным;} посмотрите, как восстановится} шрифт после кон{ца г}руппы.

Как видите, группы могут быть вложены друг в дружку. Обратите внимание, что внутри внешней группы курсив начался не c того места, где была открывающая скобка, а только после команды itshape (именно команда, а не скобка, переключает шрифт).

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