Найти тему

Математические выкладки в документе без мыслей о суициде. Часть 1.

Оглавление

Флэшбэк

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

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

Преамбула

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

\usepackage{amsmath,amsfonts,amssymb,amsthm,mathtools}
\usepackage{icomma} % "Умная" запятая
\usepackage{euscript} % Шрифт Евклид
\usepackage{mathrsfs} % Красивый матшрифт
  • в первой строке командой подключаются 5 пакетов, разработанных американским математическим сообществом (AMS). Они содержат различные математические символы.
  • icomma - пакет, отвечающий за то, чтоб в формуле отличались десятичные дроби от перечислений (2,5 (две целых пять десятых) от 2, 5 (перечисление цифр через пробел)). Нужен потому, что пробелы в математическом режиме игнорируются
  • Следующие пакеты euscript и mathrsfs - меняют шрифт мат.формул, функционала более серьёзного не несут)

Как набираются формулы

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

Строчные пишутся между двумя знаками $, номеров они не имеют:

Пусть, например, в первом опыте $I_k=I_{k1}$ и $I_p=I_{p1}$, а во втором $I_k=I_{k2}$ и $I_p=I_{p2}$.
Результат компиляции исходного кода, приведённого выше
Результат компиляции исходного кода, приведённого выше

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

Пусть сопротивление ветви 2 изменилось на $\Delta R$, в результате чего токи стали \[I_1+\Delta I_1\qquad\text{и}\qquad I_2+\Delta I_2.\]
Результат компиляции исходного кода, приведённого выше. Обратите внимание, что точка, которая ставится после формулы (обведена красным), набирается внутри \[ \], а не после. В противном случае её выкинет на следующую строку.
Результат компиляции исходного кода, приведённого выше. Обратите внимание, что точка, которая ставится после формулы (обведена красным), набирается внутри \[ \], а не после. В противном случае её выкинет на следующую строку.

Если формула должна иметь номер, то тут потребуется окружение.

(Окружение, это две строки, указывающие, что код внутри них является особенным элементом и компилируется по определённым правилам. Окружение объявляется командой \begin а закрывается командой \end, обе команды имеют обязательный аргумент - название объявляемого окружения. Самый явный случай - окружение document, внутри которого набирается весь документ.)

Список окружений, объявляющих формулы, выглядит примерно так:

  • \begin{equation} ---\end{equation} - создаёт выключную формулу, нумерующуюся автоматически.
  • \begin{multline} ---\end{multline} - создаёт выключную формулу, нумерующуюся автоматически. Позволяет разнести очень длинную формулу по строкам.
  • \begin{align} --- \end{align} - создаёт выключную формулу. Позволяет набирать несколько выражений в строки и столбцы, нумерует каждую строку как формулу. Позволяет управлять выравниванием выражений в столбцах.

Набор различных операторов и символов может быть сложен, если не знать, как быстро найти команду, его вводящую. Для этого есть Detexify (онлайн сервис или приложение на мобильный), или литература, перечисленная здесь, в конце статьи. Что-ж, "даёшь каждому окружению по достойному примеру!" Заодно и нюансы разберём.

\begin{equation}
M(f)=\left.\left(\int\limits_a^bf(x)dx\right)\right/(b-a)
\end{equation}
Дополнительно остановимся на печати знаков над и под интегралом и постановкой скобок в следующей статье.
Дополнительно остановимся на печати знаков над и под интегралом и постановкой скобок в следующей статье.
\begin{multline}
1\times 2\times 3\times 4\times 5\times 6\times 7\times \dots \times \\
\times 50\times 51\times 52\times 53\times 54\times 55\times 56\times 57 \times \dots \times \\
\times 96\times 97\times 98\times 99\times 100>15
\end{multline}
%В качестве разделителя строк формулы ставится "\\", команда \times ставит крестиком знак умножения.
Обратите внимание, что если строк больше трёх, то по левому краю будет только первая строка ,а по правому - только последняя. Все остальные строки будут выровнены по центру.
Обратите внимание, что если строк больше трёх, то по левому краю будет только первая строка ,а по правому - только последняя. Все остальные строки будут выровнены по центру.
\begin{align}
7\times 9&=63&63:9&=7\\
9\times 10&=90&90:10&=9
\end{align}
%Переход на новую строку по-прежнему задаётся командой "\\".
Амперсанды (знаки "&") используются для отделения столбцов друг от друга и для отметки, по которой будут выравниваться выражения в столбцах. Первый амперсанд в строке (жирные) указывает место, по которому выравнивать текущий столбец, а второй(подчёркнутые) - разделяет столбцы. То есть все выражения в столбцах будут выставлены так, чтоб знаки, идущие после амперсандов, стояли друг над другом.
Столбцов может быть столько, сколько потребуется. Классическое выравнивание выражений - по знаку "=".
Столбцов может быть столько, сколько потребуется. Классическое выравнивание выражений - по знаку "=".

Подавление автоматической нумерации и ручная нумерация формул.

Если вдруг понадобилось окружение, но номер формуле ставить не надо, то используется окружение - двойник, получающееся добавлением к названию "*": \begin{multline*} \begin{align*} и т.п.

Кроме этого, в начале нумерующейся формулы можно написать \nonumber и нумероваться она не станет, это бывает полезно, когда надо подавить номер у конкретной строки в окружении align, не трогая при этом остальные.

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

\begin{align}
7\times 9&=63&63:9&=7\\
\nonumber 8\times 9&=72&72:9&=8\\
9\times 9&=81&81:9&=9\\
9\times 10&=90&90:9&=10\tag{$\Delta$}
\end{align}
%Подправили предыдущую формулу: команда \tag{} ставит такие же скобки, что у номера формулы, но пишет туда текст, который дадут в аргумент, если там символ из математики - надо писать его в мат.режиме. Аргумент команды \tag{} изначально не в мат.режиме, несмотря на то, что команда набрана внутри мат. режима. Команда \Delta, набираемая в математическом режиме, ставит заглавную букву Дельта (если команду со строчной буквы написать - то и в документ напишет малую дельту).
Вот такая вот штука вышла. Подавили номер у одной формулы, последней захотели и вместо номера поставили Дельту.
Вот такая вот штука вышла. Подавили номер у одной формулы, последней захотели и вместо номера поставили Дельту.

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

\[I_1+\Delta I_1\qquad\text{и}\qquad I_2+\Delta I_2.\eqno(5.6)\]
\[I_1+\Delta I_1\qquad\text{и}\qquad I_2+\Delta I_2.\eqno\text{Драсьте}\]
%Для того, чтобы текст, написанный внутри математического режима, воспринимался как именно как текст, можно использовать команду .... *барабанная дробь* \text{} (подчёркнута).
Как видите, \eqno ставит только пробел, но такой длины, чтоб текст после неё был в конце строки, как положено номеру формулы.
Как видите, \eqno ставит только пробел, но такой длины, чтоб текст после неё был в конце строки, как положено номеру формулы.

Общий вид документа получается такой, если набрать всё то, что я описал:

-8

Исходный код документа со всеми разобранными примерами лежит здесь.

С вами был канал LaTeX на уровне (ниже) среднего, не забываем, что лайк-коммент-подписка даруют мне счастье (и, скорее всего, силу Земли(с)).