> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/ru/podrobnye-stati/33-mathtools-for-beautiful-math.md).

# Mathtools — для красивой математики

**Автор: Robert Murrish (июнь 2012)**

`mathtools` — это пакет, о котором вы, вероятно, даже не подозревали, что он вам нужен. LaTeX упрощает набор формул, а `mathtools` делает эти формулы красивыми.

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

### Несколько примеров

#### Дроби в две строки

Сложная дробь может стать настолько широкой, что превысит ширину колонки. Разбиение числителя и/или знаменателя на несколько строк — изящный способ сохранить её в целости.

```latex
z=\frac{ab+cd+ef+gh+ij+kl+mn+op+qr}{y}
z=\frac{\splitfrac{ab+cd+ef+gh+ij}{+kl+mn+op+qr}}{y}
```

![Fract.png](/files/a3d88d7dd86c0dfa56c2a6a725247e6405171153)

#### Длинные параметры суммы

Без `mathtools` функции `\mathclap`, по обе стороны от знака суммы появляются дополнительные пробелы из-за нижних индексов. Простая `mathtools` команда уплотняет результат.

```latex
P_e_i_\Delta = \sum_{j=1, j\not=k,i}E_iE_jB_i_j cos\delta_i_j\delta_i_j_\Delta + V_kE_iB_i_k cos\delta_i_k_o \delta_i_k_\Delta

P_e_i_\Delta = \sum_{\mathclap{j=1, j\not=k,i}}E_iE_jB_i_j cos\delta_i_j \delta_i_j_\Delta + V_kE_iB_i_k cos\delta_i_k_o \delta_i_k_\Delta
```

![Mathclap.png](/files/59f85016b37366beaab044d38811eeadb9763769)

#### Левые индексы

Позволяет размещать надстрочные и подстрочные индексы слева от (перед) символом. Вот пример из химии:

```latex
\prescript{238}{92}{\mathbf{U}}
```

![U238.png](/files/b0a37612e9e20975f5dd0501c1643e4891560aa3)

Эти полные примеры — хорошее место, чтобы начать знакомство `mathtools`, но в этом пакете доступно ещё много инструментов. Ниже приведён полный список всех макросов, содержащихся в пакете (на момент написания этой статьи). Для актуального списка и подробностей по использованию каждого из них см. [документацию по `mathtools` пакет](https://ctan.org/pkg/mathtools?lang=en).

|                                                                                                              |                                                                                                                                                                                                                                                                                                                             |
| ------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Название функции**                                                                                         | **Описание**                                                                                                                                                                                                                                                                                                                |
| mathclap                                                                                                     | Эта функция набирает свой аргумент, не занимая горизонтального пространства, при этом симметрично выступая в обе стороны. Как показано выше, эту функцию можно использовать для удаления лишних пробелов, которые могут появляться в нижних индексах, показателях степени и т. д.                                           |
| mathrlap\nmathllap                                                                                           | Аналогично mathclap, но выступает только вправо или влево соответственно.                                                                                                                                                                                                                                                   |
| сжатый                                                                                                       | Похожа на mathclap, эта функция уплотняет некоторые элементы. Например, она немного сближает показатели степени, что может быть полезно, особенно при наличии более чем одного уровня степеней.                                                                                                                             |
| crampedclap\ncrampedrlap\ncrampedllap                                                                        | Применяет и cramped, и mathclap (или mathrlap и т. п.). Даёт тот же эффект, что и применение обоих отдельно, но с ускорением обработки.                                                                                                                                                                                     |
| smashoperator                                                                                                | Уплотняет выражение, сочетая действие всех функций выше. В большинстве случаев использовать её проще, но вы теряете часть контроля и результат может вам не так понравиться. В таком случае используйте функции выше по отдельности.                                                                                        |
| adjustlimits                                                                                                 | Работает с пределами (\lim), чтобы выравнивать более сложные пределы по вертикали.                                                                                                                                                                                                                                          |
| SwapAboveDisplaySkip                                                                                         | Устраняет часть пустого пространства над формулой.                                                                                                                                                                                                                                                                          |
| newtagform\nrenewtagform\nusetagform                                                                         | «Теги» — это номера формул, и этот набор функций позволяет их изменять, например менять скобки, стиль и т. д.                                                                                                                                                                                                               |
| refeq                                                                                                        | Альтернативный способ ссылаться на функции в тексте документа, не вызывая проблем с несовпадением шрифтов.                                                                                                                                                                                                                  |
| showonlyrefs                                                                                                 | Это флаг, а не функция, но всё равно весьма полезный. Если он установлен, номера получат только те формулы, на которые есть ссылки в тексте.                                                                                                                                                                                |
| showmanualtags                                                                                               | То же, что и showonlyrefs, но для формул, для которых заданы ручные теги.                                                                                                                                                                                                                                                   |
| noeqref                                                                                                      | Позволяет создать исключение для двух флагов выше, чтобы показать номер или тег формулы, даже если на неё нет ссылки в тексте.                                                                                                                                                                                              |
| xleftrightarrow\nxLeftarrow\nxRightarrow\nxhookleftarrow\nxhookrightarrow\nxmapsto                           | Набор функций для рисования различных стрелок, которые будут растягиваться по мере необходимости, чтобы вместить связанный с ними текст.                                                                                                                                                                                    |
| xrightharpoondown\nxleftharpoondown\nxrightharpoonup\nxleftharpoonup\nxrightleftharpoons\nxleftrightharpoons | Набор «гарпунов» или вертикальных стрелок. Как и стрелки, они будут растягиваться по мере необходимости                                                                                                                                                                                                                     |
| overbrace\nunderbrace                                                                                        | Ставит фигурную скобку над или под формулой. То же, что и функции, встроенные в LaTeX, но часто даёт более качественный набор. Если вам нужны исходные функции LaTeX, можно использовать \LaTeXoverbrace и \LaTeXunderbrace.                                                                                                |
| overbracket\nunderbracket                                                                                    | Располагается над или под формулой, как overbrace и underbrace, но с квадратными скобками.                                                                                                                                                                                                                                  |
| begin{matrix} и родственные                                                                                  | Существует несколько вариантов набора матриц. В основном они лучше центрируют элементы, чем настройки по умолчанию, но есть и другие варианты, например smallmatrix. Советую обратиться к официальной документации mathtools, чтобы определить, какой вариант лучше всего подойдёт вам после того, как вы зададите матрицу. |
| multlined                                                                                                    | Разбивает длинную формулу на части, подобно дробям с разбиением в первом примере выше.                                                                                                                                                                                                                                      |
| begin{cases} и родственные                                                                                   | Инструменты для корректного набора кусочно-заданных формул. И здесь доступно много вариантов; вместо того чтобы перечислять их все, отсылаю вас к официальной документации mathtools, когда вы уже знаете, как выглядит ваша кусочно-заданная формула.                                                                      |
| MoveEqLeft                                                                                                   | Способ при необходимости сделать отступ для формул.                                                                                                                                                                                                                                                                         |
| Aboxed                                                                                                       | Рисует рамку вокруг формулы.                                                                                                                                                                                                                                                                                                |
| ArrowBetweenLines\nvdotswithin\nshortvdotswithin\nMTFlushSpaceAbove\nMTFlushSpaceBelow                       | Эти функции позволяют использовать пустое пространство между формулами, стрелками, многоточиями и т. д.                                                                                                                                                                                                                     |
| shortintertext                                                                                               | Подобно функции \intertext в amsmath, это позволяет вставить небольшой фрагмент текста в ряд формул, не нарушая выравнивание. Эта версия функции оставляет меньше пустого пространства.                                                                                                                                     |
| DeclarePairedDelimiter                                                                                       | Позволяет определять новые разделители; пример из документации — создание пары вертикальных черт для модуля нужной высоты для дроби. У этой функции есть несколько дополнительных возможностей.                                                                                                                             |
| lparen\nrparen                                                                                               | Эквивалентно \left(, \right). Предоставлено для совместимости.                                                                                                                                                                                                                                                              |
| vcentcolon                                                                                                   | Рисует двоеточие, центрированное по вертикали.                                                                                                                                                                                                                                                                              |
| nuparrow\nndownarrow\nbigtimes                                                                               | Предоставляет символы, которые иногда недоступны другими способами.                                                                                                                                                                                                                                                         |
| prescript                                                                                                    | Позволяет размещать над- и подстрочные индексы перед символом, как показано в примере 3 выше.                                                                                                                                                                                                                               |
| begin{spreadlines}                                                                                           | Окружение spreadlines позволяет явно задавать вертикальные интервалы между формулами.                                                                                                                                                                                                                                       |
| splitfrac\nsplitdfrac                                                                                        | Позволяет разбивать числитель или знаменатель дроби на несколько строк, как в примере 1 выше.                                                                                                                                                                                                                               |

Ниже приведены прямые ссылки на часть доступной документации по mathtools:

* [`mathtools` пакет и документация на CTAN](https://ctan.org/pkg/mathtools?lang=en);
* [статья в TUGboat](http://www.tug.org/TUGboat/Articles/tb22-4/tb72perlS.pdf).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/ru/podrobnye-stati/33-mathtools-for-beautiful-math.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
