> 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/uk/dokladni-statti/33-mathtools-for-beautiful-math.md).

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

**Автор: Роберт Мурріш (червень 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/5e01f6efb18d6e6f4b693f2382ad434b63d0366d)

#### Довгі параметри суми

Без `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/1f26a51c096faf22913cd10cd465f0a60c40452b)

#### Прескрипти

Дозволяє верхні та нижні індекси ліворуч від (перед) символом. Ось приклад з хімії:

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

![U238.png](/files/1132b09e46a4591692b911ce6e9ba8b11fb9fee7)

Ці повні приклади — гарне місце, щоб почати знайомство `mathtools`, але в цьому пакеті є ще багато інструментів. Нижче наведено повний список усіх макросів, що містяться в пакеті (на дату написання цієї статті). Щоб отримати актуальний список і докладні відомості про те, як використовувати кожен із них, дивіться [документацію до `mathtools` accents](https://ctan.org/pkg/mathtools?lang=en).

|                                                                                                                               |                                                                                                                                                                                                                                                                                                                                                      |
| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Назва функції**                                                                                                             | **Опис**                                                                                                                                                                                                                                                                                                                                             |
| mathclap                                                                                                                      | Ця функція верстає свій аргумент, не займаючи жодного горизонтального простору, симетрично виходячи за межі з обох боків. Як показано вище, цю функцію можна використовувати, щоб прибрати зайві пробіли, які можуть виникати в нижніх індексах, показниках степеня тощо.                                                                            |
| <p>mathrlap<br>mathllap</p>                                                                                                   | Те саме, що й mathclap, але виступає лише праворуч або ліворуч відповідно.                                                                                                                                                                                                                                                                           |
| cramped                                                                                                                       | Подібно до mathclap, ця функція стискає певні елементи. Наприклад, вона трохи сильніше зближує показники степеня, що може бути корисно, особливо коли є більше ніж один рівень показників степеня.                                                                                                                                                   |
| <p>crampedclap<br>crampedrlap<br>crampedllap</p>                                                                              | Застосовує і cramped, і mathclap (або mathrlap тощо). Ефект такий самий, як і від окремого застосування обох, але з підвищенням швидкодії під час обробки.                                                                                                                                                                                           |
| smashoperator                                                                                                                 | Стискає текст подібно до комбінації всіх наведених вище функцій. У більшості випадків його простіше використовувати, але ви втрачаєте частину контролю і можете бути не надто задоволені результатом. У такому разі використовуйте наведені вище функції окремо.                                                                                     |
| adjustlimits                                                                                                                  | Працює з межами (\lim), щоб складніші межі вирівнювалися вертикально.                                                                                                                                                                                                                                                                                |
| SwapAboveDisplaySkip                                                                                                          | Усуває частину пробілів над рівнянням.                                                                                                                                                                                                                                                                                                               |
| <p>newtagform<br>renewtagform<br>usetagform</p>                                                                               | «Теги» — це номери рівнянь, і цей набір функцій дає змогу змінювати їх, наприклад змінювати дужки, стиль тощо.                                                                                                                                                                                                                                       |
| refeq                                                                                                                         | Альтернативний спосіб посилатися на функції в тексті документа, не спричиняючи проблем із невідповідністю шрифтів.                                                                                                                                                                                                                                   |
| showonlyrefs                                                                                                                  | Це прапорець, а не функція, але все одно дуже корисний. Якщо його встановити, номери рівнянь отримають лише ті рівняння, на які є посилання в тексті.                                                                                                                                                                                                |
| showmanualtags                                                                                                                | Те саме, що й showonlyrefs, але для рівнянь, у яких встановлено ручні теги.                                                                                                                                                                                                                                                                          |
| noeqref                                                                                                                       | Дозволяє створити виняток із двох наведених вище прапорців, щоб показати номер або тег рівняння, навіть якщо на нього немає посилання в тексті.                                                                                                                                                                                                      |
| <p>xleftrightarrow<br>xLeftarrow<br>xRightarrow<br>xhookleftarrow<br>xhookrightarrow<br>xmapsto</p>                           | Набір функцій для малювання різних стрілок, які за потреби розширюються, щоб умістити пов’язаний текст.                                                                                                                                                                                                                                              |
| <p>xrightharpoondown<br>xleftharpoondown<br>xrightharpoonup<br>xleftharpoonup<br>xrightleftharpoons<br>xleftrightharpoons</p> | Набір «гарпунів» або вертикальних стрілок. Подібно до стрілок, вони за потреби розширюються                                                                                                                                                                                                                                                          |
| <p>overbrace<br>underbrace</p>                                                                                                | Розміщує дужку над або під рівнянням. Те саме, що й вбудовані функції LaTeX, але часто дає кращу верстку. Ви можете використовувати \LaTeXoverbrace та \LaTeXunderbrace, якщо вам потрібні оригінальні функції LaTeX.                                                                                                                                |
| <p>overbracket<br>underbracket</p>                                                                                            | Розміщує над або під рівнянням так само, як overbrace і underbrace, але з квадратними дужками.                                                                                                                                                                                                                                                       |
| begin{matrix} та інші подібні                                                                                                 | Існує кілька варіантів верстки матриць. Вони здебільшого слугують для кращого центрування елементів, ніж у стандартних налаштуваннях, але мають і деякі інші можливості, наприклад smallmatrix. Я раджу вам переглянути офіційну документацію mathtools, щоб визначити, який варіант найкраще відповідає вашим потребам, коли матрицю вже визначено. |
| multlined                                                                                                                     | Розбиває довге рівняння на частини, подібно до розбиття дробів у першому прикладі вище.                                                                                                                                                                                                                                                              |
| begin{cases} та інші подібні                                                                                                  | Інструменти для правильного набору кусочно-заданих рівнянь. Знову ж таки, доступно багато варіантів, тож замість того, щоб розглядати їх усі, я відсилаю вас до офіційної документації mathtools, щойно ви зрозумієте, як виглядає ваше кусочно-задане рівняння.                                                                                     |
| MoveEqLeft                                                                                                                    | Спосіб створити відступ для рівнянь, якщо це необхідно.                                                                                                                                                                                                                                                                                              |
| Aboxed                                                                                                                        | Обводить рівняння рамкою.                                                                                                                                                                                                                                                                                                                            |
| <p>ArrowBetweenLines<br>vdotswithin<br>shortvdotswithin<br>MTFlushSpaceAbove<br>MTFlushSpaceBelow</p>                         | Ці функції дають змогу малювати у пробілах між рівняннями, стрілками, крапками тощо.                                                                                                                                                                                                                                                                 |
| shortintertext                                                                                                                | Подібно до функції \intertext в amsmath, це дає змогу вставити трохи тексту в послідовність рівнянь, не порушуючи вирівнювання. Ця версія функції створює менше порожнього простору.                                                                                                                                                                 |
| DeclarePairedDelimiter                                                                                                        | Дозволяє визначати нові роздільники; приклад із документації — створення вертикальних рисок абсолютної величини потрібної висоти для дробу. Ця функція має деякі розширені параметри.                                                                                                                                                                |
| <p>lparen<br>rparen</p>                                                                                                       | Еквівалентно \left(, \right). Надано для сумісності.                                                                                                                                                                                                                                                                                                 |
| vcentcolon                                                                                                                    | Малює двокрапку, вирівняну по вертикальному центру.                                                                                                                                                                                                                                                                                                  |
| <p>nuparrow<br>ndownarrow<br>bigtimes</p>                                                                                     | Надає символи, які інколи недоступні іншими способами.                                                                                                                                                                                                                                                                                               |
| prescript                                                                                                                     | Дозволяє розміщувати верхні та нижні індекси перед символом, як показано в прикладі 3 вище.                                                                                                                                                                                                                                                          |
| begin{spreadlines}                                                                                                            | Середовище spreadlines дає змогу явно визначати вертикальний інтервал між рівняннями.                                                                                                                                                                                                                                                                |
| <p>splitfrac<br>splitdfrac</p>                                                                                                | Дозволяє розбивати чисельник або знаменник у дробах, як у прикладі 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/uk/dokladni-statti/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.
