Работа в системе LaTeX

Элементарное введение

Разбить на страницы
Показывать лекцию целиком

Общие замечания

Что такое TeX и LaTeX

Как уже отмечалось в предисловии, TeX (произносится "тех", пишется также "TeX") - это созданная американским математиком и программистом Дональдом Кнутом (Donald E. Knuth)- система для верстки текстов с формулами. Сам по себе TеX представляет собой специализированный язык программирования (Кнут не только придумал язык, но и написал для него транслятор, причем таким образом, что он работает совершенно одинаково на самых разных компьютерах), на котором пишутся издательские системы, используемые на практике. Точнее говоря, каждая издательская система на базе ТеХ-а представляет собой пакет макроопределений (макропакет) этого языка. В частности, LaTeX (произносится "латех" или "лэйтех", пишется также "LaTeX") - это созданная Лесли Лэмпортом (Leslie Lamport) издательская система на базе TeX-а.

Прежде чем углубиться в изучение собственно LaTeX'а, скажем несколько слов о других издательских системах на базе TeX'а. Наряду с LaTeX'ом распространены также макропакеты Plain-TeX и AMS-TeX. Макропакет Plain-TeX был разработан самим Дональдом Кнутом, рассматривавшим его в качестве платформы для построения более сложных систем; на практике он используется и как средство для обмена текстами (текст, подготовленный для Plain TeX'а, сравнительно несложно переделать в исходный текст для того же LaTeX'а). Что касается AMS-TeX'а, то эта издательская система сориентирована на важный, но узкий круг приложений: верстку статей для математических журналов и книг, издаваемых Американским математическим обществом. Соответственно, в AMS-TeX'е предусмотрено большое количество весьма изощренных возможностей для создания сложных математических формул, но при этом нет многих вещей, которые естественно было бы ожидать в издательских системах общего назначения (например, автоматической нумерации частей документа). Современные версии LaTeX'а включают в себя AMS-TeX'овские возможности для набора формул (и используются Американским математическим обществом).

Настоящее издание этой книги посвящено описанию LaTeX'а версии $$2\varepsilon $$ (она называется LaTeX $$2\varepsilon $$, произносится " два е" или "два эпсилон"). Эта версия, вышедшая в 1994 году, в настоящее время стала стандартной. Ее создатели Йоханнес Браамс (Johannes Braams), Михаэль Гуссенс (Michael Goossens), Алан Джеффри (Alan Jeffrey), Дэвид Карлайл (David Carlisle), Франк Миттельбах (Frank Mittelbach), Крис Роули (Chris Rowley) и Райнер Шепф (Rainer Schopf). Иногда встречаются тексты, набранные в более старой версии LaTeX'а (так называемый LaTeX 2.09, описанный в предыдущих изданиях этой книги). Во многих случаях файл, подготовленный в LaTeX'e 2.09, успешно обрабатывается и с помощью LaTeX'а $$2\varepsilon$$, хотя абсолютной совместимости "снизу вверх" все же нет.

Достоинства и недостатки

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

Огромным достоинством систем на базе TeX'а является высокое качество и гибкость верстки абзацев и математических формул (в этом отношении TeX до сих пор не превзойден).

Программа TeX (и все издательские системы на ее базе) неприхотлива к технике (в свое время автор этих строк с успехом работал в TeX'е на компьютерах на базе всеми забытого 80286-процессора, и даже на таком электронном тихоходе, как IBM XT, а уж с современными компьютерами проблем заведомо не возникает).

С другой стороны, TeX'овские файлы (особенно английские — с русскими дело обстоит хуже; см приложение E) обладают высокой степенью переносимости: вы можете подготовить LaTeX'овский исходный текст на своей IBM PC, переслать его (скажем, по электронной почте) в издательство, и надеяться, что там ваш текст будет правильно обработан и на печати получится в точности то же, что получилось у вас при пробной печати на вашем любимом принтере (с той единственной разницей, что фотонаборный автомат даст отпечаток более высокого качества). Благодаря этому обстоятельству TeX стал очень популярен как язык международного обмена статьями по математике и физике.

Есть у TeX'а и недостатки. Тем, кто привык к редакторам наподобие Word'а, может не понравиться, что TeX не является системой типа WYSIWYG: работа с исходным текстом и просмотр того, как текст будет выглядеть на печати, — разные операции. На взгляд автора, благодаря этой особенности время на подготовку текста типографского качества только сокращается, но представления об удобстве у всех разные.

Далее, хотя параметры оформления менять легко, создать принципиально новое оформление (новый "класс документов") — совсем не простое дело.

Переносимость TeX'овских текстов снижается, если в них предусмотрен импорт графических файлов (эта возможность в TeX'е зависит от его реализации). Впрочем, в последнее время в этом отношении наметился определенный прогресс: стандартом de facto в TeX'овском мире становится представление графики в формате PostScript, причем в LaTeX'e появились удобные средства для включения этой графики в текст.

Наконец, как мы отмечали в предисловии, TeX плохо приспособлен для верстки страниц со сложным взаимодействием текста и графики.

Литература по TeX'у

Каноническое описание языка TeX и макропакета Plain TeX — трудная книга Дональда Кнута [2]. У рядового пользователя LaTeX'а необходимость читать эту книгу обычно не возникает.

Каноническое описание AMS-TeX'а — книга [5], также написанная самим создателем AMS-TeXа Майклом Спиваком (Michael Spivak).

Наконец, каноническое описание LaTeX'а — книга Лесли Лэмпорта[1]. Настоящее пособие в чем-то уже, чем книга[1], а в чем-то — шире: мы не упоминаем о некоторых средствах LaTeX'а, которые, на наш взгляд, редко используются на практике, но при этом рассказываем о многих полезных вещах, о которых в [1] не упоминается. Разнообразные модификации стандартного стиля оформления (" пакеты") описаны в книге Миттельбаха, Гуссенса и Самарина [6], рассчитанной на читателя, уже умеющего работать в LaTeX'е. Некоторые другие книги по LaTeX'у приведены в списке литературы .

Одной из первых книг по LaTeX'у на русском языке была брошюра [4], представляющая собой выполненный А.Шенем перевод краткого руководства [3] с дополнением переводчика, посвященным описанию одной из популярных реализаций TeX'а под DOS - системы emTeX.

Как проходит работа с системой LaTeX

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

В частности, все, что сказано в этом разделе, применимо не только к LaTeX'у, но и к любому другому макропакету для TeX'а, хотя мы всегда будем говорить "LaTeX".

Для начала автор должен подготовить с помощью любого текстового редактора файл с текстом, оснащенным командами для LaTeX'а. Такие файлы по традиции имеют расширение "tex" (описанию того, что должно быть в таком файле, и посвящена вся эта книга )Подчеркнем, что это должен быть именно " чистый" текстовый файл; doc-файлы для этих целей не годятся!. Дальнейшая работа протекает в два этапа. Сначала надо обработать файл с помощью программы-транслятора; в результате получается файл с расширением "dvi" (device independent - не зависящий от устройства).

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

На самом деле повторений цикла будет больше, так как придется еще исправлять синтаксические ошибки в исходном тексте.

Перед тем, как начать работать в системе LaTeX, вам необходимо уяснить для себя три вопроса:

  • Что нужно сделать, чтобы оттранслировать исходный текст (т.е. создать из него dvi-файл)?
  • Что нужно сделать, чтобы просмотреть dvi-файл на экране?
  • Что нужно сделать, чтобы напечатать dvi-файл?
  • Кроме того, для создания исходного текста нужно, естественно, уметь обращаться с каким-нибудь текстовым редактором.

    Ответы на эти вопросы проще всего получить у знакомых, которые уже пользуются TeX'ом; они же помогут его достать (практически все реализации TeX'а являются свободно распространяемыми) и установить. Некоторые сведения о реализациях TeX'а для систем типа Unix (Linux, FreeBSD и др.) и для DOS/Windows приведены в приложении E.

    Основные понятия

    Исходный файл

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

    Исходный текст документа не должен содержать переносов (TeX сделает их сам). Слова отделяются друг от друга пробелами, при этом TeX не различает, сколько именно пробелов вы оставили между словами (чтобы вручную управлять пробелами, есть специальные команды, о которых пойдет речь позже). Конец строки также воспринимается как пробел. Соседние абзацы должны быть отделены друг от друга пустыми строками (опять-таки все равно, сколько именно пустых строк стоит между абзацами, важно, чтоб была хоть одна).

    В правой колонке приведен фрагмент исходного текста, а в левой - то, как он будет выглядеть на печати после обработки системой LaTeX.

    $$\parindent=0.7cm Слова разделяются пробелами, а абзацы - пустыми строками. Абзацный отступ в исходном тексте оставлять не надо: он получается авто\-ма\-ти\-чески$$.
    Слова  разделяются пробелами,
    а         абзацы -
         пустыми строками.
    
    Абзацный отступ в исходном
       тексте   оставлять
             не
         надо: он получается
    автоматически.

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

    Предупреждение: мы используем русские буквы в наших примерах, хотя стандартный LaTeX (без специальной "русификации") их не понимает, и, строго говоря, следовало бы использовать латинские буквы. Подробнее об этом написано в приложении E.

    Спецсимволы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    $$Освоить \LaTeX\ проще, чем \TeX. Человека, который знает систему \TeX{} и любит ее, можно назвать \TeX ником$$.
    Освоить \LaTeX\ проще,
    чем \TeX. Человека,
    который знает систему
    \TeX{} и любит ее, можно
    назвать \TeX ником.

    В последней строке этого примера мы не создали пробела после команды \TeX, чтобы эмблема TeX'а слилась с последующим текстом.

    Структура исходного текста

    LaTeX-файл должен начинаться с команды

    \documentclass

    задающей стиль оформления документа (в LaTeX'е $$2\varepsilon$$ принято говорить "класс документа" В LaTeX 2.09 говорилось \documentstyle вместо \documentclass .

    Пример:

    \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}

    Совет: если вы до сих пор не работали с системой LaTeX на компьютере, сейчас самое время попробовать (только замените русские буквы на латинские, если доступный вам LaTeX не " русифицирован").

    Группы

    Важным понятием TeX'а является понятие группы. Чтобы понять, что это такое, рассмотрим пример.

    При обработке TeX'ом исходного файла набор текста в каждый момент идет каким-то вполне определенным шрифтом (он называется текущим шрифтом). Изначально текущим шрифтом является " обычный" прямой шрифт (по-английски "roman"). Команда \slshape, с которой мы уже столкнулись в разд."Команды и их задание в тексте", переключает текущий шрифт на наклонный, а upshape выполняет обратное переключение. Аналогичным образом команды bfseries и mdseries меняют жирность шрифтаПодробнее о переключении шрифтов будет рассказано в разделе лекции 3 "Смена шрифтов в тексте" .

    $$Полужирный шрифт начнется с \bfseries этого слова. Снова \mdseries светлый, теперь \slshape наклонный, до нового переключения; вновь \upshape прямой$$.
    Полужирный шрифт начнется
    с \bfseries этого слова.
    Снова \mdseries светлый,
    теперь \slshape наклонный,
    до нового переключения;
    вновь \upshape прямой.

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

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

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

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

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

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

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

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

    Команды с аргументами

    Команды наподобие LaTeX или, скажем, bfseries действуют " сами по себе"; многим командам, однако, необходимо задать аргументы. Первый пример тому дает команда documentclass: слово, указываемое в фигурных скобках, — ее аргумент; если его не указать, то произойдет ошибка. В LaTeX'е аргументы команд бывают обязательные и необязательные. Обязательные аргументы задаются в фигурных скобках если для команды предусмотрено наличие обязательных аргументов, она без них правильно работать не будет. У многих команд предусмотрены также и необязательные аргументы: они влияют на работу команды, коль скоро они указаны, но их отсутствие не ведет к сообщению об ошибке. Необязательные аргументы задаются в квадратных скобках.

    В частности, у команды documentclass предусмотрен обязательный аргумент, о котором уже шла речь, и необязательный: в квадратных скобках перед обязательным аргументом можно указать список (через запятую) так называемых классовых опций, т.е. дополнительных особенностей оформления. Например, если мы хотим, чтобы книга набиралась шрифтом кегля 12 вместо кегля 10, принятого по умолчаниюПримечание для полиграфистов: TeX'овский кегль 10 примерно соответствует нашему девятому кеглю, и притом в две колонки, мы должны начать файл командой

    \documentclass[12pt,twocolumn]{book}

    Есть также классовая опция 11pt, означающая, что текст будет набираться кеглем 11. Полный список возможных классовых опций приведен в разд. "Классы, пакеты и классовые опции" лекции 4.

    Наряду с классовыми опциями в LaTeX'е используются и так называемые стилевые пакеты. После команды \documentclass, начинающей файл, может следовать команда \usepackage, в аргументе которой стоит (через запятую) список подключаемых этой командой стилевых пакетов. (Можно использовать и несколько команд usepackage.) Например, первые две строки файла могут быть такими:

    \documentclass[12pt,twocolumn]{book}
    \usepackage{amsfonts,longtable}

    Здесь пакет amsfonts подключается, чтобы использовать в математических формулах дополнительные шрифты, позволяющие напечатать что-нибудь вроде $$\mathfrak{sl}_2(\mathbb C)$$, а пакет longtable нужен, чтобы иметь возможность набирать таблицы, простирающиеся на несколько страниц. Когда мы говорим: "чтобы воспользоваться этой возможностью, необходимо подключить такие-то стилевые пакеты", мы молчаливо предполагаем, что поставка LaTeX'а, которой вы пользуетесь, все эти пакеты содержит. В приложении Ж мы расскажем о том, откуда их взять.

    Необязательных аргументов может быть предусмотрено несколько; иногда они должны располагаться до обязательных, иногда после. В любом случае порядок, в котором должны идти аргументы команды, надо строго соблюдать. Между скобками, в которые заключены обязательные аргументы, могут быть пробелы, но не должно быть пустых строк.

    Окружения

    Еще одна важная конструкция LaTeX'а - это окружение(environment)

    Окружение - это фрагмент файла, начинающийся с текста

    \begin{"TeXtit{имя_окружения} "}

    где TeXtit{имя\_окружения} представляет собой первый обязательный (и, возможно, не единственный) аргумент команды \begin. Заканчивается окружение командой

    \end{"TeXtit{имя\_окружения} "}

    (команда \end имеет только один аргумент - имя завершаемого ею окружения). Например:

    $$\begin{minipage}[t]{4cm} \begin{center}\label{sml:center} Все строки этого абзаца будут центрированы; переносов не будет, если только какое-то слово, как в де\-зо\-кси\-ри\-бо\-ну\-кле\-ино\-вой кислоте, не длинней строки. \end{center} \end{minipage} $$
    \begin{center}
    Все строки этого абзаца 
    будут центрированы; переносов 
    не будет, если только 
    какое-то слово, как в 
    дезоксирибонуклеиновой 
    кислоте, не длинней строки.
    \end{center}

    Каждой команде \begin, открывающей окружение, должна соответствовать закрывающая его команда \end (с тем же именем окружения в качестве аргумента).

    Важным свойством окружений является то, что они действуют и как фигурные скобки: часть файла, находящаяся внутри окружения, образует группу. Например, внутри окружения center в вышеприведенном примере можно было бы сменить шрифт, скажем, командой \itshape, и при этом после команды \end{center} восстановился бы тот шрифт, что был перед окружением.

    Звездочка после имени команды

    В LaTeX'е некоторые команды и окружения имеют варианты, в которых непосредственно после имени команды или окружения ставится звездочка "*". Например, команда \section означает "начать новый раздел документа", а команда \section* означает "начать новый раздел документа, не нумеруя его".

    Параметры

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

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

    \parindent=2cm

    (Это изменение распространяется лишь на текущую группу: после конца группы восстановится старое значение отступа.)

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

    Единицы длины

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

    TeX'овские единицы длины
    pt пункт $$\approx$$ 0.35,миллиметра
    pc пика=12pt
    mm миллиметр
    cm сантиметр = 10 mm
    in дюйм = 25,4 mm
    dd пункт Дидо $$\approx$$ 1.07pt
    cc Цицеро = 12 dd

    Замечание для полиграфистов: TeX'овский пункт является единицей измерения, принятой в англо-американской типометрии; он отличается от пункта, принятого в континентальной Европе (в том числе и в России). Единица измерения, называемая в TeX'е пунктом Дидо, соответствует пункту, к которому привыкли отечественные полиграфисты.

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

    Даже если длина, которую вы указываете TeX'у, равна нулю, все равно необходимо указать при этом нуле какую-нибудь из используемых TeX'ом единиц длины. Например, если написать

    \parindent=0

    то вы получите сообщение об ошибке; вместо "0" надо было бы писать, например, "0pt" или "0in".

    Кроме перечисленных, в TeX'е используются еще две " относительные" единицы длины, размер которых зависит от текущего шрифта. Это em приблизительно равная ширине буквы "М" текущего шрифта, и ex приблизительно равная высоте буквы "x" текущего шрифта. Эти единицы удобно использовать в командах, которые должны работать единообразно для шрифтов разных размеров.

    Автоматическая генерация ссылок

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

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

  • пометить то место, на которое вы хотите сослаться в дальнейшем (или предшествующем) тексте;
  • в том месте текста, где вы хотите поместить ссылку, поставить команду-ссылку на вашу метку.
  • Конкретно это реализуется так. Помечается любое место текста с помощью команды \label. Эта команда имеет один обязательный аргумент (помещаемый, стало быть, в фигурных скобках) - " метку". В качестве метки можно использовать любую последовательность букв и цифр (не содержащую пробелов). Например, эта команда может иметь вид

    \label{wash}

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

    $$Обязательно мойте руки\label{wash} перед едой, чтобы не заболеть. Как известно (см. с.~99), руки надо мыть$$.
    Обязательно мойте
    руки\label{wash} перед
    едой, чтобы не заболеть.
    
    Как известно (см.
    с.~\pageref{wash}),
    руки надо мыть.

    Обратите внимание, что мы поставили команду \label. рядом с ключевым словом "руки" без пробела, чтобы гарантировать, что будет помечена именно та страница, на которую попало это слово.

    В этом примере мы использовали еще значок "~ " (" неразрывный пробел"), чтобы при печати сокращение " с." попало на ту же строку, что и номер страницы. Подробности см. в разд."Неразрывный пробел" лекции 3.

    После того как вы впервые вставите в свой файл команды \label и \pageref, при трансляции вы получите сообщение о том, что ваша ссылка не определена, а на печати или при просмотре увидите на месте своих ссылок вопросительные знаки. Дело в том, что в этот момент LaTeX еще не знает значения ваших меток: он только записывает информацию о них в специальный файл (с тем же именем, что у обрабатываемого файла, и расширением aux) при следующем запуске он прочтет эту информацию и подставит ссылки. Если в промежутке между двумя запусками в файл были внесены изменения, это может привести к сдвигу нумерации страниц. Если такие изменения действительно произошли, LaTeX сообщит вам об этом и попросит запустить программу еще раз, чтобы получить корректные ссылки. (На практике иногда нужно и больше запусков программы LaTeX — если в книге есть оглавление, предметный указатель и др.)

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

    На место, помеченное с помощью команды \label, можно сослаться с помощью команды \ref, а не \pageref — тогда на печати получится не номер страницы, а номер раздела документа, в котором находится метка, или номер рисунка, или номер элемента в нумерованном перечне и т.п. — пометить с возможностью ссылки можно почти любой элемент документа. Об этом мы будем подробно говорить в разд. "Еще о метках и ссылках" лекции 4.

    Набор формул в простейших случаях

    Основные принципы

    В документе, подготовленном с помощью TeX'а, различают математические формулы внутри текста и " выключные" (выделенные в отдельную строку). Формулы внутри текста окружаются знаками $ (с обеих сторон). Выключные формулы окружаются парами знаков доллара $$ с обеих сторон. Формулами считаются как целые формулы, так и отдельные цифры или буквы, в том числе греческие, а также верхние и нижние индексы и спецзнаки. Пробелы внутри исходного текста, задающего формулу, игнорируются (но по-прежнему надо ставить пробелы, обозначающие конец команды): TeX расставляет пробелы в математических формулах автоматически (например, знак равенства окружается небольшими пробелами). Пустые строки внутри текста, задающего формулу, не разрешаются. Если нужен пробел до или после внутритекстовой формулы, надо оставить его вне долларов. То же самое относится и к знакам препинания, следующим за внутритекстовой формулой: их также надо ставить после закрывающего формулу знака доллара. (В выключных формулах приходится указывать знаки препинания внутри долларов, иначе эти знаки попадут на следующую строку.) Каждая буква в формуле рассматривается как имя переменной и набирается шрифтом " математический курсив" (в отличие от обычного курсива, в нем увеличены расстояния между соседними буквами).

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

    Степени и индексы

    Степени и индексы набираются с помощью знаков "^" и "_" соответственно.

    $$Катеты $a$,$b$ треугольника связаны с его гипотенузой $c$ формулой\\ $c^2=a^2+b^2$ (теорема Пифагора)$$.
    Катеты $a$,$b$ треугольника
    связаны с его
    гипотенузой $c$ формулой 
    $c^2=a^2+b^2$ 
    (теорема Пифагора).

    Если индекс или показатель степени - выражение, состоящее более чем из одного символа, то его надо взять в фигурные скобки:

    $$Из теоремы Ферма следует, что уравнение $$ x^{4357}+y^{4357}=z^{4357} $$ не имеет решений в натуральных числах$$.
    Из теоремы Ферма следует,
    что уравнение 
    $$
    x^{4357}+y^{4357}=z^{4357}
    $$
    не имеет решений в
    натуральных числах.

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

    $$Обозначение $R^i_{jkl}$ для тензора кривизны было введено еще Эйнштейном$$.
    Обозначение $R^i_{jkl}$ для
    тензора кривизны было
    введено еще Эйнштейном.

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

    $$Можно также написать $R_j{}^i{}_{kl}$, хотя не всем это нравится$$.
    Можно также написать 
    $R_j{}^i{}_{kl}$, хотя
    не всем это нравится.

    Если вы хотите написать формулу, читающуюся как "два в степени, равной икс в кубе", то запись "2^x^3" вызовет сообщение об ошибке; правильно будет "2^{x^3}" (на печати это будет выглядеть как $$2^{x^3}$$ ).

    Дроби

    Дроби, обозначаемые косой чертой (так рекомендуется обозначать дроби во внутритекстовых формулах), набираются непосредственно:

    $$Неравенство $x+1/x\ge 2$ выполнено для всех $x>0$$$.
    Неравенство $x+1/x\ge 2$ 
    выполнено для всех $x>0$.

    В этом примере мы еще использовали знаки "строгих" неравенств (в TeX'овских формулах они набираются непосредственно, как знаки ">" и "<") и нестрогих неравенств (знак "больше или равно" генерируется командой \ge, "меньше или равно" — командой \le ). Если вы употребите символы "<" и ">" в обычном тексте, вне формул, то вместо знаков "меньше" и "больше" увидите небольшой сюрприз.

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

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

    $$\pi\approx 3{,}14$$ \pi\approx 3{,}14

    Здесь команда \pi порождает греческую букву $$\pi$$, а команда \approx дает знак $$\approx$$ (" приближенно равно"). Десятичную точку в дробях заключать в скобки не нужно.

    Дроби, в которых числитель расположен над знаменателем, набираются с помощью команды \frac.Эта команда имеет два обязательных аргумента: первый - числитель, второй - знаменатель.

    Пример:

    $$$$ \frac{(a+b)^2}{4}- \frac{(a-b)^2}{4}= ab $$ $$
    $$
    \frac{(a+b)^2}{4}-
    \frac{(a-b)^2}{4}=ab
    $$

    Если числитель и\или знаменатель дроби записываются одной буквой (в том числе греческой) или цифрой, то можно их и не брать в фигурные скобки:

    $$$$ \frac12+\frac x 2= \frac{1+x}2 $$ $$
    $$
    \frac12+\frac x 2=
    \frac{1+x}2
    $$

    Скобки

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

    $$$$ 1+\left(\frac{1}{1-x^{2}} \right)^3 $$ $$
    $$
    1+\left(\frac{1}{1-x^{2}}
    \right)^3
    $$

    Команда \left перед открывающей скобкой в совокупности с командой \right перед соответствующей ей закрывающей скобкой позволяет автоматически выбрать нужный размер скобки:

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

    Корни

    Квадратный корень набирается с помощью команды \sqrt, обязательным аргументом которой является подкоренное выражение; корень произвольной степени набирается с помощью той же команды \sqrt с необязательным аргументом — показателем корня (необязательный аргумент у этой команды ставится перед обязательным). Пример:

    $$По общепринятому соглашению, \\$\sqrt[3]{x^3}=x$, но $\sqrt{x^2}=|x|$$$.
    По общепринятому соглашению, 
    $\sqrt[3]{x^3}=x$,
     но $\sqrt{x^2}=|x|$.

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

    Штрихи и многоточия

    Штрихи в математических формулах обозначаются знаком "'" (и не оформляются как верхние индексы):

    $$Согласно формуле Лейбница, $$ (fg)''=f''g+2f'g'+fg''. $$ Это похоже на формулу квадрата суммы$$.
    Согласно формуле Лейбница,
    $$
    (fg)''=f''g+2f'g'+fg''.
    $$
    Это похоже на формулу
    квадрата суммы.

    Если надо записать формулу, читающуюся как " $$x$$ штрих в квадрате", возьмите x' в фигурные скобки, вот так: ${x'}^2$. Обратите еще внимание на то, что точку мы поставили в конце выключенной формулы (если бы мы поставили ее после знаков $$, то с нее начался бы абзац, следующий после формулы).

    В математических формулах встречаются многоточия; TeX различает многоточие, расположенное внизу строки (обозначается \ldots ), и расположенное по центру строки (оно обозначается \cdots ). Первое из них используется при перечислениях, второе — когда нужно заменить пропущенные слагаемые или сомножители (такова американская традиция; в России обычно многоточие ставят внизу строки и в этом случае):

    $$В детстве К~.-Ф.~Гаусс придумал, как быстро найти сумму $$1+2+\cdots+100=5050; $$ это случилось, когда школьный учитель задал классу найти сумму чисел $1,2,\ldots,100$$$.
    В детстве К~.-Ф.~Гаусс придумал,
    как быстро найти сумму
    $$1+2+\cdots+100=5050;
    $$
    это случилось, когда школьный
    учитель задал классу найти
    сумму чисел $1,2,\ldots,100$.

    Знак "~" после инициалов великого Гаусса мы поставили, чтобы фамилия не могла перенестись на другую строку отдельно от инициалов. В LaTeX'е можно использовать команду \ldots и в обычном тексте, вне математических формул, для знака многоточия.

    Имена функций

    Функции наподобие $$\sin$$, $$\log$$ и т.п., имена которых принято печатать прямым шрифтом, набираются с помощью специальных команд (обычно одноименных с обозначениями соответствующих функций).

    $$Как знают некоторые школьники, \\$\log_{1/16}2=-1/4$, а $\sin(\pi/6)=1/2$$$.
    Как знают некоторые школьники,
    $\log_{1/16}2=-1/4$,
    а $\sin(\pi/6)=1/2$.

    Заметьте, что основание логарифма задается как нижний индекс.

    Полный список команд, аналогичных \log или \sin, приведен в разд."Операции с пределами и без" лекции 2

    В стандартный набор команд TeX'а не входят команды для функций $$\tg$$ и $$\ctg$$ (в англоязычных странах эти функции принято обозначать $$\tan$$ и $$\cot$$ соответственно). Большой беды тут нет, поскольку эти недостающие команды легко определить самому (см.лекцию 2).

    Разбиение исходного файла на части

    Команды, рассматриваемые в этом разделе, помогают разумно организовать исходный текст.

    Часто бывает удобно разбить большой текст на несколько частей, хранящихся в разных файлах. Чтобы можно было объединить их в одно целое, в LaTeX'е предусмотрена команда \input. Если в тексте написать

    \input{имя\_файла}

    то TeX будет работать так, как если бы вместо строки с командой \input стоял текст файла, имя которого вы указали.

    Обычно, готовя текст большого объема, создают небольшой " головной файл", в котором между \begin{document} и \end{document} размещены строки с командами \input, задающими включение файлов, в которых и записана основная часть текста. Например, книгу из четырех глав, записанных в файлах "ch1.tex",..., "ch4.tex", можно организовать в виде файла из девяти строчек (именно его, а не файлы с отдельными главами, надо будет передать для обработки LaTeX'у):

    \documentclass[11pt]{report}
    \frenchspacing
    \pagestyle{plain}
    \begin{document}
    \input{ch1}
    \input{ch2}
    \input{ch3}
    \input{ch4}
    \end{document}

    (Если расширение файла, являющегося аргументом команды \input, не указано, то LaTeX по умолчанию добавляет расширение tex.)

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

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

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

    Если фрагменты текста, включаемые с помощью команд \input, должны на печати начинаться с отдельной страницы (например, если это главы книги, как в приведенном примере), то удобно вместо \input воспользоваться командой \include (ее единственный обязательный аргумент — имя включаемого файла). Выгода здесь в том, что при пользовании командой \include можно в процессе работы над текстом попросить LaTeX обрабатывать только часть включаемых файлов.

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

    \documentclass[11pt]{report}
    \frenchspacing
    \pagestyle{plain}
    \includeonly{ch2,ch3}
    \begin{document}
    \include{ch1}
    \include{ch2}
    \include{ch3}
    \include{ch4}
    \end{document}

    ( Внимание! В аргументе команды \include расширение ".tex" опускать необходимо! Файлы с расширениями, отличными от ".tex", с помощью этой команды подключать нельзя.) Когда вы перейдете к работе над другими главами, аргумент команды \includeonly надо будет соответствующим образом изменить, а когда весь текст будет готов, можно вообще удалить \includeonly из файла. При этом количество запусков LaTeX'а, необходимых для получения правильных ссылок, задаваемых командами \ref и \pageref, будет меньше, чем при проведении аналогичных манипуляций с \input.

    Команду \include нельзя употреблять в файле, который сам включается в текст с помощью \include (для \input такого запрета нет).

    Обработка ошибок

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

    Все сообщения, которые TeX выдает на экран в процессе трансляции исходного текста, все ваши ответы на эти сообщения, вообще все, что в процессе трансляции появляется на экране, записывается в специальный файл — протокол трансляции. Обычно файл-протокол имеет то же имя, что обрабатываемый TeX'ом файл, и расширение .log, поэтому он называется .log-файлом. Когда трансляция будет завершена, вы можете в спокойной обстановке просмотреть . log - файл и проанализировать, что произошло.

    Часть информации, выдаваемой при трансляции на экран и в .log-файл, представляет собой предупреждения (например, о нештатных ситуациях при верстке абзаца), при выдаче которых трансляция не прерывается . Если, однако, TeX натыкается на синтаксическую ошибку в исходном тексте, трансляция приостанавливается, а на экран выдается сообщение об ошибке.

    Чтобы понять, что делать с этими сообщениями, проведем эксперимент. Наберите следующий файл test.tex из 14 строк, в котором умышленно допущено несколько ошибок (только не сделайте лишних ошибок при наборе):

    \documentclass{article}
    \begin{document}
    По-английски специалист по \TeX'у называется \TeXpert.
    Следующая строка будет центрирована:
    \begin{center}
    Строка в центре.
    \end{center}
    А теперь попробуем формулы, например, такие,
    как $(2x+1)^3=5x$. И еще выключную формулу:
    $$\frac{25}{36}=\lrft(\frac{1}
       {1+\frac{1}{5}}\right)^2.
    $$
    И последняя формула: $\sqrt{4 = 2$.
    \end{document}

    Теперь обработайте наш файл test.tex с помощью LaTeX'а. Вскоре вы увидите на экране вот что:

    ! Undefined control sequence.
    l.3 ...алист по TeX'у называется TeXpert
                                              .
    ?

    Первая строка TeX'овского сообщения об ошибке всегда начинается с восклицательного знака, после которого идет краткое указание на характер ошибки (в нашем случае речь идет о том, что обнаружена несуществующая команда). Второй обязательный элемент сообщения об ошибке - строка, начинающаяся с l., после которой идет номер строки исходного текста с ошибкой (в нашем случае 3). После номера на экран выдается сама эта строка или та ее часть, которую TeX успел прочесть к моменту обнаружения ошибки. В нашем случае текст был прочитан до несуществующей команды "TeXpert" включительно (эта "команда" получилась потому, что мы забыли оставить пробел, ограничивающий имя команды \TeX, на которой TeX и прервал чтение файла. Наконец, третий основной элемент сообщения об ошибке — строка, состоящая из одного вопросительного знака. Этот вопросительный знак представляет собой "приглашение" пользователю: вам теперь предстоит на сообщение об ошибке отреагировать. Рассмотрим возможные реакции.

    Во-первых, всегда можно нажать клавишу x или X (латинскую) и после этого "ввод" ("Enter"): тогда трансляция немедленно завершится. Может быть, именно так стоит поступать начинающему TeXнику, чтобы разбираться с ошибками по очереди. Но можно и просто нажать клавишу "ввод": при этом TeX исправит обнаруженную ошибку "по своему разумению" и продолжит трансляцию. Догадаться о том, что ошибка произошла именно из-за забытого пробела, программа, естественно, не может: исправление будет заключаться попросту в том, что будет проигнорирована несуществующая команда "TeXpert" (так что из печатного текста будет неясно, как по-английски называют специалиста по TeX'у). Нажимать "ввод" в ответ на сообщения об ошибках — довольно распространенная на практике реакция. Если вы твердо намерены нажимать на "ввод" в ответ на все сообщения об ошибках, то можно в ответ на первое же из этих сообщений нажать на "S" или "s", а затем на " ввод"; при обнаружении дальнейших ошибок трансляция прерываться не будет (TeX будет обрабатывать ошибки так, как если бы вы все время нажимали на "ввод"), по экрану пронесутся сообщения об ошибках, а затем вы сможете их изучить, просмотрев log-файл.

    Итак, трансляция продолжается. Следующая остановка будет с таким сообщением:

    ! LaTeX Error: \begin{centrr} on input line 5
                                           ended by \end{centrr}.
    See the LaTeX manual or LaTeX Companion for explanation.
    Type  H   for immediate help.
     ...
    l.7 \end{centrr}
    
    ?

    Это сообщение об ошибке начинается со слов LaTeX Error. Такого рода сообщения не встроены в TeX, а создаются LaTeX'ом. В них также присутствуют строка, начинающаяся с !, строка, начинающаяся с l., и приглашение - вопросительный знак. Есть на экране и объяснение ошибки: из-за опечатки ( centrr вместо center) получилось, что команда \begin, открывающая окружение, не соответствует команде \end, закрывающей его : имена окружений при открывающем \begin и закрывающем \end должны совпадать). Так или иначе, давайте снова нажмем на "ввод"; тут же мы увидим вот что:

    ! Missing inserted.
    
                       ^
    l.9 как (2x+1)^
                   3=5x . И еще выключную формулу:

    На сей раз мы забыли знак доллара, открывающий формулу; TeX , однако, понял это не сразу, а лишь наткнувшись на символ "^", который вне формул таким образом использовать нельзя. Нажмем "ввод": TeX исправит положение, вставив знак доллара непосредственно перед знаком "^", и пойдет дальше (все такие исправления не вносятся в ваш файл, а происходят только в оперативной памяти компьютера). На печати формула будет иметь странный вид, поскольку "(2x+1)" будет набрано прямым шрифтом, а "5x" - курсивным, но TeX сможет продолжить трансляцию (и искать дальнейшие ошибки).

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

    ! Undefined control sequence.
    l.10 $$\frac{25}{36}=\lrft
                              (\frac{1}
    ?

    Нажав очередной раз на "ввод", мы немедленно увидим сообщение еще об одной ошибке:

    ! Extra \right.
    l.11    {1+\frac{1}{5}}\right)
                                  ^2
    ?

    Откуда это, ведь в строке 11 у нас все правильно?! Оказывается, эта ошибка была наведена предыдущей. В самом деле, перед этим TeX проигнорировал " команду" "\lrft", набранную вместо \left (именно так TeX и делает, если в ответ на ошибку "несуществующая команда" нажать на клавишу " ввод"), так что команду \left TeX вообще не видел; теперь выходит так, что в тексте, который видит TeX , присутствует \right без \left, что запрещено . Ввиду возможности появления таких " наведенных" ошибок, исправлять ошибки надо, начиная с самой первой; не исключено, что при ее исправлении часть последующих пропадет сама собой.

    Нажмем на "ввод" и на этот раз; TeX опять по-свойски исправит ошибку, и вскоре вы увидите такое сообщение:

    ! Missing } inserted.
    l.13 И последняя формула:$\sqrt{4 = 2$.
    ?

    На сей раз ошибка в том, что мы забыли закрывающую фигурную скобку. Нажмем на "ввод"; TeX вставит недостающую скобку (в результате чего на печати получится забавная формула $$\sqrt{4=2}$$, соответствующая тексту " \sqrt{4=2} ": пропажа закрывающей скобки обнаружилась не там, где мы ее забыли, а там, где ее отсутствие вошло в противоречие с синтаксическими правилами TeX'а), после чего трансляция наконец завершится. Кстати, цифра 1 в квадратных скобках, появляющаяся при этом на экране, означает, что TeX сверстал страницу номер 1 и записал ее содержимое в dvi-файл. Теперь можно и просмотреть, как будет выглядеть наш текст на печати.

    Количество различных сообщений об ошибках, которые может выдавать TeX , составляет несколько сотен, и нормальная реакция на них обычно такая же, как в нашем эксперименте; сейчас мы рассмотрим еще две типичные ошибки, реакция на которые должна быть иной.

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

    ! LaTeX Error: File `ttst.tex' not found.
    
    Type X to quit or <RETURN> to proceed,
    or enter new name. (Default extension: tex)
    
    Enter file name:

    В ответ на это следует набрать правильное имя файла и нажать на " ввод" , и трансляция благополучно продолжится. Если вообще никакого файла нет (например, TeX запущен по ошибке), наберите null — это всегда существующий пустой файл. (В некоторых версиях — nul с одним l.)

    Можно отреагировать на эту ошибку и так же, как на любую другую: нажать x и "ввод" (трансляция прервется) или s и "ввод" (неправильная команда \input будет проигнорирована, на дальнейшие ошибки TeX будет реагировать так, как если бы вы все время нажимали " ввод"). А если вы работаете с LaTeX'ом под операционной системой UNIX или каким-то ее аналогом (Linux, например), то в ответ на сообщение о такой ошибке можно и попросту нажать "ввод", и она будет проигнорирована.

    Если команда \input с именем несуществующего файла попадется TeX'у после того, как вы в ответ на какую-то из прежних ошибок сказали s, то трансляция на этом месте тем не менее остановится и TeX поинтересуется верным именем файла.

    Вторая ошибка, о которой мы хотели сказать, строго говоря, ошибкой не является; скорее, это нештатная ситуация. Чтобы смоделировать ее, проведем такой эксперимент: удалим из нашего файла test.tex последнюю строчку, гласящую "\end{document}", и снова запустим LaTeX для обработки этого файла. Нажав сколько-то раз "ввод", мы обнаружим, что работа TeX'а не закончилась, а на экран выдана звездочка: *. Эта звездочка — приглашение TeX'а ввести еще текст или команды; она появляется, когда в исходном тексте отсутствует команда для TeX'а "завершить работу" (в LaTeX'е эта команда входит в качестве составной части в комплекс действий, выполняемых командой \end{document} ). Теперь можно вводить с клавиатуры любой текст и команды - TeX отреагирует на них так же, как если бы этот текст и команды присутствовали в вашем файле. Не будем баловаться, а просто наберем \end{document} и нажмем на "ввод", после чего трансляция благополучно завершится. Вряд ли вы будете очень часто забывать последнюю строчку в исходном тексте, но иногда, в результате какой-либо сложной ошибки, может случиться так, что TeX "не заметит" строки \end{document}, и вот тогда-то вы и окажетесь лицом к лицу с TeX'овским приглашением-звездочкой.

    Бывают и такие хитрые ошибки, что \end{document} в ответ на приглашение-звездочку LaTeX не удовлетворяет и на экране снова появляется звездочка. На этот случай в LaTeX'е предусмотрено последнее средство: команда \stop. Если вы введете ее в ответ на TeX'овское приглашение, то, скорее всего, трансляция все-таки прервется. Если и \stop не помогает, остается только перезагрузить компьютер или "убить процесс" более цивилизованным способом.

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

    (\end occurred inside a group at level 1)

    (вместо 1 может стоять и другая цифра, в зависимости от того, сколько вложенных групп вы забыли закрыть). В частности, такое сообщение будет, если вы забыли закрыть или неправильно закрыли какое-то LaTeX'овское окружение (но в этом случае LaTeX выдаст вам и свое сообщение об ошибке, как в нашем примере с \begin{center} и \end{centrr} ).

    Наряду с пассивной реакцией на ошибки — все время нажимать на " ввод" или сказать s — есть и другая возможность: прямо с клавиатуры вносить исправления в тот текст, который " видит" TeX . На содержимое файла это не повлияет, но изменения в файл можно будет внести и позднее, руководствуясь тем, что записано в log-файле. При этом может сэкономиться время за счет того, что будет меньше "наведенных" ошибок и, как следствие, потребуется меньше прогонов TeX'а для отладки.

    Чтобы внести исправления с клавиатуры, надо нажать i или I и затем "ввод". На экране появится такое приглашение:

    insert>

    В ответ на это приглашение следует ввести тот текст и/или команды, которые вы хотите вставить в текст, читаемый TeX'ом. Чтобы продемонстрировать это на практике, давайте приведем файл test.tex в исходное состояние, вернув в него строку \end{document}, и еще раз запустим LaTeX для его обработки. В ответ на первое же сообщение (по поводу несуществующей команды "TeXpert") нажмем i , а затем, в ответ на приглашение insert>, наберем правильный текст.

    TeX pert

    и нажмем на "ввод". В ответ на вторую ошибку (когда мы в команде \end допустили опечатку в имени окружения center) скажем сначала i, а затем (в ответ на приглашение) "\end{center}" (кстати, можно делать такие вещи и в один шаг: сразу набрать "i\end{center}" и нажать " ввод"). В ответ на следующую ошибку ничего не остается, как по-прежнему нажать на "ввод": те символы в исходном тексте, между которыми должен был стоять пропущенный знак доллара, уже поглощены TeX'ом, и вставить его куда надо в данный момент невозможно; зато в ответ на следующую ошибку ( "\lrft" вместо \left ) наберем "i\left" и нажмем на "ввод". Следующей (" наведенной") ошибки вообще не будет (ведь на сей раз в тексте, который видит TeX , команда \left присутствует, а поэтому и на команду \right он отреагирует правильно); наконец, в ответ на последнюю ошибку опять ничего не остается, кроме как нажать на "ввод": вставить закрывающую фигурную скобку между 4 и знаком равенства прямо с клавиатуры невозможно. Теперь можно просмотреть, как на сей раз будет выглядеть на печати наш текст; некоторые несуразности наподобие $$\sqrt{4=2}$$ в нем останутся, но их будет меньше, чем если бы мы нажимали на "ввод" : не будет потеряно слово "TeXpert", центрированная строка будет действительно центрирована, формула$$\frac{25}{36}=\left(\frac{1} {1+\frac{1}{5}}\right)^2$$ будет выглядеть так, как надо. Теперь остается внести исправления в исходный файл (справляясь с тем, что записано в log-файле) и запустить LaTeX вторично, чтобы получить безошибочный текст.

    Как мы уже отмечали, в ответ на сообщение об ошибке всегда можно прервать трансляцию, нажав X или x и "ввод"; кроме того, бывают случаи, когда TeX прерывает трансляцию "по своей инициативе". На практике важны два случая:

  • TeX обнаружил 100 ошибок в пределах одного абзаца — тогда выдается сообщение (That makes 100 errors; please try again.)
  • TeX'у не хватило памяти — тогда выдается сообщение типа ! TeX capacity exceeded, sorry [main memory size=263001].
  • Нехватка памяти может возникнуть в результате таких ошибок, из-за которых TeX "зацикливается"; тогда достаточно исправить ошибку. Иногда памяти может действительно не хватить. Так бывает, если в тексте встречаются чудовищно длинные абзацыНа моем домашнем компьютере TeX'овская память иссякла, когда длина абзаца превысила 34 страницы. или сверхсложные таблицы с очень большим количеством строк и столбцов (см. лекцию 4 по поводу таблиц). Если вы встретились с такой проблемой, то можно проконсультироваться со специалистом (или самому изучить по книге [2]), как использовать TeX более эффективно (в частности, TeX можно научить переваривать сколь угодно длинные абзацы). Можно также попробовать найти транслятор TeX'а, дающий возможность работать с увеличенным объемом памяти.

    Скажем пару слов про более редкие способы реакции на ошибки. Во-первых, в ответ на приглашение ? можно набрать h или H и нажать "ввод". В этом случае TeX выдаст на экран дополнительную информацию по поводу вашей ошибки (вряд ли вы много из нее почерпнете, если вы не TeX ник), а затем еще раз приглашение ?. Во-вторых, можно набрать r или R (и " ввод", естественно); результат будет такой же, как если бы вы сказали s , с той разницей, что в случае, когда аргументом команды \input служит несуществующий файл, никаких вопросов задаваться не будет, а трансляция просто прервется. Наконец, можно набрать Q или q (и "ввод"): результат будет такой же, как от R , с той разницей, что на экран не будет выдаваться вообще ничего (в log -файл все будет записано).

    Наконец, режимы реакции на ошибки, задаваемые с клавиатуры с помощью клавиш s , r или q , можно задать прямо в файле, написав в преамбуле одну из перечисленных ниже команд:

  • \scrollmode - равносильна нажатию s
  • \nonstopmode - равносильна нажатию r
  • \batchmode - равносильна нажатию q
  • Как изучать курс дальше?

    Наш обзор основных понятий завершен, и вы уже можете подготовить с помощью LaTeX'а несложный текст. Дальнейшее чтение, в зависимости от ваших потребностей, можно построить по-разному: несколько последующих лекций почти независимы друг от друга, а внутри каждой из них материал расположен в порядке возрастания трудности.

    В лекции 2 подробно рассказано про набор математических формул.

    Лекция 3 посвящена набору текста " в малом": в ней рассказывается, в частности, как задавать в тексте шрифты разных начертаний и размеров, как набирать ударения над буквами и специальные типографские значки наподобие знака параграфа, как делать сноски и т.п.

    Лекция 4 посвящена оформлению текста " в целом": в ней подробно рассказано про то, какие бывают классы документов и чем они отличаются друг от друга, как устроить разбиение текста на разделы таким образом, чтобы LaTeX автоматически создавал заголовки этих разделов и к тому же автоматически их нумеровал, как оформлять титульный лист, как создать оглавление, и тому подобное.

    В лекции 5 описаны так называемые псевдорисунки - примитивные картинки, которые можно создавать, не выходя за рамки LaTeX'а.

    В лекции 6 рассказывается о печати таблиц с помощью LaTeX'а.

    В лекции 7 объяснено, как можно повысить эффективность своей работы в LaTeX'е, создавая собственные команды. Первые разделы этой лекции можно (а скорее всего, и нужно) читать параллельно с лекцией 2.

    Две последние лекции предназначены прежде всего для читателей, интересующихся не только набором, но и версткой. В лекции 8 рассказывается о таких фундаментальных понятиях TeX'а, как "блоки" и "клей"; заключительная лекция 9, предполагающая знание всего предыдущего материала, рассказывает, как изменить стандартный стиль оформления документов, предоставляемый LaTeX'ом, применительно к своим нуждам.

    Курс завершается различными приложениями, посвященными более частным вопросам; об их содержании можно узнать из оглавления.

    Страницы:

    Общие замечания

    Что такое TeX и LaTeX

    Как уже отмечалось в предисловии, TeX (произносится "тех", пишется также "TeX") - это созданная американским математиком и программистом Дональдом Кнутом (Donald E. Knuth)- система для верстки текстов с формулами. Сам по себе TеX представляет собой специализированный язык программирования (Кнут не только придумал язык, но и написал для него транслятор, причем таким образом, что он работает совершенно одинаково на самых разных компьютерах), на котором пишутся издательские системы, используемые на практике. Точнее говоря, каждая издательская система на базе ТеХ-а представляет собой пакет макроопределений (макропакет) этого языка. В частности, LaTeX (произносится "латех" или "лэйтех", пишется также "LaTeX") - это созданная Лесли Лэмпортом (Leslie Lamport) издательская система на базе TeX-а.

    Прежде чем углубиться в изучение собственно LaTeX'а, скажем несколько слов о других издательских системах на базе TeX'а. Наряду с LaTeX'ом распространены также макропакеты Plain-TeX и AMS-TeX. Макропакет Plain-TeX был разработан самим Дональдом Кнутом, рассматривавшим его в качестве платформы для построения более сложных систем; на практике он используется и как средство для обмена текстами (текст, подготовленный для Plain TeX'а, сравнительно несложно переделать в исходный текст для того же LaTeX'а). Что касается AMS-TeX'а, то эта издательская система сориентирована на важный, но узкий круг приложений: верстку статей для математических журналов и книг, издаваемых Американским математическим обществом. Соответственно, в AMS-TeX'е предусмотрено большое количество весьма изощренных возможностей для создания сложных математических формул, но при этом нет многих вещей, которые естественно было бы ожидать в издательских системах общего назначения (например, автоматической нумерации частей документа). Современные версии LaTeX'а включают в себя AMS-TeX'овские возможности для набора формул (и используются Американским математическим обществом).

    Настоящее издание этой книги посвящено описанию LaTeX'а версии $$2\varepsilon $$ (она называется LaTeX $$2\varepsilon $$, произносится " два е" или "два эпсилон"). Эта версия, вышедшая в 1994 году, в настоящее время стала стандартной. Ее создатели Йоханнес Браамс (Johannes Braams), Михаэль Гуссенс (Michael Goossens), Алан Джеффри (Alan Jeffrey), Дэвид Карлайл (David Carlisle), Франк Миттельбах (Frank Mittelbach), Крис Роули (Chris Rowley) и Райнер Шепф (Rainer Schopf). Иногда встречаются тексты, набранные в более старой версии LaTeX'а (так называемый LaTeX 2.09, описанный в предыдущих изданиях этой книги). Во многих случаях файл, подготовленный в LaTeX'e 2.09, успешно обрабатывается и с помощью LaTeX'а $$2\varepsilon$$, хотя абсолютной совместимости "снизу вверх" все же нет.

    Достоинства и недостатки

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

    Огромным достоинством систем на базе TeX'а является высокое качество и гибкость верстки абзацев и математических формул (в этом отношении TeX до сих пор не превзойден).

    Программа TeX (и все издательские системы на ее базе) неприхотлива к технике (в свое время автор этих строк с успехом работал в TeX'е на компьютерах на базе всеми забытого 80286-процессора, и даже на таком электронном тихоходе, как IBM XT, а уж с современными компьютерами проблем заведомо не возникает).

    С другой стороны, TeX'овские файлы (особенно английские — с русскими дело обстоит хуже; см приложение E) обладают высокой степенью переносимости: вы можете подготовить LaTeX'овский исходный текст на своей IBM PC, переслать его (скажем, по электронной почте) в издательство, и надеяться, что там ваш текст будет правильно обработан и на печати получится в точности то же, что получилось у вас при пробной печати на вашем любимом принтере (с той единственной разницей, что фотонаборный автомат даст отпечаток более высокого качества). Благодаря этому обстоятельству TeX стал очень популярен как язык международного обмена статьями по математике и физике.

    Есть у TeX'а и недостатки. Тем, кто привык к редакторам наподобие Word'а, может не понравиться, что TeX не является системой типа WYSIWYG: работа с исходным текстом и просмотр того, как текст будет выглядеть на печати, — разные операции. На взгляд автора, благодаря этой особенности время на подготовку текста типографского качества только сокращается, но представления об удобстве у всех разные.

    Далее, хотя параметры оформления менять легко, создать принципиально новое оформление (новый "класс документов") — совсем не простое дело.

    Переносимость TeX'овских текстов снижается, если в них предусмотрен импорт графических файлов (эта возможность в TeX'е зависит от его реализации). Впрочем, в последнее время в этом отношении наметился определенный прогресс: стандартом de facto в TeX'овском мире становится представление графики в формате PostScript, причем в LaTeX'e появились удобные средства для включения этой графики в текст.

    Наконец, как мы отмечали в предисловии, TeX плохо приспособлен для верстки страниц со сложным взаимодействием текста и графики.

    Литература по TeX'у

    Каноническое описание языка TeX и макропакета Plain TeX — трудная книга Дональда Кнута [2]. У рядового пользователя LaTeX'а необходимость читать эту книгу обычно не возникает.

    Каноническое описание AMS-TeX'а — книга [5], также написанная самим создателем AMS-TeXа Майклом Спиваком (Michael Spivak).

    Наконец, каноническое описание LaTeX'а — книга Лесли Лэмпорта[1]. Настоящее пособие в чем-то уже, чем книга[1], а в чем-то — шире: мы не упоминаем о некоторых средствах LaTeX'а, которые, на наш взгляд, редко используются на практике, но при этом рассказываем о многих полезных вещах, о которых в [1] не упоминается. Разнообразные модификации стандартного стиля оформления (" пакеты") описаны в книге Миттельбаха, Гуссенса и Самарина [6], рассчитанной на читателя, уже умеющего работать в LaTeX'е. Некоторые другие книги по LaTeX'у приведены в списке литературы .

    Одной из первых книг по LaTeX'у на русском языке была брошюра [4], представляющая собой выполненный А.Шенем перевод краткого руководства [3] с дополнением переводчика, посвященным описанию одной из популярных реализаций TeX'а под DOS - системы emTeX.

    Как проходит работа с системой LaTeX

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

    В частности, все, что сказано в этом разделе, применимо не только к LaTeX'у, но и к любому другому макропакету для TeX'а, хотя мы всегда будем говорить "LaTeX".

    Для начала автор должен подготовить с помощью любого текстового редактора файл с текстом, оснащенным командами для LaTeX'а. Такие файлы по традиции имеют расширение "tex" (описанию того, что должно быть в таком файле, и посвящена вся эта книга )Подчеркнем, что это должен быть именно " чистый" текстовый файл; doc-файлы для этих целей не годятся!. Дальнейшая работа протекает в два этапа. Сначала надо обработать файл с помощью программы-транслятора; в результате получается файл с расширением "dvi" (device independent - не зависящий от устройства).

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

    На самом деле повторений цикла будет больше, так как придется еще исправлять синтаксические ошибки в исходном тексте.

    Перед тем, как начать работать в системе LaTeX, вам необходимо уяснить для себя три вопроса:

  • Что нужно сделать, чтобы оттранслировать исходный текст (т.е. создать из него dvi-файл)?
  • Что нужно сделать, чтобы просмотреть dvi-файл на экране?
  • Что нужно сделать, чтобы напечатать dvi-файл?
  • Кроме того, для создания исходного текста нужно, естественно, уметь обращаться с каким-нибудь текстовым редактором.

    Ответы на эти вопросы проще всего получить у знакомых, которые уже пользуются TeX'ом; они же помогут его достать (практически все реализации TeX'а являются свободно распространяемыми) и установить. Некоторые сведения о реализациях TeX'а для систем типа Unix (Linux, FreeBSD и др.) и для DOS/Windows приведены в приложении E.

    Основные понятия

    Исходный файл

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

    Исходный текст документа не должен содержать переносов (TeX сделает их сам). Слова отделяются друг от друга пробелами, при этом TeX не различает, сколько именно пробелов вы оставили между словами (чтобы вручную управлять пробелами, есть специальные команды, о которых пойдет речь позже). Конец строки также воспринимается как пробел. Соседние абзацы должны быть отделены друг от друга пустыми строками (опять-таки все равно, сколько именно пустых строк стоит между абзацами, важно, чтоб была хоть одна).

    В правой колонке приведен фрагмент исходного текста, а в левой - то, как он будет выглядеть на печати после обработки системой LaTeX.

    $$\parindent=0.7cm Слова разделяются пробелами, а абзацы - пустыми строками. Абзацный отступ в исходном тексте оставлять не надо: он получается авто\-ма\-ти\-чески$$.
    Слова  разделяются пробелами,
    а         абзацы -
         пустыми строками.
    
    Абзацный отступ в исходном
       тексте   оставлять
             не
         надо: он получается
    автоматически.

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

    Предупреждение: мы используем русские буквы в наших примерах, хотя стандартный LaTeX (без специальной "русификации") их не понимает, и, строго говоря, следовало бы использовать латинские буквы. Подробнее об этом написано в приложении E.

    Спецсимволы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    $$Освоить \LaTeX\ проще, чем \TeX. Человека, который знает систему \TeX{} и любит ее, можно назвать \TeX ником$$.
    Освоить \LaTeX\ проще,
    чем \TeX. Человека,
    который знает систему
    \TeX{} и любит ее, можно
    назвать \TeX ником.

    В последней строке этого примера мы не создали пробела после команды \TeX, чтобы эмблема TeX'а слилась с последующим текстом.

    Структура исходного текста

    LaTeX-файл должен начинаться с команды

    \documentclass

    задающей стиль оформления документа (в LaTeX'е $$2\varepsilon$$ принято говорить "класс документа" В LaTeX 2.09 говорилось \documentstyle вместо \documentclass .

    Пример:

    \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}

    Совет: если вы до сих пор не работали с системой LaTeX на компьютере, сейчас самое время попробовать (только замените русские буквы на латинские, если доступный вам LaTeX не " русифицирован").

    Группы

    Важным понятием TeX'а является понятие группы. Чтобы понять, что это такое, рассмотрим пример.

    При обработке TeX'ом исходного файла набор текста в каждый момент идет каким-то вполне определенным шрифтом (он называется текущим шрифтом). Изначально текущим шрифтом является " обычный" прямой шрифт (по-английски "roman"). Команда \slshape, с которой мы уже столкнулись в разд."Команды и их задание в тексте", переключает текущий шрифт на наклонный, а upshape выполняет обратное переключение. Аналогичным образом команды bfseries и mdseries меняют жирность шрифтаПодробнее о переключении шрифтов будет рассказано в разделе лекции 3 "Смена шрифтов в тексте" .

    $$Полужирный шрифт начнется с \bfseries этого слова. Снова \mdseries светлый, теперь \slshape наклонный, до нового переключения; вновь \upshape прямой$$.
    Полужирный шрифт начнется
    с \bfseries этого слова.
    Снова \mdseries светлый,
    теперь \slshape наклонный,
    до нового переключения;
    вновь \upshape прямой.

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

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

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

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

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

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

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

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

    Команды с аргументами

    Команды наподобие LaTeX или, скажем, bfseries действуют " сами по себе"; многим командам, однако, необходимо задать аргументы. Первый пример тому дает команда documentclass: слово, указываемое в фигурных скобках, — ее аргумент; если его не указать, то произойдет ошибка. В LaTeX'е аргументы команд бывают обязательные и необязательные. Обязательные аргументы задаются в фигурных скобках если для команды предусмотрено наличие обязательных аргументов, она без них правильно работать не будет. У многих команд предусмотрены также и необязательные аргументы: они влияют на работу команды, коль скоро они указаны, но их отсутствие не ведет к сообщению об ошибке. Необязательные аргументы задаются в квадратных скобках.

    В частности, у команды documentclass предусмотрен обязательный аргумент, о котором уже шла речь, и необязательный: в квадратных скобках перед обязательным аргументом можно указать список (через запятую) так называемых классовых опций, т.е. дополнительных особенностей оформления. Например, если мы хотим, чтобы книга набиралась шрифтом кегля 12 вместо кегля 10, принятого по умолчаниюПримечание для полиграфистов: TeX'овский кегль 10 примерно соответствует нашему девятому кеглю, и притом в две колонки, мы должны начать файл командой

    \documentclass[12pt,twocolumn]{book}

    Есть также классовая опция 11pt, означающая, что текст будет набираться кеглем 11. Полный список возможных классовых опций приведен в разд. "Классы, пакеты и классовые опции" лекции 4.

    Наряду с классовыми опциями в LaTeX'е используются и так называемые стилевые пакеты. После команды \documentclass, начинающей файл, может следовать команда \usepackage, в аргументе которой стоит (через запятую) список подключаемых этой командой стилевых пакетов. (Можно использовать и несколько команд usepackage.) Например, первые две строки файла могут быть такими:

    \documentclass[12pt,twocolumn]{book}
    \usepackage{amsfonts,longtable}

    Здесь пакет amsfonts подключается, чтобы использовать в математических формулах дополнительные шрифты, позволяющие напечатать что-нибудь вроде $$\mathfrak{sl}_2(\mathbb C)$$, а пакет longtable нужен, чтобы иметь возможность набирать таблицы, простирающиеся на несколько страниц. Когда мы говорим: "чтобы воспользоваться этой возможностью, необходимо подключить такие-то стилевые пакеты", мы молчаливо предполагаем, что поставка LaTeX'а, которой вы пользуетесь, все эти пакеты содержит. В приложении Ж мы расскажем о том, откуда их взять.

    Необязательных аргументов может быть предусмотрено несколько; иногда они должны располагаться до обязательных, иногда после. В любом случае порядок, в котором должны идти аргументы команды, надо строго соблюдать. Между скобками, в которые заключены обязательные аргументы, могут быть пробелы, но не должно быть пустых строк.

    Окружения

    Еще одна важная конструкция LaTeX'а - это окружение(environment)

    Окружение - это фрагмент файла, начинающийся с текста

    \begin{"TeXtit{имя_окружения} "}

    где TeXtit{имя\_окружения} представляет собой первый обязательный (и, возможно, не единственный) аргумент команды \begin. Заканчивается окружение командой

    \end{"TeXtit{имя\_окружения} "}

    (команда \end имеет только один аргумент - имя завершаемого ею окружения). Например:

    $$\begin{minipage}[t]{4cm} \begin{center}\label{sml:center} Все строки этого абзаца будут центрированы; переносов не будет, если только какое-то слово, как в де\-зо\-кси\-ри\-бо\-ну\-кле\-ино\-вой кислоте, не длинней строки. \end{center} \end{minipage} $$
    \begin{center}
    Все строки этого абзаца 
    будут центрированы; переносов 
    не будет, если только 
    какое-то слово, как в 
    дезоксирибонуклеиновой 
    кислоте, не длинней строки.
    \end{center}

    Каждой команде \begin, открывающей окружение, должна соответствовать закрывающая его команда \end (с тем же именем окружения в качестве аргумента).

    Важным свойством окружений является то, что они действуют и как фигурные скобки: часть файла, находящаяся внутри окружения, образует группу. Например, внутри окружения center в вышеприведенном примере можно было бы сменить шрифт, скажем, командой \itshape, и при этом после команды \end{center} восстановился бы тот шрифт, что был перед окружением.

    Звездочка после имени команды

    В LaTeX'е некоторые команды и окружения имеют варианты, в которых непосредственно после имени команды или окружения ставится звездочка "*". Например, команда \section означает "начать новый раздел документа", а команда \section* означает "начать новый раздел документа, не нумеруя его".

    Параметры

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

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

    \parindent=2cm

    (Это изменение распространяется лишь на текущую группу: после конца группы восстановится старое значение отступа.)

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

    Единицы длины

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

    TeX'овские единицы длины
    pt пункт $$\approx$$ 0.35,миллиметра
    pc пика=12pt
    mm миллиметр
    cm сантиметр = 10 mm
    in дюйм = 25,4 mm
    dd пункт Дидо $$\approx$$ 1.07pt
    cc Цицеро = 12 dd

    Замечание для полиграфистов: TeX'овский пункт является единицей измерения, принятой в англо-американской типометрии; он отличается от пункта, принятого в континентальной Европе (в том числе и в России). Единица измерения, называемая в TeX'е пунктом Дидо, соответствует пункту, к которому привыкли отечественные полиграфисты.

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

    Даже если длина, которую вы указываете TeX'у, равна нулю, все равно необходимо указать при этом нуле какую-нибудь из используемых TeX'ом единиц длины. Например, если написать

    \parindent=0

    то вы получите сообщение об ошибке; вместо "0" надо было бы писать, например, "0pt" или "0in".

    Кроме перечисленных, в TeX'е используются еще две " относительные" единицы длины, размер которых зависит от текущего шрифта. Это em приблизительно равная ширине буквы "М" текущего шрифта, и ex приблизительно равная высоте буквы "x" текущего шрифта. Эти единицы удобно использовать в командах, которые должны работать единообразно для шрифтов разных размеров.

    Автоматическая генерация ссылок

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

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

  • пометить то место, на которое вы хотите сослаться в дальнейшем (или предшествующем) тексте;
  • в том месте текста, где вы хотите поместить ссылку, поставить команду-ссылку на вашу метку.
  • Конкретно это реализуется так. Помечается любое место текста с помощью команды \label. Эта команда имеет один обязательный аргумент (помещаемый, стало быть, в фигурных скобках) - " метку". В качестве метки можно использовать любую последовательность букв и цифр (не содержащую пробелов). Например, эта команда может иметь вид

    \label{wash}

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

    $$Обязательно мойте руки\label{wash} перед едой, чтобы не заболеть. Как известно (см. с.~99), руки надо мыть$$.
    Обязательно мойте
    руки\label{wash} перед
    едой, чтобы не заболеть.
    
    Как известно (см.
    с.~\pageref{wash}),
    руки надо мыть.

    Обратите внимание, что мы поставили команду \label. рядом с ключевым словом "руки" без пробела, чтобы гарантировать, что будет помечена именно та страница, на которую попало это слово.

    В этом примере мы использовали еще значок "~ " (" неразрывный пробел"), чтобы при печати сокращение " с." попало на ту же строку, что и номер страницы. Подробности см. в разд."Неразрывный пробел" лекции 3.

    После того как вы впервые вставите в свой файл команды \label и \pageref, при трансляции вы получите сообщение о том, что ваша ссылка не определена, а на печати или при просмотре увидите на месте своих ссылок вопросительные знаки. Дело в том, что в этот момент LaTeX еще не знает значения ваших меток: он только записывает информацию о них в специальный файл (с тем же именем, что у обрабатываемого файла, и расширением aux) при следующем запуске он прочтет эту информацию и подставит ссылки. Если в промежутке между двумя запусками в файл были внесены изменения, это может привести к сдвигу нумерации страниц. Если такие изменения действительно произошли, LaTeX сообщит вам об этом и попросит запустить программу еще раз, чтобы получить корректные ссылки. (На практике иногда нужно и больше запусков программы LaTeX — если в книге есть оглавление, предметный указатель и др.)

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

    На место, помеченное с помощью команды \label, можно сослаться с помощью команды \ref, а не \pageref — тогда на печати получится не номер страницы, а номер раздела документа, в котором находится метка, или номер рисунка, или номер элемента в нумерованном перечне и т.п. — пометить с возможностью ссылки можно почти любой элемент документа. Об этом мы будем подробно говорить в разд. "Еще о метках и ссылках" лекции 4.

    Набор формул в простейших случаях

    Основные принципы

    В документе, подготовленном с помощью TeX'а, различают математические формулы внутри текста и " выключные" (выделенные в отдельную строку). Формулы внутри текста окружаются знаками $ (с обеих сторон). Выключные формулы окружаются парами знаков доллара $$ с обеих сторон. Формулами считаются как целые формулы, так и отдельные цифры или буквы, в том числе греческие, а также верхние и нижние индексы и спецзнаки. Пробелы внутри исходного текста, задающего формулу, игнорируются (но по-прежнему надо ставить пробелы, обозначающие конец команды): TeX расставляет пробелы в математических формулах автоматически (например, знак равенства окружается небольшими пробелами). Пустые строки внутри текста, задающего формулу, не разрешаются. Если нужен пробел до или после внутритекстовой формулы, надо оставить его вне долларов. То же самое относится и к знакам препинания, следующим за внутритекстовой формулой: их также надо ставить после закрывающего формулу знака доллара. (В выключных формулах приходится указывать знаки препинания внутри долларов, иначе эти знаки попадут на следующую строку.) Каждая буква в формуле рассматривается как имя переменной и набирается шрифтом " математический курсив" (в отличие от обычного курсива, в нем увеличены расстояния между соседними буквами).

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

    Степени и индексы

    Степени и индексы набираются с помощью знаков "^" и "_" соответственно.

    $$Катеты $a$,$b$ треугольника связаны с его гипотенузой $c$ формулой\\ $c^2=a^2+b^2$ (теорема Пифагора)$$.
    Катеты $a$,$b$ треугольника
    связаны с его
    гипотенузой $c$ формулой 
    $c^2=a^2+b^2$ 
    (теорема Пифагора).

    Если индекс или показатель степени - выражение, состоящее более чем из одного символа, то его надо взять в фигурные скобки:

    $$Из теоремы Ферма следует, что уравнение $$ x^{4357}+y^{4357}=z^{4357} $$ не имеет решений в натуральных числах$$.
    Из теоремы Ферма следует,
    что уравнение 
    $$
    x^{4357}+y^{4357}=z^{4357}
    $$
    не имеет решений в
    натуральных числах.

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

    $$Обозначение $R^i_{jkl}$ для тензора кривизны было введено еще Эйнштейном$$.
    Обозначение $R^i_{jkl}$ для
    тензора кривизны было
    введено еще Эйнштейном.

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

    $$Можно также написать $R_j{}^i{}_{kl}$, хотя не всем это нравится$$.
    Можно также написать 
    $R_j{}^i{}_{kl}$, хотя
    не всем это нравится.

    Если вы хотите написать формулу, читающуюся как "два в степени, равной икс в кубе", то запись "2^x^3" вызовет сообщение об ошибке; правильно будет "2^{x^3}" (на печати это будет выглядеть как $$2^{x^3}$$ ).

    Дроби

    Дроби, обозначаемые косой чертой (так рекомендуется обозначать дроби во внутритекстовых формулах), набираются непосредственно:

    $$Неравенство $x+1/x\ge 2$ выполнено для всех $x>0$$$.
    Неравенство $x+1/x\ge 2$ 
    выполнено для всех $x>0$.

    В этом примере мы еще использовали знаки "строгих" неравенств (в TeX'овских формулах они набираются непосредственно, как знаки ">" и "<") и нестрогих неравенств (знак "больше или равно" генерируется командой \ge, "меньше или равно" — командой \le ). Если вы употребите символы "<" и ">" в обычном тексте, вне формул, то вместо знаков "меньше" и "больше" увидите небольшой сюрприз.

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

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

    $$\pi\approx 3{,}14$$ \pi\approx 3{,}14

    Здесь команда \pi порождает греческую букву $$\pi$$, а команда \approx дает знак $$\approx$$ (" приближенно равно"). Десятичную точку в дробях заключать в скобки не нужно.

    Дроби, в которых числитель расположен над знаменателем, набираются с помощью команды \frac.Эта команда имеет два обязательных аргумента: первый - числитель, второй - знаменатель.

    Пример:

    $$$$ \frac{(a+b)^2}{4}- \frac{(a-b)^2}{4}= ab $$ $$
    $$
    \frac{(a+b)^2}{4}-
    \frac{(a-b)^2}{4}=ab
    $$

    Если числитель и\или знаменатель дроби записываются одной буквой (в том числе греческой) или цифрой, то можно их и не брать в фигурные скобки:

    $$$$ \frac12+\frac x 2= \frac{1+x}2 $$ $$
    $$
    \frac12+\frac x 2=
    \frac{1+x}2
    $$

    Скобки

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

    $$$$ 1+\left(\frac{1}{1-x^{2}} \right)^3 $$ $$
    $$
    1+\left(\frac{1}{1-x^{2}}
    \right)^3
    $$

    Команда \left перед открывающей скобкой в совокупности с командой \right перед соответствующей ей закрывающей скобкой позволяет автоматически выбрать нужный размер скобки:

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

    Корни

    Квадратный корень набирается с помощью команды \sqrt, обязательным аргументом которой является подкоренное выражение; корень произвольной степени набирается с помощью той же команды \sqrt с необязательным аргументом — показателем корня (необязательный аргумент у этой команды ставится перед обязательным). Пример:

    $$По общепринятому соглашению, \\$\sqrt[3]{x^3}=x$, но $\sqrt{x^2}=|x|$$$.
    По общепринятому соглашению, 
    $\sqrt[3]{x^3}=x$,
     но $\sqrt{x^2}=|x|$.

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

    Штрихи и многоточия

    Штрихи в математических формулах обозначаются знаком "'" (и не оформляются как верхние индексы):

    $$Согласно формуле Лейбница, $$ (fg)''=f''g+2f'g'+fg''. $$ Это похоже на формулу квадрата суммы$$.
    Согласно формуле Лейбница,
    $$
    (fg)''=f''g+2f'g'+fg''.
    $$
    Это похоже на формулу
    квадрата суммы.

    Если надо записать формулу, читающуюся как " $$x$$ штрих в квадрате", возьмите x' в фигурные скобки, вот так: ${x'}^2$. Обратите еще внимание на то, что точку мы поставили в конце выключенной формулы (если бы мы поставили ее после знаков $$, то с нее начался бы абзац, следующий после формулы).

    В математических формулах встречаются многоточия; TeX различает многоточие, расположенное внизу строки (обозначается \ldots ), и расположенное по центру строки (оно обозначается \cdots ). Первое из них используется при перечислениях, второе — когда нужно заменить пропущенные слагаемые или сомножители (такова американская традиция; в России обычно многоточие ставят внизу строки и в этом случае):

    $$В детстве К~.-Ф.~Гаусс придумал, как быстро найти сумму $$1+2+\cdots+100=5050; $$ это случилось, когда школьный учитель задал классу найти сумму чисел $1,2,\ldots,100$$$.
    В детстве К~.-Ф.~Гаусс придумал,
    как быстро найти сумму
    $$1+2+\cdots+100=5050;
    $$
    это случилось, когда школьный
    учитель задал классу найти
    сумму чисел $1,2,\ldots,100$.

    Знак "~" после инициалов великого Гаусса мы поставили, чтобы фамилия не могла перенестись на другую строку отдельно от инициалов. В LaTeX'е можно использовать команду \ldots и в обычном тексте, вне математических формул, для знака многоточия.

    Имена функций

    Функции наподобие $$\sin$$, $$\log$$ и т.п., имена которых принято печатать прямым шрифтом, набираются с помощью специальных команд (обычно одноименных с обозначениями соответствующих функций).

    $$Как знают некоторые школьники, \\$\log_{1/16}2=-1/4$, а $\sin(\pi/6)=1/2$$$.
    Как знают некоторые школьники,
    $\log_{1/16}2=-1/4$,
    а $\sin(\pi/6)=1/2$.

    Заметьте, что основание логарифма задается как нижний индекс.

    Полный список команд, аналогичных \log или \sin, приведен в разд."Операции с пределами и без" лекции 2

    В стандартный набор команд TeX'а не входят команды для функций $$\tg$$ и $$\ctg$$ (в англоязычных странах эти функции принято обозначать $$\tan$$ и $$\cot$$ соответственно). Большой беды тут нет, поскольку эти недостающие команды легко определить самому (см.лекцию 2).

    Разбиение исходного файла на части

    Команды, рассматриваемые в этом разделе, помогают разумно организовать исходный текст.

    Часто бывает удобно разбить большой текст на несколько частей, хранящихся в разных файлах. Чтобы можно было объединить их в одно целое, в LaTeX'е предусмотрена команда \input. Если в тексте написать

    \input{имя\_файла}

    то TeX будет работать так, как если бы вместо строки с командой \input стоял текст файла, имя которого вы указали.

    Обычно, готовя текст большого объема, создают небольшой " головной файл", в котором между \begin{document} и \end{document} размещены строки с командами \input, задающими включение файлов, в которых и записана основная часть текста. Например, книгу из четырех глав, записанных в файлах "ch1.tex",..., "ch4.tex", можно организовать в виде файла из девяти строчек (именно его, а не файлы с отдельными главами, надо будет передать для обработки LaTeX'у):

    \documentclass[11pt]{report}
    \frenchspacing
    \pagestyle{plain}
    \begin{document}
    \input{ch1}
    \input{ch2}
    \input{ch3}
    \input{ch4}
    \end{document}

    (Если расширение файла, являющегося аргументом команды \input, не указано, то LaTeX по умолчанию добавляет расширение tex.)

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

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

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

    Если фрагменты текста, включаемые с помощью команд \input, должны на печати начинаться с отдельной страницы (например, если это главы книги, как в приведенном примере), то удобно вместо \input воспользоваться командой \include (ее единственный обязательный аргумент — имя включаемого файла). Выгода здесь в том, что при пользовании командой \include можно в процессе работы над текстом попросить LaTeX обрабатывать только часть включаемых файлов.

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

    \documentclass[11pt]{report}
    \frenchspacing
    \pagestyle{plain}
    \includeonly{ch2,ch3}
    \begin{document}
    \include{ch1}
    \include{ch2}
    \include{ch3}
    \include{ch4}
    \end{document}

    ( Внимание! В аргументе команды \include расширение ".tex" опускать необходимо! Файлы с расширениями, отличными от ".tex", с помощью этой команды подключать нельзя.) Когда вы перейдете к работе над другими главами, аргумент команды \includeonly надо будет соответствующим образом изменить, а когда весь текст будет готов, можно вообще удалить \includeonly из файла. При этом количество запусков LaTeX'а, необходимых для получения правильных ссылок, задаваемых командами \ref и \pageref, будет меньше, чем при проведении аналогичных манипуляций с \input.

    Команду \include нельзя употреблять в файле, который сам включается в текст с помощью \include (для \input такого запрета нет).

    Обработка ошибок

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

    Все сообщения, которые TeX выдает на экран в процессе трансляции исходного текста, все ваши ответы на эти сообщения, вообще все, что в процессе трансляции появляется на экране, записывается в специальный файл — протокол трансляции. Обычно файл-протокол имеет то же имя, что обрабатываемый TeX'ом файл, и расширение .log, поэтому он называется .log-файлом. Когда трансляция будет завершена, вы можете в спокойной обстановке просмотреть . log - файл и проанализировать, что произошло.

    Часть информации, выдаваемой при трансляции на экран и в .log-файл, представляет собой предупреждения (например, о нештатных ситуациях при верстке абзаца), при выдаче которых трансляция не прерывается . Если, однако, TeX натыкается на синтаксическую ошибку в исходном тексте, трансляция приостанавливается, а на экран выдается сообщение об ошибке.

    Чтобы понять, что делать с этими сообщениями, проведем эксперимент. Наберите следующий файл test.tex из 14 строк, в котором умышленно допущено несколько ошибок (только не сделайте лишних ошибок при наборе):

    \documentclass{article}
    \begin{document}
    По-английски специалист по \TeX'у называется \TeXpert.
    Следующая строка будет центрирована:
    \begin{center}
    Строка в центре.
    \end{center}
    А теперь попробуем формулы, например, такие,
    как $(2x+1)^3=5x$. И еще выключную формулу:
    $$\frac{25}{36}=\lrft(\frac{1}
       {1+\frac{1}{5}}\right)^2.
    $$
    И последняя формула: $\sqrt{4 = 2$.
    \end{document}

    Теперь обработайте наш файл test.tex с помощью LaTeX'а. Вскоре вы увидите на экране вот что:

    ! Undefined control sequence.
    l.3 ...алист по TeX'у называется TeXpert
                                              .
    ?

    Первая строка TeX'овского сообщения об ошибке всегда начинается с восклицательного знака, после которого идет краткое указание на характер ошибки (в нашем случае речь идет о том, что обнаружена несуществующая команда). Второй обязательный элемент сообщения об ошибке - строка, начинающаяся с l., после которой идет номер строки исходного текста с ошибкой (в нашем случае 3). После номера на экран выдается сама эта строка или та ее часть, которую TeX успел прочесть к моменту обнаружения ошибки. В нашем случае текст был прочитан до несуществующей команды "TeXpert" включительно (эта "команда" получилась потому, что мы забыли оставить пробел, ограничивающий имя команды \TeX, на которой TeX и прервал чтение файла. Наконец, третий основной элемент сообщения об ошибке — строка, состоящая из одного вопросительного знака. Этот вопросительный знак представляет собой "приглашение" пользователю: вам теперь предстоит на сообщение об ошибке отреагировать. Рассмотрим возможные реакции.

    Во-первых, всегда можно нажать клавишу x или X (латинскую) и после этого "ввод" ("Enter"): тогда трансляция немедленно завершится. Может быть, именно так стоит поступать начинающему TeXнику, чтобы разбираться с ошибками по очереди. Но можно и просто нажать клавишу "ввод": при этом TeX исправит обнаруженную ошибку "по своему разумению" и продолжит трансляцию. Догадаться о том, что ошибка произошла именно из-за забытого пробела, программа, естественно, не может: исправление будет заключаться попросту в том, что будет проигнорирована несуществующая команда "TeXpert" (так что из печатного текста будет неясно, как по-английски называют специалиста по TeX'у). Нажимать "ввод" в ответ на сообщения об ошибках — довольно распространенная на практике реакция. Если вы твердо намерены нажимать на "ввод" в ответ на все сообщения об ошибках, то можно в ответ на первое же из этих сообщений нажать на "S" или "s", а затем на " ввод"; при обнаружении дальнейших ошибок трансляция прерываться не будет (TeX будет обрабатывать ошибки так, как если бы вы все время нажимали на "ввод"), по экрану пронесутся сообщения об ошибках, а затем вы сможете их изучить, просмотрев log-файл.

    Итак, трансляция продолжается. Следующая остановка будет с таким сообщением:

    ! LaTeX Error: \begin{centrr} on input line 5
                                           ended by \end{centrr}.
    See the LaTeX manual or LaTeX Companion for explanation.
    Type  H   for immediate help.
     ...
    l.7 \end{centrr}
    
    ?

    Это сообщение об ошибке начинается со слов LaTeX Error. Такого рода сообщения не встроены в TeX, а создаются LaTeX'ом. В них также присутствуют строка, начинающаяся с !, строка, начинающаяся с l., и приглашение - вопросительный знак. Есть на экране и объяснение ошибки: из-за опечатки ( centrr вместо center) получилось, что команда \begin, открывающая окружение, не соответствует команде \end, закрывающей его : имена окружений при открывающем \begin и закрывающем \end должны совпадать). Так или иначе, давайте снова нажмем на "ввод"; тут же мы увидим вот что:

    ! Missing inserted.
    
                       ^
    l.9 как (2x+1)^
                   3=5x . И еще выключную формулу:

    На сей раз мы забыли знак доллара, открывающий формулу; TeX , однако, понял это не сразу, а лишь наткнувшись на символ "^", который вне формул таким образом использовать нельзя. Нажмем "ввод": TeX исправит положение, вставив знак доллара непосредственно перед знаком "^", и пойдет дальше (все такие исправления не вносятся в ваш файл, а происходят только в оперативной памяти компьютера). На печати формула будет иметь странный вид, поскольку "(2x+1)" будет набрано прямым шрифтом, а "5x" - курсивным, но TeX сможет продолжить трансляцию (и искать дальнейшие ошибки).

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

    ! Undefined control sequence.
    l.10 $$\frac{25}{36}=\lrft
                              (\frac{1}
    ?

    Нажав очередной раз на "ввод", мы немедленно увидим сообщение еще об одной ошибке:

    ! Extra \right.
    l.11    {1+\frac{1}{5}}\right)
                                  ^2
    ?

    Откуда это, ведь в строке 11 у нас все правильно?! Оказывается, эта ошибка была наведена предыдущей. В самом деле, перед этим TeX проигнорировал " команду" "\lrft", набранную вместо \left (именно так TeX и делает, если в ответ на ошибку "несуществующая команда" нажать на клавишу " ввод"), так что команду \left TeX вообще не видел; теперь выходит так, что в тексте, который видит TeX , присутствует \right без \left, что запрещено . Ввиду возможности появления таких " наведенных" ошибок, исправлять ошибки надо, начиная с самой первой; не исключено, что при ее исправлении часть последующих пропадет сама собой.

    Нажмем на "ввод" и на этот раз; TeX опять по-свойски исправит ошибку, и вскоре вы увидите такое сообщение:

    ! Missing } inserted.
    l.13 И последняя формула:$\sqrt{4 = 2$.
    ?

    На сей раз ошибка в том, что мы забыли закрывающую фигурную скобку. Нажмем на "ввод"; TeX вставит недостающую скобку (в результате чего на печати получится забавная формула $$\sqrt{4=2}$$, соответствующая тексту " \sqrt{4=2} ": пропажа закрывающей скобки обнаружилась не там, где мы ее забыли, а там, где ее отсутствие вошло в противоречие с синтаксическими правилами TeX'а), после чего трансляция наконец завершится. Кстати, цифра 1 в квадратных скобках, появляющаяся при этом на экране, означает, что TeX сверстал страницу номер 1 и записал ее содержимое в dvi-файл. Теперь можно и просмотреть, как будет выглядеть наш текст на печати.

    Количество различных сообщений об ошибках, которые может выдавать TeX , составляет несколько сотен, и нормальная реакция на них обычно такая же, как в нашем эксперименте; сейчас мы рассмотрим еще две типичные ошибки, реакция на которые должна быть иной.

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

    ! LaTeX Error: File `ttst.tex' not found.
    
    Type X to quit or <RETURN> to proceed,
    or enter new name. (Default extension: tex)
    
    Enter file name:

    В ответ на это следует набрать правильное имя файла и нажать на " ввод" , и трансляция благополучно продолжится. Если вообще никакого файла нет (например, TeX запущен по ошибке), наберите null — это всегда существующий пустой файл. (В некоторых версиях — nul с одним l.)

    Можно отреагировать на эту ошибку и так же, как на любую другую: нажать x и "ввод" (трансляция прервется) или s и "ввод" (неправильная команда \input будет проигнорирована, на дальнейшие ошибки TeX будет реагировать так, как если бы вы все время нажимали " ввод"). А если вы работаете с LaTeX'ом под операционной системой UNIX или каким-то ее аналогом (Linux, например), то в ответ на сообщение о такой ошибке можно и попросту нажать "ввод", и она будет проигнорирована.

    Если команда \input с именем несуществующего файла попадется TeX'у после того, как вы в ответ на какую-то из прежних ошибок сказали s, то трансляция на этом месте тем не менее остановится и TeX поинтересуется верным именем файла.

    Вторая ошибка, о которой мы хотели сказать, строго говоря, ошибкой не является; скорее, это нештатная ситуация. Чтобы смоделировать ее, проведем такой эксперимент: удалим из нашего файла test.tex последнюю строчку, гласящую "\end{document}", и снова запустим LaTeX для обработки этого файла. Нажав сколько-то раз "ввод", мы обнаружим, что работа TeX'а не закончилась, а на экран выдана звездочка: *. Эта звездочка — приглашение TeX'а ввести еще текст или команды; она появляется, когда в исходном тексте отсутствует команда для TeX'а "завершить работу" (в LaTeX'е эта команда входит в качестве составной части в комплекс действий, выполняемых командой \end{document} ). Теперь можно вводить с клавиатуры любой текст и команды - TeX отреагирует на них так же, как если бы этот текст и команды присутствовали в вашем файле. Не будем баловаться, а просто наберем \end{document} и нажмем на "ввод", после чего трансляция благополучно завершится. Вряд ли вы будете очень часто забывать последнюю строчку в исходном тексте, но иногда, в результате какой-либо сложной ошибки, может случиться так, что TeX "не заметит" строки \end{document}, и вот тогда-то вы и окажетесь лицом к лицу с TeX'овским приглашением-звездочкой.

    Бывают и такие хитрые ошибки, что \end{document} в ответ на приглашение-звездочку LaTeX не удовлетворяет и на экране снова появляется звездочка. На этот случай в LaTeX'е предусмотрено последнее средство: команда \stop. Если вы введете ее в ответ на TeX'овское приглашение, то, скорее всего, трансляция все-таки прервется. Если и \stop не помогает, остается только перезагрузить компьютер или "убить процесс" более цивилизованным способом.

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

    (\end occurred inside a group at level 1)

    (вместо 1 может стоять и другая цифра, в зависимости от того, сколько вложенных групп вы забыли закрыть). В частности, такое сообщение будет, если вы забыли закрыть или неправильно закрыли какое-то LaTeX'овское окружение (но в этом случае LaTeX выдаст вам и свое сообщение об ошибке, как в нашем примере с \begin{center} и \end{centrr} ).

    Наряду с пассивной реакцией на ошибки — все время нажимать на " ввод" или сказать s — есть и другая возможность: прямо с клавиатуры вносить исправления в тот текст, который " видит" TeX . На содержимое файла это не повлияет, но изменения в файл можно будет внести и позднее, руководствуясь тем, что записано в log-файле. При этом может сэкономиться время за счет того, что будет меньше "наведенных" ошибок и, как следствие, потребуется меньше прогонов TeX'а для отладки.

    Чтобы внести исправления с клавиатуры, надо нажать i или I и затем "ввод". На экране появится такое приглашение:

    insert>

    В ответ на это приглашение следует ввести тот текст и/или команды, которые вы хотите вставить в текст, читаемый TeX'ом. Чтобы продемонстрировать это на практике, давайте приведем файл test.tex в исходное состояние, вернув в него строку \end{document}, и еще раз запустим LaTeX для его обработки. В ответ на первое же сообщение (по поводу несуществующей команды "TeXpert") нажмем i , а затем, в ответ на приглашение insert>, наберем правильный текст.

    TeX pert

    и нажмем на "ввод". В ответ на вторую ошибку (когда мы в команде \end допустили опечатку в имени окружения center) скажем сначала i, а затем (в ответ на приглашение) "\end{center}" (кстати, можно делать такие вещи и в один шаг: сразу набрать "i\end{center}" и нажать " ввод"). В ответ на следующую ошибку ничего не остается, как по-прежнему нажать на "ввод": те символы в исходном тексте, между которыми должен был стоять пропущенный знак доллара, уже поглощены TeX'ом, и вставить его куда надо в данный момент невозможно; зато в ответ на следующую ошибку ( "\lrft" вместо \left ) наберем "i\left" и нажмем на "ввод". Следующей (" наведенной") ошибки вообще не будет (ведь на сей раз в тексте, который видит TeX , команда \left присутствует, а поэтому и на команду \right он отреагирует правильно); наконец, в ответ на последнюю ошибку опять ничего не остается, кроме как нажать на "ввод": вставить закрывающую фигурную скобку между 4 и знаком равенства прямо с клавиатуры невозможно. Теперь можно просмотреть, как на сей раз будет выглядеть на печати наш текст; некоторые несуразности наподобие $$\sqrt{4=2}$$ в нем останутся, но их будет меньше, чем если бы мы нажимали на "ввод" : не будет потеряно слово "TeXpert", центрированная строка будет действительно центрирована, формула$$\frac{25}{36}=\left(\frac{1} {1+\frac{1}{5}}\right)^2$$ будет выглядеть так, как надо. Теперь остается внести исправления в исходный файл (справляясь с тем, что записано в log-файле) и запустить LaTeX вторично, чтобы получить безошибочный текст.

    Как мы уже отмечали, в ответ на сообщение об ошибке всегда можно прервать трансляцию, нажав X или x и "ввод"; кроме того, бывают случаи, когда TeX прерывает трансляцию "по своей инициативе". На практике важны два случая:

  • TeX обнаружил 100 ошибок в пределах одного абзаца — тогда выдается сообщение (That makes 100 errors; please try again.)
  • TeX'у не хватило памяти — тогда выдается сообщение типа ! TeX capacity exceeded, sorry [main memory size=263001].
  • Нехватка памяти может возникнуть в результате таких ошибок, из-за которых TeX "зацикливается"; тогда достаточно исправить ошибку. Иногда памяти может действительно не хватить. Так бывает, если в тексте встречаются чудовищно длинные абзацыНа моем домашнем компьютере TeX'овская память иссякла, когда длина абзаца превысила 34 страницы. или сверхсложные таблицы с очень большим количеством строк и столбцов (см. лекцию 4 по поводу таблиц). Если вы встретились с такой проблемой, то можно проконсультироваться со специалистом (или самому изучить по книге [2]), как использовать TeX более эффективно (в частности, TeX можно научить переваривать сколь угодно длинные абзацы). Можно также попробовать найти транслятор TeX'а, дающий возможность работать с увеличенным объемом памяти.

    Скажем пару слов про более редкие способы реакции на ошибки. Во-первых, в ответ на приглашение ? можно набрать h или H и нажать "ввод". В этом случае TeX выдаст на экран дополнительную информацию по поводу вашей ошибки (вряд ли вы много из нее почерпнете, если вы не TeX ник), а затем еще раз приглашение ?. Во-вторых, можно набрать r или R (и " ввод", естественно); результат будет такой же, как если бы вы сказали s , с той разницей, что в случае, когда аргументом команды \input служит несуществующий файл, никаких вопросов задаваться не будет, а трансляция просто прервется. Наконец, можно набрать Q или q (и "ввод"): результат будет такой же, как от R , с той разницей, что на экран не будет выдаваться вообще ничего (в log -файл все будет записано).

    Наконец, режимы реакции на ошибки, задаваемые с клавиатуры с помощью клавиш s , r или q , можно задать прямо в файле, написав в преамбуле одну из перечисленных ниже команд:

  • \scrollmode - равносильна нажатию s
  • \nonstopmode - равносильна нажатию r
  • \batchmode - равносильна нажатию q
  • Как изучать курс дальше?

    Наш обзор основных понятий завершен, и вы уже можете подготовить с помощью LaTeX'а несложный текст. Дальнейшее чтение, в зависимости от ваших потребностей, можно построить по-разному: несколько последующих лекций почти независимы друг от друга, а внутри каждой из них материал расположен в порядке возрастания трудности.

    В лекции 2 подробно рассказано про набор математических формул.

    Лекция 3 посвящена набору текста " в малом": в ней рассказывается, в частности, как задавать в тексте шрифты разных начертаний и размеров, как набирать ударения над буквами и специальные типографские значки наподобие знака параграфа, как делать сноски и т.п.

    Лекция 4 посвящена оформлению текста " в целом": в ней подробно рассказано про то, какие бывают классы документов и чем они отличаются друг от друга, как устроить разбиение текста на разделы таким образом, чтобы LaTeX автоматически создавал заголовки этих разделов и к тому же автоматически их нумеровал, как оформлять титульный лист, как создать оглавление, и тому подобное.

    В лекции 5 описаны так называемые псевдорисунки - примитивные картинки, которые можно создавать, не выходя за рамки LaTeX'а.

    В лекции 6 рассказывается о печати таблиц с помощью LaTeX'а.

    В лекции 7 объяснено, как можно повысить эффективность своей работы в LaTeX'е, создавая собственные команды. Первые разделы этой лекции можно (а скорее всего, и нужно) читать параллельно с лекцией 2.

    Две последние лекции предназначены прежде всего для читателей, интересующихся не только набором, но и версткой. В лекции 8 рассказывается о таких фундаментальных понятиях TeX'а, как "блоки" и "клей"; заключительная лекция 9, предполагающая знание всего предыдущего материала, рассказывает, как изменить стандартный стиль оформления документов, предоставляемый LaTeX'ом, применительно к своим нуждам.

    Курс завершается различными приложениями, посвященными более частным вопросам; об их содержании можно узнать из оглавления.

    Вернуться к учебному плану