Спецсимволы
Большинство символов в исходном тексте прямо обозначает то, что будет напечатано (если в исходном тексте стоит запятая, то и на печати выйдет запятая). Следующие 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 будет знать, что имя команды кончилось), и уже после них сделать пробел, если нужно.


![]() | Полужирный шрифт начнется с \bfseries этого слова. Снова \mdseries светлый, теперь \slshape наклонный, до нового переключения; вновь \upshape прямой. |
В этом примере можно обойтись и без команд mdseries и upshape (отменяющих действие предыдущих команд). Для этого часть текста, которую вы хотите оформить полужирным или наклонным шрифтом, можно заключить в фигурные скобки, и дать команду bfseries или slshape внутри этих скобок! Тогда сразу же после закрывающей фигурной скобки TeX "забудет" про то, что шрифт переключался, и будет продолжать набор тем шрифтом, который был до скобок:
![]() | Полужирным шрифтом набрано только {\bfseries это} слово; после скобок все идет, как прежде. |
Сами по себе фигурные скобки не генерируют никакого текста и не влияют на шрифт; единственное, что они делают — это ограничивают группу внутри файла. Как правило, задаваемые командами TeX'а изменения различных параметров (в нашем случае — текущего шрифта) действуют в пределах той группы, внутри которой была дана соответствующая команда; по окончании группы (после закрывающей фигурной скобки, соответствующей той фигурной скобке, что открывала группу) все эти изменения забываются и восстанавливается тот режим, который был до начала группы. Проиллюстрируем все сказанное следующим примером, в котором используется еще команда itshape (она переключает шрифт на курсивный):
![]() | Сначала {переключим шрифт на \itshape курсив; теперь сделаем шрифт еще и {\bfseries полужирным;} посмотрите, как восстановится} шрифт после кон{ца г}руппы. |
Как видите, группы могут быть вложены друг в дружку. Обратите внимание, что внутри внешней группы курсив начался не c того места, где была открывающая скобка, а только после команды itshape (именно команда, а не скобка, переключает шрифт).
Фигурные скобки в исходном тексте должны быть сбалансированы3): каждой открывающей скобке должна соответствовать закрывающая. Если вы почему-либо не соблюли это условие, при трансляции вы получите сообщение об ошибке.