Как красиво писать формулы 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
- формулы
- математические выражения
LaTeX для новичков. Часть 3:Математический режим

Итак, дорогие читатели, мы подошли к самому приятному разделу этого цикла статей. А именно — к работе с формулами. Формулы как и всё остальное описываются текстом, что позволяет набирать их со скоростью печати не отвлекаясь от текста и не убирая руки с клавиатуры.
Работа с формулами начинается с определения — требуется ли встроить формулу в текст (строчная/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.

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).

8) Системы уравнений. Для написания систем уравнений есть замечательное окружение cases
Для получения полноразмерных интегралов и (?) дробей следует использовать аналогичное окружение dcases* из пакета mathtools.
9) Вставка текста в формулы — команда \text. Например для того чтобы единицы измерения соотносились с стальным текстом. НЕ игнорирует пробелы внутри, в отличии от математического режима.
10) Пробелы в математическом режиме игнорируются. Тотально. Для разделения используются \quad, \qquad и \ (пробел после слеша). Первая команда делает пробел равный по длине высоте шрифта, вторая делает пробел длиной в две высоты шрифта, третья делает пробел примерно соответствующий обычному текстовому пробелу.
11) Скобки. Для малых по высоте формул можно использовать обычные скобки (), []. Для больших, есть автоматическое масштабирование скобок \left( \right), \left[ \right].
Собственно это основы математического режима LaTeX, которых достаточно для набора обычных инженерных формул и расчётов. Но LaTeX писали математики, поэтому для набора математики есть много возможностей не охваченных здесь. Часть их можно найти по следующим ссылкам:
Как набирать формулы
Программа TeX никогда не делает автоматических переносов в выключных формулах, поэтому, если ваша формула не умещается в строку, необходимо разбить ее на отдельные строки самостоятельно. Первое, что приходит в голову начинающим, — это оформить каждую из этих строк как отдельную выключную формулу с помощью $$. $$ и записать эти выключные формулы подряд. При этом расстояние по вертикали между двумя строками получается слишком большим, так что на глаз они не воспринимаются как части одной формулы. В этом разделе мы описываем, как грамотно организовать такое разбиение.
Как и в случае с матрицами, наиболее удобные (и рекомендуемые нами) средства открываются, если подключить пакет amsmath; с их описания мы и начнем, а в конце опишем скромные средства набора многострочных формул, доступные без подключения дополнительных пакетов.
Итак, пусть вы подключили amsmath . Тогда самое простое средство для набора многострочных выключных формул — это окружение multline :
Если какую-то из них нумеровать не надо, следует поставить непосредственно перед «\\» команду \notag . Если вы не хотите нумеровать ни одну из формул, можно воспользоваться «вариантом со звездочкой» — окружением gather* .
При разбиении выключной формулы на части нередко бывает желательно расположить строки одна под другой так, чтобы они были определенным образом выровнены. Для достижения такого эффекта удобно воспользоваться окружением split :
столбцов с уравнениями, то имеется
знаков «&», отделяющих друг от друга столбцы, плюс еще
знаков — по одному на каждый столбец, а всего
.
Полезное применение align возникает, когда идущие подряд выключные формулы содержат текстовые комментарии. Желательно, чтобы эти комментарии были выровнены. Вот как можно этого добиться с помощью align :
Наконец, еще один тип многострочных выключных формул возникает, когда выражение в правой части равенства должно выглядеть по-разному в разных случаях. На этот случай в пакете amsmath предусмотрено окружение cases . Продемонстрируем его работу сразу на примере:

$$ |x|=\begin x,&TeXt0$;>\\ 0,&TeXt\\ -x,&TeXt \end $$
Разработчики пакета amsmath рекомендуют внутри окружения cases использовать команду \lbrace вместо \< .
Теперь, когда вы ознакомились с возможностями набора многострочных формул с помощью пакета amsmath, расскажем и о том, что можно сделать в этом направлении без подключения дополнительных стилевых пакетов.
Системы уравнений можно набирать с помощью окружения array таким образом:

$$ \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 2\times3&=&6\\ 2+3&=&5\label \end На с.~\pageref приведено глупое уравнение~\ref
Обратите внимание, что фигурной скобки, охватывающей систему уравнений, окружение eqnarray не создает. В этом примере символ "~ "между "с."\ и \pageref поставлен, чтобы слово "с."\ и номер страницы не попали на разные строки ; для аналогичных целей мы использовали этот символ и вторично.
При использовании окружения eqnarray не надо писать знаки "$$" (подобно тому, как не надо их писать при пользовании окружением equation ).
Если вы хотите нумеровать не все уравнения, надо уравнения, которые вы нумеровать не будете, пометить командой \nonumber (непосредственно перед "\\"):

\begin \int_<-\infty>^\infty e^dx & = & \sqrt<\pi>\nonumber\\ \sqrt & = & 24 \end
Наконец, если вы вообще не хотите нумеровать уравнения, то можно воспользоваться "вариантом со звездочкой"- окружением eqnarray* .
Окружение array можно использовать не только в выключных, но и во внутритекстовых формулах, хотя результат при этом обычно выглядит некрасиво. Окружения eqnarray и eqnarray* создают только выключные формулы.
Чтобы разбить выключную формулу на несколько выровненных частей, также можно воспользоваться окружением eqnarray или eqnarray* :

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

Обратите внимание, что перед первым знаком + во второй строке формулы мы поставили пару из открывающей и закрывающей фигурных скобок; это сделано для того, чтобы на печати знак не подошел слишком близко к первому символу второй строки, что в сочетании со увеличенными отбивками вокруг знака равенства было бы уже слишком (можете поставить эксперимент самостоятельно). Природа описанного эффекта объясняется ниже в разд. "Тонкая настройка"; он частично учтен в пакете amsmath (к сожалению, разные версии этого пакета могут давать разные результаты).
Записки дебианщика
В этом блоге публикуются заметки и решения, найденные в процессе работы, освоения и жизни в дистрибутиве Debian GNU/Linux.
Математические формулы в LaTeX: Math in LaTeX
Этот пост является частью
большой статьи
"Как оформить диплом в LaTeX?",
которую написал virens,
ведущий блога
"Записки дебианщика"
Для того, чтобы написать диплом по физическим специальностям, трёхэтажных километровых формул набирать не надо, а надо усвоить несколько простых и понятных команд LaTeX. Потребуется освоить окружение нумерованных и ненумерованных формул, а так же набор массива формул. Ну и основные команды для обозначения математических символов.
Ещё раз повторюсь: эти посты предназначены для физиков, простых крепких парней, которым нужны сравнительно простые математические выражения. Я ни в коем разе не претендую на полноту изложения - приводимой здесь информации должно хватить для набора не слишком заматемаченного диплома по естественным наукам.

Пост подвергался чистке и правке после публикации:
Автор заходил править этот пост 6 апреля 2013 года.
О формулах в целом
Первое и главное - пользуйтесь тем, что предоставляет вам интегрированная среда. Обзор интегрированных сред для LaTeX можно прочитать по этой ссылке. В её вкладках должны быть таблицы греческих символов, основных математических операторов и прочего. Самое главное, что символы в таком виде гораздо проще найти и вставить, не перелистывая талмуд со специальными символами.
Заучивать команды для математических символов в LaTeX не нужно - вы и так большинство команд запомните за их красивые и лаконичные названия. Едва ли вы испытаете серьёзные затруднения с названиями греческих букв $ \alpha $ , $ \gamma $ или $ \delta $ . Основные математические символы тоже должны быть в вашей интегрированной среде, такие как столь любимые физиками приближённые равенства $ \approx $ или интегралы с суммами.
Быстрый старт - набор простых формул
Формулы можно вставлять в строке или торжественно на отдельной строке, по центру и с номером. Малозначительные формулы типа $f(x) = a \cdot x + b$ вставляются, как правило, в строчку, а что-то серьёзное, вроде разложения в ряд Фурье:
\beginequation>\label f(x) = \frac + \sum \limits_^\infty> A_n \cos \left( \frac \pi x>\nu> - \alpha_n \right) \endequation>
оформляется с помощью окружения \begin < equation >\label . \end < equation >.
Набранная формула выглядит так:

При этом напротив неё будет помещён номер, сгенерированный автоматически. Для того, чтобы сослаться на эту формулу, в LaTeX тексте будем ставить ( \ref < ссылка >) чтобы на неё сослаться. Имена ссылкам стоит давать на латиннице, во избежание проблем. Если формула приводится для пояснений и ссылаться на неё не надо, следует поставить после equation звёздочку, то есть equation* и после этого номер для данной формулы генерироваться не будет.
Смысл использования LaTeX - создание логичного, структурированного документа, а не каши из кривого оформления и потока сознания.
Ссылки должны быть осмысленными и безошибочно говорить автору текста, какая формула имеется в виду. Не стоит потворствовать лени и глупости, проявляющихся в ссылках типа \label < uravnenie6 >- следует спросить себя, что означает эта формула и дать ей осмысленное имя.
Вставка формул в текст
Чтобы вставить формулу внутрь текста, используем окружение $ $ , внутри которого помещаем формулу. Окружение $ $ переводит LaTeX в математический режим и будет отрисовывать формулы. Например: $ \alpha_0$ даст нам греческую букву АЛЬФА с индексом 0.
Подчёркиванием в LaTeX делается нижний индекс, и использовать подчёркивание в тексте нельзя (для подчеркивания в тексте есть пакет расширений ulem). Если хотите набирать длинные пассажи в подчёркивании - ставьте фигурные скобки $x_$ .
Кроме того, ЛаТеХ категорически против двойного нижнего индекса, и команда $x_j_k$ приведёт к ошибке. Но фигурные скобки позволят нам надурить LaTeX и сделать двойной индекс так: $x_$ . Если же вам нужен верхний индекс в формуле, используем символ ^ так: $x^2$ . LaTeX возведёт в степень только первый символ после крышки, и е сли в степень нужно возвести сразу много символов, экранируем их фигурными скобками (они не отображаются в тексте): $x^$ .
Если же вы хотите набрать в формуле фигурные скобки, следует заэкранировать их вот так: \ и они будут отрисованы в формуле, например $x \$ .
О символах в LaTeX
Символов в LaTeX огромное количество, и большинство их собрано в справочном файле под названием symbols-a4.pdf.
Если вы обрабатываете изображения, вам пригодится команда \times , что позволяет набирать вставки типа NхM в более приглядном виде $N \times M$ . А если нужно набрать в LaTeX символ градуса, можно воспользоваться таким трюком: $180^ \circ $ , что наберёт 180 градусов. Символ "Принадлежит" в Latex это $\in$ , а символ "Любой" в это $\forall$ .
Для тех, кому нужно работать с Фурье-преобразованием, будет приятно набрать букву F в более торжественном стиле для функций, над которым выполняется преобразование: $ \mathcal < g(x,y) >$ наберёт большую и красивую букву F для фурье-преобразования.
Набор скобок в LaTeX немного замороченный на первый взгляд. Можно просто поставить обычные скобки, но если формула большая, то можно поставить большие скобки в LaTeX командой $ \Bigr ($ и $ \Bigl )$ . Скобок можно поставить много и на любой вкус и размер с помощью команд ( \big ( \Big ( \bigg ( \Bigg ( которые превратятся в тексте вот в это:

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

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

LaTeX код этой формулы:
\beginequation> f(x,y,\alpha, \beta) = \frac\sum \limits_^\infty> A_n \cos \left( \frac \pi x>\nu> \right)> \prod \mathcal > \endequation>
Здесь хочется ещё раз подчеркнуть важность структурирования своего LaTeXовского кода, без сваливания всего в одну кучу и набора в строчку длинных формул. Иначе потом не поймёте, где отец, а где кузнец.
Если посмотреть на код формулы без страха и ужаса, можно заметить много простых и понятных английских слов. Слово \sum это, видимо, суммирование, а \limits - пределы суммирования. Если немного напрячь познания английского, то можно вспомнить слово fraction и догадаться, что \frac скорее всего набирает дроби. Как видно, набор формул в LaTeX для тех, каким-то образом получивших техническое образование вместе с зачатками знаний английской языка, не такая уже сложная задача.
Дроби набираются командой \frac числитель>знаменатель>. Удобно набирать числитель и знаменатель в дробях на разных строчках в коде - так проще потом работать с формулой.
Примечательная команда \limits , которая позволяет набирать верхние и нижние пределы в формулах LaTeX. Сама по себе команда \sum , \prod или \int просто отрисовывает интеграл, а если нужно над ними ставить пределы - вспоминаем по \limits _^< \infty >. Здесь нижний предел это n=1, а верхний предел бесконечен (символ бесконечности в LaTeX это команда \infty ).
Основные идеи вы к этому моменту должны воспринять, потому как у меня уже подоспел второй примерчик с интегралами.
Длинные формулы в LaTeX
Например, нужно набрать длинную формулу, а она не умещается в строчку. Вот пример такого монстра:

\begineqnarray> S_\text >(x_2, y_2) = \iint dx_0 dy_0 A_0 g(x_0, y_0) \cdot h(x_2-x_0, y_2 -y_0) = \\ = A_0 \underbrace\iint dx_0 dy_0 \; g(x_0, y_0) \cdot h(x_2-x_0, y_2 -y_0)>_\text > = A_0 g \otimes h \endeqnarray>
Новых конструкций здесь несколько.
Во-первых, интеграл, да не простой, а двойной. Интеграл в LaTeX отрисовывается командой $ \int $ , двойной интеграл в LaTeX это $ \iint $ .
Во-вторых, внизу формулы есть подпись - её можно поставить с помощью команды \underbrace _. Подпись под буквой можно вставить, воспользовавшись командой \text , которая на время выключит математический режим в формуле и вставит текст.
В-третьих, собственно, в LaTeX перенос формул на новую строку можно выполнить обычной командой \\ и это избавит от необходимости использовать окружение eqnarray, о котором чуть ниже.
Так же можно отметить маленькую, но очень изящную команду \cdot , которая наберёт вам маленькую точечку умножения вместо этой страшной вордовской *. Так же в этом примере показано, как поставить пробел в формуле LaTeX, а именно командой \; то есть $dx_0 dy_0 \; g(x_0, y_0)$ .
Большие и страшные формулы в несколько строк
Если формула очень длинная и в строку не помещается, используем окружение \begin < eqnarray >. \end < eqnarray >, а переносы формулы на другую строку делаем с помощью двойного слеша \\ и в результате получаем:

\begineqnarray> J_\lambda(x_2, y_2, s_2) = \iint K_\lambda(x_2, y_2) \cdot \Bigl| m_\lambda \left( \frac\lambda \cdot s_2> , \frac\lambda \cdot s_2>\right)\Bigr|^2 \,dx_0\,dy_0 = \nonumber \\ = K_\lambda(x_2, y_2) \otimes \Bigl| m_\lambda \left( \frac\lambda \cdot s_2> , \frac\lambda \cdot s_2> \right) \Bigr|^2 \endeqnarray>
Здесь стоит отметить команду \Bigl | для отрисовки вертикальной линии - после Bigl стоит прямая скобка | и именно она отрисовывает линию в формуле. Конструкция \Bigl . \Bigr позволяет ставить в формулах LaTeX большие скобки, и не только скобки: в данном случае приведён пример с модулем.
Окружение eqnarray позволяет набирать длинные формулы и нумеровать перенесённые на новую строку части формулы. По умолчанию номер ставится после каждой части формулы, перенесённой на новую строку. Если нумеровать кусок не нужно - ставим директиву \nonumber перед переносом формулы \\ .
Формулы в LaTeX с несколькими вариантами (формула зависит от значения переменной)
Нам нужно вставить перечисление возможных значений формулы в зависимости от значения переменной, например:

Для этого стоит использовать окружение \begin для набора таких сложных формул:
\beginequation> \begin \hat\Phi>[k,l] & = & \left\ \begin 0 & \mbox k,l = 0 \\ S_x[k,l]\cdot H_x[k,l] + S_y[k,l]\cdot H_y[k,l] & \mbox \end \right. \end \endequation>
Следует отметить, что конструкция с \left < работать не будет.
Заключение
Разумеется, это далеко не полное руководство по набору формул, но я думаю, что прочтение это поста поможет кому-то быстро включиться (а мне - вспомнить) про набор основных формул в LaTeX.
47 комментариев: |высказаться!| RSS-лента дискуссии.|
Roman комментирует. 19 янв. 2009 г., 18:40:00
Несколько замечаний, которые могут оказаться полезными:
* \limits в большинстве случаев не обязателен, особенно если использовать amsmath с параметрами intlimits и sumlimits
* для длинных многострочных формул обычно лучше использовать окружение multline, которое как раз для этого и предназначено
* текст внутри формулы лучше набирать с использованием \text — тогда текст будет набран шрифтом подходящего размера (например, в индексах), да и команда понятнее, чем mbox.
Вот ещё интересно узнать мнение о том как же все-таки делать индексы с русскими буквами? Что посоветуете? Например, Uсмещ.
Я всегда пользовался конструкциями вида $U_<\mbox<\it смещ>>$, в документе получается Uсмещ .
2virens:
Спасибо за статьи, все хорошо, однако одно режет глаз: в русской типографике в качестве кавычек приняты французские «елочки». В пакете babel для них принята лигатура >. Вы же используете английские кавычки, и хороший корректор в хорошем журнале вам на это обязательно укажет 🙂
2 Me
Несколько замечаний, которые могут оказаться полезными
Всегда рад!
\limits в большинстве случаев не обязателен, особенно если использовать amsmath с параметрами intlimits и sumlimits
А можно пример такой формулы? И потом, с \limits оно проще запоминается (лично мне), да и понятнее.
для длинных многострочных формул обычно лучше использовать окружение multline
Спасибо, я посмотрю.
текст внутри формулы лучше набирать с использованием \text
О, класс! Спасибо, так в самом деле лучше. Исправил в тексте и взял на вооружение 🙂
2 Анонимный комментирует.
как же все-таки делать индексы с русскими буквами? Что посоветуете? Например, Uсмещ.
Так это, $U_>$ -- оно?
Или вот так:
@lnconnu
Я всегда пользовался конструкциями вида $U_<\mbox<\it смещ>>$, в документе получается Uсмещ.
2 lnconnu комментирует.
в русской типографике в качестве кавычек приняты французские «елочки».
Как-то у меня это повелось, уже не помню откуда. Надо будет исправить. Спасибо, что обратили внимание - я поправлю это в текстах.
Вы же используете английские кавычки, и хороший корректор в хорошем журнале вам на это обязательно укажет 🙂
Понял, чего ждать от Optics Communications :-))
> Предупреждаю сразу: структурируйте свой LaTeXовский код грамотно, без сваливания всего в одну кучу и набора в строчку длинных формул.
. и тут же мы видим код, сваленный не в одну, а уже в три строчки.
Вот как должен выглядеть нормально структурированный код:
К сожалению, отступы в начале строк были съедены кодом блогспота, но общий принцип, я думаю, понятен.
Про eqnarray в результате выполения данной команды мы будем получать формулы выровненные по правому краю, что принято взаграничных статьях, но не у нас. Да и вобще частно не красиво, обойти можно следующим способом:
\begin
\begin
eqn_1 \\
eqn_2 \\
eqn_3 \\
\end
\end
Всем здравствуйте!
Интересно узнать варианты набора пояснений к формулам (те что идут после слова "где").
Может кто подскажет готовое решение (в смысле пакет или команду)
че-то блог превращается из блога про дебиан в блог про латекс
>>Анонимный комментирует.
>>Вот ещё интересно узнать мнение о том как же все->>таки делать индексы с русскими буквами? Что >>посоветуете? Например, Uсмещ.
Нашел такой выход: надо обязательно подключать \usepackage ПЕРЕД babel и inputnc.
К автору - не увидел описания пакетов для работы с формулами, опишите если можно.
Ждем статьи про AMSTeX/AmS-LaTeX
2 Анонимный комментирует.
. и тут же мы видим код, сваленный не в одну, а уже в три строчки.
Я тоже не идеал 🙂 Кроме того, Блоггер сильно ест подобное оформление. Поправлю.
2 Alexander Vershilov комментирует.
Про eqnarray в результате выполения данной команды мы будем получать формулы выровненные по правому краю, что принято взаграничных статьях, но не у нас.
Я стараюсь делать и писать так, как принято в Европе и в США, дабы не переучиваться. Но в общем да, проблема есть.
Да и вобще частно не красиво, обойти можно следующим способом:
Сурово 🙂
Но на такие вещи обычно в дипломах закрывают глаза.
Я всю эту серию затеял вот зачем:
1. объединить все свои наброски и выложить в Сети, чтобы самому при случае обратиться (уже обращался и сам искал несколько вещей).
2. дать ПРОСТОЙ framework для оформления диплома.
2 Анонимный комментирует.
че-то блог превращается из блога про дебиан в блог про латекс
В блог про латекс я надеюсь он не превратится 🙂 А насчёт ЛаТеХа - это последний пост серии, скоро выложу пару линуксовых постов.
2 u995 комментирует.
К автору - не увидел описания пакетов для работы с формулами, опишите если можно.
В общем я не хотел на этом акцентировать внимание. Есть пакеты, подключённые в шапке, и мне не хочется этим забивать головы своих студентов.
2 Анонимный комментирует.
Спасибо!
Пожалуйста.
Ждем статьи про AMSTeX/AmS-LaTeX
Спасибо за идею, посмотрю.
[quote]а если нужно над ними ставить пределы - вспоминаем по \limits_^<\infty>[\quote] - вспоминаем про?
[quote]Можно просто поставить обычные скобки, но если формула большая, то можно поставить большие скобки в LaTeX командой $\Bigr($ и $\Bigl)$.[\quote] - можно написать \left( и \right) латех сам подберет размер.
К использованию eqnarray. Это окружение предполагает использование 3 столбцов с выравниванием и разделенных символом &. Приведенный здесь пример можно изменить следующим образом:
\begin
J_\lambda(x_2, y_2, s_2) &=&
\iint I_\lambda(x_2, y_2) \cdot \Biglm_\lambda
\left(
\frac <\lambda \cdot s_2>, \frac<\lambda \cdot s_2>\right)\Bigr^2 \,dx_0\,dy_0 = \nonumber \\
&=& I_\lambda(x_2, y_2) \otimes \Biglm_\lambda \left( \frac <\lambda \cdot s_2>, \frac <\lambda \cdot s_2>\right) \Bigr^2
\end
Тогда первый и третий знаки равенства расположатся друг над другом. Выглядеть будет аккуратно, как зарубежом так и у нас на Родине. =)
\limits вроде как не обязателен, я обычно без него вот так справляюсь \sum_<>^<>, что в принципе будет яснее и короче.
Кто знает, как можно в стилевом файле задать расстояние между текстом и формулой? Спасибо.
Насчет кириллических симлов в индексах --- можно писать и просто $U_$.
Только в заголовке надо добавить
\usepackage
Магия!
На второй картинке фигурная скобка такая уродливая.
Вы вроде бы интересовались способом отображения LaTeX формул в блоге. я нашёл и описал довольно простой способ:
http://independentru.blogspot.com/2010/04/fracx2srtq2-bpmc.html
в преамбуле пишем:
\usepackage[utf8x]
\SetUnicodeOption
\SetUnicodeOption
.
\begin
.
% а теперь выбираем TeX-овскую раскладку клавиатуры в редакторе emacs и пользуемся мощью utf8:
Здравствуйте! У вас в этой статье половину объяснений съел плагин латеха ))) Получилось, что вместо отображения исходника отображается результат. И чаще всего он выглядит как "Latex failed probably due to error in your expression". В более удачных случаях получается, что вы хотели показать, например, команду для верхнего индекса, а показали результат работы этой команды.
@Анонимный комментирует.
У вас в этой статье половину объяснений съел плагин латеха
О, спасибо, а я и не заметил! Вот ведь: одно прикрутишь - другое отвалится. Снёс плагин к чертям.
В более удачных случаях получается, что вы хотели показать, например, команду для верхнего индекса, а показали результат работы этой команды.
Да, не здорово получилось, прошу пардону. Вернул всё на место.
посоветуйте как правильно написать предел с двойным условием??
пробовал что то типа
\lim_\begin
t\rightarrow\tau\\
t\end
>
но получается не красиво, т.к. между условиями большое расстояние
.
. Для указания "сложных" пределов (двойных, вообще - "многократных"), используйте команду "\substack", для
. "стыковки" условий. В аргументе этой команды просто перечислите нужные условия, разделив (перенеся) их, как обычно, командой "\\".
. Вот Ваш пример :
______________________________________________
.
\lim_>
.
______________________________________________
. При этом, в математической моде, лучше .
. использовать команду "\text" для написания
. символов, так что Ваш
. код мог бы выглядеть и так:
.
\lim_\rightarrow\tau\\ \text>
.
_______________________________________________
.
Уважаемые господа. Почему в топике ни слова про такую удобнейшую (хотя конечно и не бесплатную) вещь, как трансляция формул из MathType сразу в формат LaTEX?
Благодаря этой опции я перевожу сложнейшие формульные конструкции из ворда в тех за секунду автоматически.
Оно, правда, не работает, но не всё же коту масленица 🙂
На самом деле, есть окружения split и multiline, созданные для этого.
У меня один вопрос появился: как набрать d₁ ^ d₂, т.е. «крышу»-значок угла между отрезками? Пока пользуюсь такой конструкцией: d_1 \mathstrut^\wedge d_2, но она немного костыльная.
Как выравнивать части формулы относительно друг друга в классе документов elsarticle.
Попробовал Uсмещ всеми указанными тут способами. Не получается, останавливается при компиляции
(Miktex 2.9, компиляция из командной строки latex file.tex)
Зато прошел такой номер:
Скажите, никто из вас не знает. как сделать в TeX-документе ссылки (в библиографии) в виде http://, чтобы в pdf-файле они становились кликабельными, чтобы по ним можно было пройти. ну и цветом выделялись или подчёркивались (второе необязательно да и решабельно, первое больше волнует)
Анонимус негодует \text у него заработало только после \usepackage под миктехом.
Анонимный комментирует:
d_1 \mathstrut^\wedge d_2
Можно еще \Hat\quad ставить, только там знак поменьше 🙂
А вообще стоит ввести новую команду если много углов ставить надо:
в преамбуле написать \newcommand<\ugol><\mathop<\mathstrut^\wedge>\nolimits>
и потом писать d_1 \ugol d_2
"А если нужно набрать в LaTeX символ градуса, можно воспользоваться таким трюком: $180^\circ$, что наберёт 180 градусов."
180\textdegree - смотрится несколько приятнее.
Источник: http://mirror.macomnet.net/pub/CTAN/info/symbols/comprehensive/symbols-a4.pdf
Доброго дня! А как сделать ПРЯМЫЕ строчные греческие буквы?
Это же требование отечественных стандартов.
Здравствуйте, прошу вашей помощи. Как написать знаки типа "принадлежит" или "любой". В стандартном окне их нет
@Анонимный комментирует.
Анонимус негодует \text у него заработало только после \usepackage под миктехом
Зря Анонимус негодует. Автор всегда добавляет amsmath, чтобы не было проблем с такими вещами. Более того, автор вообще использует такой набор по умолчанию:
@Анонимный комментирует.
Как написать знаки типа "принадлежит" или "любой".
Знак "Принадлежит" в Latex это $\in$
Знак "Любой" в латех это $\forall$.
Автор настоятельно рекомендует отличный вебсервис Detexify:
Anyone who works with LaTeX knows how time-consuming it can be to find a symbol in symbols-a4.pdf that you just can't memorize. Detexify is an attempt to simplify this search.
В стандартном окне их нет
Стандартные окна у всех разные, Анонимус. У автора вот, к примеру, эти символы есть в "стандартном окне" Kile в его любимом тёплом ламповом Debian GNU/Linux Squeeze (но Kile всё равно из Lenny, ибо КДЕ 3.5).
Как набрать нормальные фигурные скобки в формуле?
Заглянув в комментарии, ждущие модерации, утречком в субботу, автор нашёл вопросительный вопль Анонимуса о фигурных скобках. "Ох уж эти ленивые Анонимусы!" - с неудовольствием подумал автор. "Всё для них, тунеядцев, и Google, и LaTeX, и Detefixy, и даже вот автор пост накропал - а всё ленятся".
Но потом автору видел, что в посте про фигурные скобки ничего нет, Detexify упомянут в комментариях в самом конце, и потому вопль Анонимуса в общем-то понятен.
Далее автор вспомнил, какая на самом деле каша творится в посте, и подумал, прихлёбывая свой утренний кофе: "Ох уж эти ленивые авторы!" 🙂 И сел править пост.
В процессе оных правок автор обнаружил дублирующиеся куски текста и ошибку в коде одной из формул.
Так что Анонимусу выносится благодарность за то, что сподвиг автора расчистить пост. А теперь автор с позволения Анонимуса таки отправится на традиционную велопрогулку 🙂
Набираю гигантские формулы и использую \newcommand:
\newcommand<\mbox<$\sum\limits_<>^<\prime>$>>
так вот, подскажите пожалуйста, как сделать так, чтобы в больших формулах $$ $$ сумма смотрелась большой суммой, а не как в $ $
@Анонимный комментирует.
как сделать так, чтобы в больших формулах $$ $$ сумма смотрелась большой суммой, а не как в $ $
Совсем не понимаю, зачем там mbox, на тему размера формулы почитайте про \textstyle, \displaystyle. И не пользуйтесь $$ $$ для формул, уже давно де-факто стандарт AMSMath, подключите
и пользуйтесь нормальными окружениями: align, gather, multline.
А как сделать чтоб формула отображалась с русскими символами? Например n_Э. Английская n отобразится, а вот русская Э сожрет часть текста после нее.
При разрыве формулы в ячейке таблицы использую следующую конструкцию &
\makecell=9\frac=$\\$=11,222\text$>\\ \hline
помогите разобраться в данной строке пишут,что вне мат.моды:Если 1---симплекс $[x_i,x_j] \in L$, то такая петля стягиваема, поэтому соответствующий элемент $g_=1$
что нетак?
Скажите, пожалуйства, а как можно в LaTeX'е набрать знаменитый символ самого LaTeX'а, где буквы смещены друг относительно друга?
вне мат.моды:
Возможно, вы забыли подключить пакеты amssymb,amsfonts,mathtext
@Влад Юрченко комментирует.
Скажите, пожалуйства, а как можно в LaTeX'е набрать знаменитый символ самого LaTeX'а, где буквы смещены друг относительно друга?
Да, конечно. Команда \LaTeX спасёт отца русской демократии.
P.S.> Рекомендую сайт tex.stackexchange.com - там много уже отвеченных вопросов. Сам часто использую.
Хотелось бы заметить, что для формул с несколькими вариантами существует окружение cases, так что изобретать велосипед совершенно незачем 🙂
Подкажите пожалуйста, способы уменьшения объёма очень громадных или длинных формул