Перейти к содержимому

Зачем используется окружение multline

  • автор:

LaTeX для новичков. Часть 3:Математический режим ⁠ ⁠

LaTeX для новичков. Часть 3:Математический режим Латех, Длиннопост, Совет, LaTeX ПО

Итак, дорогие читатели, мы подошли к самому приятному разделу этого цикла статей. А именно — к работе с формулами. Формулы как и всё остальное описываются текстом, что позволяет набирать их со скоростью печати не отвлекаясь от текста и не убирая руки с клавиатуры.

Работа с формулами начинается с определения — требуется ли встроить формулу в текст (строчная/inline формула) или она должна быть вынесена на отдельную строку (выключенная/display формула). Если требуется формула в тексте, то она обрамляется одиночными знаками $ с обоих сторон $. Если требуется формула в отдельной строке то есть следующие варианты:

1) $$ обрамить его двойными $$. Это вынесет одиночное (!) уравнение в отдельную строку, но не пронумерует его. К использованию не рекомендуется, если только вам действительно нужно чтобы уравнение не участвовало в общей нумерации. Игнорирует опции выравнивания формул — формула всегда будет по центру.

2) Использовать окружение (конструкцию из \begin \end) equation из пакета amsmath. Это один из пакетов развиваемых Американским Математическим Сообществом с конца 1980ых. Это базовое окружение для одиночных выключенных формул. Выносит формулу из абзаца, нумерует её. Для написания одиночной многострочной формулы следует использовать окружение multiline, которое позволяет разбить формулу по переносу строки (\\). Есть короткая форма использования — \[обрамить в \].

3) Использовать одно из окружений для нескольких формул, из того же пакета:

a) align — выносит из абзаца, нумерует, выравнивает (!) по знаку &. Этот символ должен присутствовать в каждой строчке и в одинаковых количествах

б) gather — выносит, нумерует, выравнивает по левому/правому/центру.

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

Все эти окружения имеют версии со звездочками, отключающие отрисовку номера формулы. Подавить отрисовку номера для одного из нескольких уравнений можно командой \notag. Подробные примеры использования можно найти в документации на пакет amsmath. Документацию можно найти как в интернете, так и внутри локальной установки LaTeX. Для поиска справки в локальной установке используется утилита texdoc названиепакета (под Unix/Linux/MacOS), либо её графический интерфейс под Windows. Часть клиентов также умеют вызывать эту утилиту из меню (Help/Packages Help для TeXstudio).

Когда определено куда вставлять, поговорим о том, что вставлять:

1) Индексы. Верхний (^) и нижний(_). Имеют абсолютно предсказуемое, железобетонное поведение — один (!) символ следующий за знаком индекса заводится в индекс. Если нужно завести больше, . Пример — a^2_. Глубина индексов не ограничена, возможно делать индексы у индексов a^.

2) Дроби. LaTeX использует два типа дробей — для включения в строчные и в выключенные формулы. Стандартное использование, это предоставить LaTeX’у решать какой тип использовать. Дробь оформляется в виде \frac. Иногда по соображениям читаемости или эстетичности требуется форсировать тип дроби, для чего используются команды \dfrac и \tfrac. Первая форсирует большую выключную дробь, вторая соответственно наоборот. Пример использования — \frac.

LaTeX для новичков. Часть 3:Математический режим Латех, Длиннопост, Совет, LaTeX ПО

3) Знаки. Арифметика — +,-, по вкусу/требованиям \times или \cdot для умножения и / или \div для деления. Знаки плюс-минус и минус-плюс — \pm и \mp соответственно. Знаки равенства и больше-меньше — стандартные. Знак частичной производной — \partial. Остальные знаки ищите в редакторе (обычно вынесены в боковую панель), либо в symbols-a4, документе описывающем все 14283 (!) символа присутствующие в LaTeX.

4) Операторы, функции — \sin, \cos и т.д. Рекомендую посмотреть в боковой панели вашего редактора. Так же упомяну квадратный корень \sqrt, загоняет ABC под квадратный корень.

5) Греческие буквы. Можно забыть о мучительном их поиске в таблице символов. Вводятся очень просто — \Delta превращается в заглавную дельту, \delta превращается в строчную. Так со всеми буквами греческого алфавита. Стоит обратить внимание на то что несколько букв имеют два варианта начертания — \phi даёт не принятый в СНГ вариант, но \varphi даёт его. И таки, да — они тоже приведены в боковой панели многих редакторов.

7) Страх и ужас студентов всех времен и народов — интегралы, пределы и суммы. Обычный интеграл — \int, двойной — \iint, тройной — \iiint, четверной (ну кому такой нужен то? тройной уже похож на издевательство над нежной студенческой психикой) — \iiiint, интеграл энного порядка (?) \idotint (два интеграла с точками между ними), замкнутый интеграл — \oint. Предел — \lim. Сумма — \sum. Произведение — \prod. Пределы выставляются в аналогично индексам (\int^2_2). При этом стоит отметить что пределы будут выставлены под/над только в выключных формулах. Если вам нужно чтобы они были под/над (а не справа) и в строчных формулах, используйте дополнительную команду \limits (\int\limits^2_2).

LaTeX для новичков. Часть 3:Математический режим Латех, Длиннопост, Совет, LaTeX ПО

8) Системы уравнений. Для написания систем уравнений есть замечательное окружение cases

Для получения полноразмерных интегралов и (?) дробей следует использовать аналогичное окружение dcases* из пакета mathtools.

9) Вставка текста в формулы — команда \text. Например для того чтобы единицы измерения соотносились с стальным текстом. НЕ игнорирует пробелы внутри, в отличии от математического режима.

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

11) Скобки. Для малых по высоте формул можно использовать обычные скобки (), []. Для больших, есть автоматическое масштабирование скобок \left( \right), \left[ \right].

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

Как красиво писать формулы c LaTeX?

Меня зовут Шайдурова Арина, я Data Scientist и участник профессионального сообщества NTA. Сегодня я поделюсь с вами своим опытом использования LaTeX для написания математических формул. Всё просто и с примерами, идеально подойдет для новичков синтаксиса LaTeX.

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

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

Большим удобством является то, что LaTeX поддерживается уже во многих сервисах либо автоматически, либо после загрузки нужного расширения. Для меня большим плюсом является то, что язык разметки markdown позволяет использовать многие пакеты для написания формул LaTeX, что даёт возможность сделать качественную презентацию проекта в Jupyter Notebook.

Делюсь с вами тем, что я применяю в своей работе. Этот пост вы можете использовать как памятку. Все приведённые здесь примеры можно найти по ссылке на Colab Notebook в конце поста.

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

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

На картинке ниже представлен пример из Colab Notebook. В верхней части картинки расположен скрипт до запуска текстовой ячейки, а в нижней — после.

Далее все примеры будут показаны таким образом.

Вынесенные формулы окружаются двумя знаками доллара с каждой стороны $$. $$. Неважно, ставите вы доллары на одной строке с текстом или нет, LaTeX всё равно выведет это на отдельную строку. Я пишу их вне текста для лучшего восприятия скрипта.

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

Для меня эта часть является самой любимой — степени и индексы написать в LaTeX очень просто и их легко запомнить. Для индекса используется синтаксис x_ , а “крышечка” возводит в степень x^ . Пример показан ниже.

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

Корни и дроби

Переходим к командам в формулах, они начинаются со знака косой черты, т.e. \команда. Самые используемые команды в моей работе это корень и дроби. Корень из n-ой степени выполняет команда \sqrt[n] , где n является необязательным аргументом, а дробь пишется как \frac .

Суммы и интегралы

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

Команды функций

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

Текст внутри формул

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

Текст также может быть написан курсивом \textit или жирным шрифтом \textbf .

Пробелы в формулах

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

Слева направо расположены пробелы в порядке возрастания их длины (положительной или отрицательной). Команды \; и \, являются пробелами с положительной длиной, т.е разносят символы дальше друг от друга. Пробелы с отрицательной длиной \! сдвигают символы ближе друг к другу. Длины этих команд выражены в относительных единицах и зависят от размера шрифта. Универсальная команда \hspace позволяет задать нужную длину как в относительных единицах, так и в абсолютных, принимает и положительную и отрицательную длины.

Популярные символы

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

Многострочные формулы

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

$$ \begin первая формула \\ вторая формула \\ . \end $$

Две косые черты \\ используются для того, чтобы перенести выражение на другую строку.

Вот пример такого использования:

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

Векторы и матрицы

Для обозначения вектора с помощью стрелочки используется команда $\vec<. >$, для написания вектора в матричном виде я выбираю окружение pmatrix, подобных окружений есть несколько. Для матрицы использую этот же пакет, а столбцы разделяю знаком &:

Скобки

Согласитесь, неприятно, когда написана большая формула с дробями, а скобки стоят несоответствующие сей конструкции — обычные, маленькие. Для такого случая в LaTeX есть несколько команд для увеличения размера скобок. Причем как круглых, так и квадратных и фигурных скобок. Когда мне некогда разбираться и подбирать размер, я применяю конструкцию \left( . \right), она сама решает, какой взять масштаб для скобок. Эти команды используется только в паре, по одиночке они работать не будут.

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

Надеюсь, этот пост был вам полезен. А как вы используете LaTeX? Пишите в комментариях, какими лайфхаками пользуетесь вы.

  • latex
  • формулы
  • математические выражения

Как набирать формулы

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

Как и в случае с матрицами, наиболее удобные (и рекомендуемые нами) средства открываются, если подключить пакет amsmath; с их описания мы и начнем, а в конце опишем скромные средства набора многострочных формул, доступные без подключения дополнительных пакетов.

Итак, пусть вы подключили amsmath . Тогда самое простое средство для набора многострочных выключных формул — это окружение multline :

\begin</p>
<p>1+2+3+4+\ldots\\ +46+47+48+\ldots\\ +99+100=5050 \tag2 \end» /></p>
<p>\begin 1+2+3+4+\ldots\\ +46+47+48+\ldots\\ +99+100=5050 \end</p>
<p>Первая из строк печатается выключенной влево, последняя — выключенной вправо, остальные строки центрируются. Подобно окружению equation, окружение multline <i>не</i> должно быть заключено в знаки «$$». Как вы могли заметить, формула, оформленная в виде окружения multline, автоматически нумеруется. Чтобы этой нумерации не было, надо воспользоваться «вариантом со звездочкой» — окружением multline*.</p>
<p>На самом деле первая и последняя строки печатаются не вплотную к полям, а с отступом, равным \multlinegap . Значение этого параметра можно изменить обычным образом, написав в преамбуле что-нибудь вроде</p>
<pre>\multlinegap=.5in</pre>
<p>Чтобы какая-то из средних строк была не центрирована, а выключена влево, надо воспользоваться командой \shoveleft , написав, скажем,</p>
<pre>\shoveleft<+46+47+48+\ldots>\\</pre>
<p>вместо «+46+47+48+\ldots\\». Для выключки вправо аналогичным образом используется команда \shoveright .</p>
<p>Когда несколько выключных формул идут подряд, можно не оформлять каждую из них с помощью «$$» или окружения equation, но воспользоваться окружением gather :</p>
<p><img decoding=столбцов с уравнениями, то имеется n-1знаков «&», отделяющих друг от друга столбцы, плюс еще nзнаков — по одному на каждый столбец, а всего (n-1)+n=2n-1.

Полезное применение align возникает, когда идущие подряд выключные формулы содержат текстовые комментарии. Желательно, чтобы эти комментарии были выровнены. Вот как можно этого добиться с помощью align :

$ \begin</p>
<p>3\cdot 5+7\cdot 5&=(3+7) \cdot5 &&\text\\ &=50&&\text \end $ » /></p>
<p>\begin 3\cdot 5+7\cdot 5&=(3+7) \cdot5 &&\text\\ &=50&&\text \end</p>
<p>Обратите внимание на два амперсенда, отделяющие комментарий от формул (см. выше текст мелким шрифтом). Нелишне также отметить, что, как и в случае с окружениями multline и gather, формулы, задаваемые с помощью align, нельзя оформлять с помощью знаков доллара.</p>
<p>Не всегда удобно включать комментарии к выкладкам прямо в формулы. Иногда хочется, чтобы какой-то из комментариев шел в отдельной строке. Команда \intertext позволяет сделать это так, чтобы выравнивание не нарушилось:</p>
<p><img decoding=

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

$ |x|=\begin</p>
<p>x,&\text0$;>\\ 0,&\text\\ -x,&\text \end $

$$ |x|=\begin x,&TeXt0$;>\\ 0,&TeXt\\ -x,&TeXt \end $$

Разработчики пакета amsmath рекомендуют внутри окружения cases использовать команду \lbrace вместо \< .

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

Системы уравнений можно набирать с помощью окружения array таким образом:

$ \left\< \begin</p>
<p> x^2+y^2&=&7\\ x+y & = &3.\\ \end \right. $

$$ \left\< \begin x^2+y^2&=&7\\ x+y & = &3.\\ \end \right. $$

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

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

Если необходимо, чтобы отдельные уравнения в системе были пронумерованы, можно воспользоваться окружением eqnarray . Оно работает так же, как окружение array с преамбулой rcl в вышеприведенном примере, но при этом у каждого уравнения автоматически печатается его номер (подобно тому, как автоматически печатается номер у выключной формулы, созданной с помощью окружения equation —. Если пометить какое-либо уравнение с помощью команды \label , то в дальнейшем можно на него ссылаться с помощью команды \ref или \pageref .

\begin</p>
<p>2\times3&=&6 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \eqno(8) \\ 2+3&=&5 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \eqno(9) \end На с.~48 приведено глупое уравнение~9

\begin 2\times3&=&6\\ 2+3&=&5\label \end На с.~\pageref приведено глупое уравнение~\ref

Обратите внимание, что фигурной скобки, охватывающей систему уравнений, окружение eqnarray не создает. В этом примере символ "~ "между "с."\ и \pageref поставлен, чтобы слово "с."\ и номер страницы не попали на разные строки ; для аналогичных целей мы использовали этот символ и вторично.

При использовании окружения eqnarray не надо писать знаки "$$" (подобно тому, как не надо их писать при пользовании окружением equation ).

Если вы хотите нумеровать не все уравнения, надо уравнения, которые вы нумеровать не будете, пометить командой \nonumber (непосредственно перед "\\"):

\renewcommand</p>
<p> \begin \int_<-\infty>^\infty e^dx & = & \sqrt<\pi>\nonumber\\ \sqrt & = & 24 %\theequation \renewcommand \end

\begin \int_<-\infty>^\infty e^dx & = & \sqrt<\pi>\nonumber\\ \sqrt & = & 24 \end

Наконец, если вы вообще не хотите нумеровать уравнения, то можно воспользоваться "вариантом со звездочкой"- окружением eqnarray* .

Окружение array можно использовать не только в выключных, но и во внутритекстовых формулах, хотя результат при этом обычно выглядит некрасиво. Окружения eqnarray и eqnarray* создают только выключные формулы.

Чтобы разбить выключную формулу на несколько выровненных частей, также можно воспользоваться окружением eqnarray или eqnarray* :

\begin</p>
<p>x^&=&(x-1)^+20(x-1)^+\ldots+\\ &&<>+20(x-1)+1 \end

\begin x^&=&(x-1)^+ 20(x-1)^+\ldots+\\ &&<>+20(x-1)+1 \end

+

Обратите внимание, что перед первым знаком + во второй строке формулы мы поставили пару из открывающей и закрывающей фигурных скобок; это сделано для того, чтобы на печати знак не подошел слишком близко к первому символу второй строки, что в сочетании со увеличенными отбивками вокруг знака равенства было бы уже слишком (можете поставить эксперимент самостоятельно). Природа описанного эффекта объясняется ниже в разд. "Тонкая настройка"; он частично учтен в пакете amsmath (к сожалению, разные версии этого пакета могут давать разные результаты).

Языки разметки. Часть 4: вёрстка математических формул Текст научной статьи по специальности «Философия, этика, религиоведение»

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

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по философии, этике, религиоведению , автор научной работы — Степанов Алексей Владимирович

Языки разметки. Часть 3: верстка таблиц
Языки разметки
Языки разметки. Часть 2: основные средства форматирования
TeX ДЛЯ НАЧИНАЮЩИХ

Инструкции и рекомендации по подготовке статей в формате latex для журнала «Прикладная дискретная математика»

i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Языки разметки. Часть 4: вёрстка математических формул»

Степанов Алексей Владимирович

ЯЗЫКИ РАЗМЕТКИ. ЧАСТЬ 4: ВЁРСТКА МАТЕМАТИЧЕСКИХ ФОРМУЛ

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

Ключевые слова: TeX, LaTeX, вёрстка математических формул.

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

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

Вообще, в процессе работы TeX может находиться в одном из шести режимов, называемых модами:

© А.В. Степанов, 2008

- горизонтальная мода - форматирование абзаца;

- внутренняя горизонтальная мода -форматирование строки внутри \hbox;

- внутренняя вертикальная мода - форматирование вертикального материала внутри \vbox;

- математическая мода - форматирование математических формул внутри «$»;

- выделенная математическая мода -форматирование математических формул внутри «$$».

Поведение TeX в математической и выделенной математической моде немного отличается: например, числитель и знаменатель дроби в выделенной формуле набирается основным шрифтом, а в обычной -

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

• Пробелы в математической моде игнорируются, TeX сам расставляет пробелы в соответствии со стандартами, описанными в стилевом файле.

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

• Символы нижнего и верхнего индекса «_» и «Л» и некоторые макросы, например названия греческих букв, запрещено употреблять вне математического режима. При неправильном употреблении вы получите сообщение об ошибке «Missing $ inserted. », что означает, что, пожалев вас, TeX вставил пропущенный вами знак доллара в нужное (по его мнению) место текста и предлагает продолжить работу. Вскоре, правда, оказывается, что для нормальной работы ему надо еще что-то вставить, и количество ошибок растет, как снежный ком.

Простейшие формулы набирать очень просто. Для набора нижнего индекса используйте знак «_», а верхнего - «л», при этом то, что должно появиться в индексе, должно быть либо одним токеном (символом или макросом) либо заключено в фигурные скобки, например: $хл2$, $x_\gammaA3$, $(ху)л$, $хл>$. На печати это будет выглядеть следующим образом:

Дроби набираются командой \frac с двумя аргументами: числитель и знаменатель. Например, $\frac 12=\frac 6$ или $\frac^2+\frac bc>$. Конструкция \over Plain TeX, например $aЛ2+$, у LaTeX в опале: он уже много лет предупреждает, что в следующей версии она поддерживаться не будет.

Корни производятся конструкцией \sqrt[n] , где n - необязательный параметр - показатель степени, а xxx - подкоренное выражение. Альтернативный вариант Plain TeX - \root n\of тоже работает.

Штрихи ставятся непосредственно с помощью символа «'», при этом символ верхнего индекса использовать не надо. Аналогичный символ посередине строки называется \prime, так что конструкция $f' (x)$ эквивалентна $^\prime (x) $.

Многоточия набираются с помощью макросов \dots, \ldots и \cdots. При этом \ldots ставит многоточие по базовой линии, \cdots - по центру, а \dots - по умолчанию, в зависимости от знака, следующего после \dots. В американском стандарте многоточие в сумме ставится по центру, в русском - по базовой линии, но это не должно вас заботить, это дело стилевого файла. Таким образом, макрос \dots - это еще один пример логической разметки. Аналогичная ситуация со знаками нестрогих неравенств - знаки \leq и \geq (less than or equals to, greater than or equals to) производят американские знаки < и >, \leqslant и \geqslant - принятые в России i г г [V- , а \le и \ge - знаки, используемые по умолчанию (при этом в стандартных стилях умолчания, конечно, американские). Для использования русских вариантов знаков неравенств необходимо подключение стилевого пакета amssymb.

Имена стандартных математических функций принято набирать прямым шрифтом с соответствующими отступами от предыдущей части формулы и от аргументов. Поэтому вместо $sin x$ (что будет выглядеть просто безобразно, потому что еще и пробел между n и x исчезнет) нужно писать $\sin x$ и т. п. Будьте осторожны: в стандартных нерусифицированных стилях не определе-

ны макросы \tg, \ctg, \arctg и \arcctg,

потому что в англоязычных странах они называются \tan и т. д. Нет никаких проблем определить новую функцию самому. В LaTeX для этого предназначена команда \DeclearMathOperator<\macros>, где \macros - это имя определяемого макроса, а name - имя функции. Но в большинстве случаев то, что вам захочется, будет уже определено, например: \lim, \min, \sup, \det и другие.

Греческие буквы, которые традиционно любят использовать математики (собственно только потому, что не хватает латинских) обозначаются очевидными макросами: \alpha, \beta, \gamma, . \omega. Однако для некоторых букв используется альтернативное начертание, более привычное русскому глазу. Я использую две такие буквы: \varphi - j, в отличие от \phi, которая больше похожа на знак пустого множества, и \varepsilon - e, в то время как \epsilon больше смахивает на знак принадлежности. Есть еще \vartheta, но она мне менее привычна, чем обычная \theta - в. Кстати, во всех международных математических журналах греческие буквы набираются курсивом (точнее, математическим курсивом), что бы вам ни говорили редакторы нематематических издательств.

Довольно часто математики используют буквы с акцентами, всякими там черточками, волнами или домиками. Для этого в TeX предназначены команды \bar, \tilde, \hat и их широкие аналоги \overline, \widetilde и \widehat. Для подчеркивания текста используется команда \underline. Все эти команды имеют один аргумент, а именно текст, над которым ставится акцент (или то, что подчеркивается). В Plain TeX вне математического режима подчеркивание не работает, так что для подчеркивания обычного текста приходится использовать конструкцию

где text - это то, что хочется подчеркнуть. К счастью в LaTeX эта неприятность отменена, так что доллары и \hbox можно

nofnefeKu&afrufr ЛексЛа исшм&^уе&ся к/омлНул \

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

Специалистам по линейной алгебре следует знать окружения matrix, pmatrix, bmatrix, vmatrix и Vmatrix, с помощью которых набираются матрицы. При этом matrix печатает матрицу без скобок, pmatrix - в круглых скобках, bmatrix - в квадратных, vmatrix - в прямых (стандартное обозначение определителя матрицы), а Vmatrix - в двойных прямых скобках. Надо отметить, что правильно эти окружения работают только при подключении пакета amsmath (который автоматически подключается при использовании стилей AMS). Матрица, с точки зрения TeX, является частным случаем таблицы, поэтому внутренность матрицы набирается так же, как и содержимое таблицы, то есть колонки разделяются символом &, а строки - символами \\. При этом объединение столбцов, как и в таблицах, достигается с помощью команды \multicolumn<. >, где n -количество объединяемых столбцов, c - центрирование, а многоточие заменяет текст объединенной ячейки. В матрицах неопределенного размера довольно часто используют многоточие. Для этого, помимо уже известных \dots, \ldots или \cdots, можно использовать макросы \vdots для вертикального многоточия и \ddots - для диагонального. Для создания многоточия, захватывающего несколько столбцов, рекомен-дуется1 использовать команду

1 Честно говоря, я узнал об этой рекомендации только в момент написания этой статьи из книги «ЬаТеХ II». До этого я употреблял конструкцию \multicolumn, которая вполне жизнеспособна.

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

Наконец, приведу список символов, определенных в LaTeX, которыми я пользуюсь. Более полную таблицу можно найти в книге Львовского. Кроме того, чтобы как-то выделиться из толпы авторов, воспроизводящих эту таблицу, я напишу код на языке LaTeX, используя который вы сами сможете получить расширенную распечатку этой таблицы. Для этого в файле ShowMacro. tex напишите следующие макроопределения (см. листинг 1).

После подключения этого файла командой \input становится доступной команда \ShowMacroses, аргумент которой ограничен символом «;», а в этом аргументе через запятую написаны имена макросов (без об-

ратной косой черты), значения которых хочется увидеть в таблице. Например, файл macroses. tex (см. листинг 2) произведет на свет первые две строки следующей таблицы (см. рис. 1).

У некоторых бинарных операций есть big-аналоги, например \bigoplus или \bigcap. У многих стрелок есть варианты с префиксом long или начинающиеся с прописной буквы, например \Longleftrightarrow равносильна \iff.

Забегая вперед, не могу не сказать несколько слов о смысле того, что написано в файле ShowMacro.tex, хотя это и не относится к верстке математических формул. В определении команды ShowMacroses происходит инициализация макропоследовательностей \Template (строка-образец), \rowI и \rowII (верхняя и нижняя строки таблицы), затем вызывается команда \MakeTableBody, которая создает шапку и текст таблицы \TableBody, а потом выводит таблицу с помощью команды \halign.

\expandafter\Halign \expandafter<\TableBody >> \par\medskip > \def\MakeTableBody#1,% \ifx\tmp\@empty

\hline\rowI &\cr \hline \rowII &\cr \hline > \else

\documentclass[10pt] \usepackage \input ShowMacro \begin

\ShowMacroses pm,mp,times,cdot,star,ast,circ,bullet,setminus,% cap,cup,oplus,otimes,lnot,lor, land;

Определение \MakeTableBody работает рекурсивно, создавая для каждого вновь прочитанного названия макроса столбец таблицы, а при выходе составляет их вместе в \TableBody. Примитив \expandafter говорит TeXy: подожди один шаг с раскрытием следующего токена, раскрой сначала то, что идет следом, а потом вернись обратно. Имя команды \g@addto@macro говорит само за себя: она добавляет к определению своего первого параметра все, что написано во втором. \ifx - это оператор сравнения однократного раскрытия макропоследовательностей: если они равны (в нашем случае, если строка закончилась), то выполняется текст до \else, в противном случае - от \else до \fi. Самая большая проблема при написании этого файла состояла в том, что, читая макроопределение, TeX автоматически подставляет вместо #1,#2. фактические параметры, а вместо ## - # (одиночный сим-

вол # внутри макроопределения запрещен). Поэтому пришлось определить временный макрос \х, который раскрывается только при выполнении команды \xdef. В отличие от обычного \def или\gdef, команды \edef и \xdef сначала раскрывают то, что стоит в фигурных скобках до примитивов, а потом определяют макропоследовательность.

Каждый математический символ, точнее часть математической форулы, принадлежит к одной из 7 групп:

1) обычный символ,

2) бинарная операция (\mathbin),

3) бинарное отношение (\mathrel),

4) математический оператор (\mathop),

Jli. п \lllWd \dtir \jflTL \clrc ''.bull dl. :1 vr.K 1 ГШ Cif \C4ip ■,'jjjlüj '. ] гит \1и .land

BID 'гinnq ■ rrag ■.арргэт i-quiv '.11 par-allnl \pnrp \1M ШйЫ \rhd \trl-Llj/1 a \паЪ1ж

ф 2s DL it - ■Й > 1 1 3 0 й Г

V- У IDbUt '.jiijia-bc ■Autiq '.iUpiüTuLj '■.uiland '.AtVpiVdOC \var noc.h inj. \lmfty

€ i С 3 С D V Э В «

nngl* \пл ^Hd iat \ÜDt \4lUt \pertiil \hfetx ■■En* \S

i J Е ]| И .f IL f ä z Ii А □

\te \rlg|ltUTW Sighi ■in» ItitlBIB upaixüv \dHnmH ------ L4 ur-ju \|Ш11Л ', jr'üj L 'L V

^lHjF^tum L'LJl|iriiJ-|T4TjU \L&flrjjbtarrov t: L.iliT U f cv AU3I11 ', ri.5btüirLr.n:iil

6) знак препинания,

От того, к какой группе относится тот или иной символ (последовательность символов), зависит, какие пробелы TeX будет расставлять вокруг него и как он будет расставлять индексы. При этом вы всегда можете поменять умолчание, поставив перед группой символов название группы, например, написав $a\mathbin>$, вы заставите TeX набрать div прямым шрифтом и оставить небольшие пробелы до и после этого слова, как будто оно является бинарной операцией. В древнем AmS-TeX для определения математических функций употреблялось слово \operatorname, например, для определения русского обозначения тангенса нужно было написать

Само же слово \operatorname было определено следующим образом:

Наиболее часто употребляются слова \mathop и \mathrel. Для чего? Читайте следующий раздел.

По умолчанию после всех символов, кроме математических операторов в выделенной математической моде, индексы ставятся чуть правее самого символа. Иногда хочется поставить индекс непосредственно над или под символом, как это делается для математических операторов в выделенной математической моде. Для математических операторов это сделать совсем легко: надо только написать команду \limits между оператором и индексами, например, $\lim\limits_$. В то же время, чтобы ставить индексы справа от сим-

вола, надо написать \nolimits. Однако, написав \limits после символа, не являющегося математическим оператором, вы получите сообщение об ошибке. Как же написать что-то над знаком равенства или эквивалентности? В LaTeX для этого предусмотрена команда \stackrel, первым аргументом которой является верхний индекс, а вторым - знак отношения. Например, $a\stackrel\nu\sim b$ выглядит на печати следующим образом:

Что же делать, однако, если вы хотите поставить что-то под знаком равенства или, не дай бог, вторую надпись под знаком предела? Ничего страшного, хотя и несколько громоздко, пишите:

(если это именно то, что вы хотите). Обратите внимание, что команда \text доступна только при подключении пакета amsmath.

i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

\left, а перед закрывающей - \right. Приведем примеры стандартного использования изменения размера скобок. Если написать (листинг 3), то на печати получим следующее (см. рис. 2).

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

Используя пакет amsmath, вы можете ставить скобки не только справа или слева, но и над и под частью формулы. Это работает аналогично подчеркиванию с помощью команд \underbrace и \overbrace. Например, \underbrace выдаст

a- .-a, а \overbrace будет напечатано как ABC. Скобки, правда, здесь предусмотрены только фигурные, зато вместо скобок можно поставить стрелки с помощью команд \overrightarrow, \overleftarrow, \underrightarrow и \underleftarrow. Заметим, что индексы к конструкции \underbrace <. >или \overbrace <. . .>будут поставлены над или под выражением, а не справа, как обычно. Например,

на печати превратится в

ВЫРАВНИВАНИЕ И НУМЕРАЦИЯ ФОРМУЛ

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

обычно употребляемое при наборе формул с разбором случаев, например:

и определяет характеристическую функцию (индикатор) множества D.

Для выравнивания и автоматической нумерации формул в LaTeX предусмотрены следующие окружения:

• equation - нумерация без выравнивания;

• gather - по одной центрированной формуле в каждой строке с нумерацией каждой строки;

• align - несколько формул в каждой строке с нумерацией каждой строки;

• aligned - то же, что и align, но для подформулы (и, естественно, без нумерации);

• multline - расположение формул лесенкой (используется для расположения одной формулы на нескольких строках;

• \split - разбивка формулы на строки с выравниванием (работает только внутри окружений equation и equation*.

Все приведенные окружения, кроме equation, определены в пакете amsmath. Без подключения этого пакета в LaTeX предусмотрены другие окружения, но они работают несколько хуже (не везде пробелы соответствуют типографским правилам), поэтому мы их не упоминаем. Кроме окружений aligned и split, все остальные автоматически переводят TeX в выделенную математическую моду, поэтому доллары вокруг них ставить не надо (и нельзя). Окружения, предусматривающие нумерацию, имеют варианты со звездочкой, которая подавляет нумерацию. Для того чтобы отменить нумерацию в конкретной строке, непосредственно перед символами \\ нужно написать команду \notag. Можно пометить формулу своей меткой, для чего перед \\ написать \tag. Впрочем, лучше один раз увидеть, как это работает, чем сто раз услышать. Пишем (листинг 4). Получаем рис. 3.

\documentclass[10pt] \usepackage[russian] \usepackage[left=2cm,right=12cm,top=1cm,bottom=1.5cm] \usepackage

\begin7\cdot9&=63 &63:9&=7\\ 5\cdot12&=60&60:5&=12\tag\end \hrule

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *