> 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/komandi/01-commands.md).

# Команди

## Вступ

Ця стаття дає перший вступ до *команди*, які є важливою складовою можливостей верстки LaTeX. Більшість команд LaTeX — це прості слова, перед якими стоїть спеціальний символ, зазвичай `\`, символ зворотної скісної риски. Розгляньмо кілька прикладів:

```latex
\documentclass{article}
\begin{document}
У документі є різні типи \textbf{команд}
які визначають спосіб відображення елементів. Ці
команди можуть вставляти спеціальні елементи: $\alpha \beta \Gamma$
\end{document}
```

[Відкрийте цей приклад в Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+commands+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0AIn+a+document+there+are+different+types+of+%5Ctextbf%7Bcommands%7D+%0Athat+define+the+way+the+elements+are+displayed.+This+%0Acommands+may+insert+special+elements%3A+%24%5Calpha+%5Cbeta+%5CGamma%24%0A%5Cend%7Bdocument%7D)

Цей приклад дає такий результат:

![Базове форматування тексту за допомогою LaTeX](/files/4cc701ab65af6d0af7153f158a4b3dea0f3cdaf7)

У попередньому прикладі є різні типи команд; наприклад, `\textbf` виділить жирним шрифтом текст, переданий як параметр команді. У математичному режимі є спеціальні команди, такі як `\alpha`, `\beta` та `\Gamma` для відображення грецьких символів.

## Команди

Ось приклад коду LaTeX із командами для створення маркованого списку:

```latex
\documentclass{article}
\begin{document}
Приклад списку:
\begin{itemize}
  \item[\S] Перший пункт
  \item Другий пункт
\end{itemize}
\end{document}
```

[Відкрийте цей приклад в Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+itemized+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0AA+list+example%3A%0A%5Cbegin%7Bitemize%7D%0A++%5Citem%5B%5CS%5D+First+item%0A++%5Citem+Second+item%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Цей приклад дає такий результат:

![Базовий список, зверстаний у LaTeX](/files/0ba7729632e74f90ef178e82518596b17208ef46)

Команда `\begin{itemize}` починає `itemize` *середовище*—див. [статтю про середовища](/latex/uk/komandi/02-environments.md) для докладнішої інформації. Нижче оголошення середовища є команда `\item` яка вказує LaTeX почати новий елемент списку: щоб його форматувати, додайте спеціальний маркер (маленьку чорну крапку, що називається bullet) і зробіть відступ для елемента.

Деякі команди вимагають одного або кількох *параметрами*; наприклад, `\textbf` команда (використана вище), яка приймає один параметр — текст, що має бути показаний жирним шрифтом; він записується в фігурних дужках так: `\textbf{зробіть це жирним}`.

Також існують *необов'язковим* параметри, які можна передавати команді, щоб змінити її поведінку; ці необов’язкові параметри слід поміщати в квадратні дужки: `[...]`. У наведеному вище прикладі команда `\item[\S]` робить те саме, що й `\item`, але всередині дужок є `\S`, який підставляє інший символ замість чорної крапки перед текстом елемента.

## Визначення нової команди

Хоча LaTeX постачається з величезною кількістю команд, часто виникає потреба визначати власні спеціальні команди, щоб спростити роботу, зменшити повторювані дії або виконувати складне форматування.

### Прості команди

Нові команди визначаються за допомогою `\newcommand`; тож розгляньмо простий приклад:

```latex
\documentclass{article}
\usepackage{amssymb}
\begin{document}
\newcommand{\R}{\mathbb{R}}
Множину дійсних чисел зазвичай позначають
потовщеною великою R: \( \R \).
\end{document}
```

[Відкрийте цей приклад в Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Creating+a+simple+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamssymb%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewcommand%7B%5CR%7D%7B%5Cmathbb%7BR%7D%7D%0AThe+set+of+real+numbers+are+usually+represented+%0Aby+a+blackboard+bold+capital+R%3A+%5C%28+%5CR+%5C%29.%0A%5Cend%7Bdocument%7D)

Цей приклад дає такий результат:

![Результат нової команди](/files/bdb8d955957a7ce751525e10cb2328f205ead430)

Вираз `\newcommand{\R}{\mathbb{R}}` має два параметри, що визначають нову команду, де:

* `\R`: це ім’я нової команди.
* `\mathbb{R}`: це те, що робить нова команда. У цьому випадку літера R буде записана шрифтом blackboard bold. Використання `\mathbb` команди потребує `amssymb` пакета, який було додано до наведеного вище прикладу (у преамбулі).

Після того як команда визначена, ми можемо використовувати її в тексті, як показано вище. У цьому прикладі нову команду визначено безпосередньо перед абзацом, у якому її використовують; однак розкидати такі визначення по всьому документу не вважається найкращою практикою. Зазвичай визначення нових команд збирають разом у преамбулі документа або, для більших наборів, поміщають в окремий файл, який можна [імпортувати у ваш основний документ](/latex/uk/struktura-dokumenta/07-management-in-a-large-project.md#inputting-and-including-files).

### Команди з параметрами

Також можна створювати нові команди, що приймають певні параметри; наприклад:

```latex
\documentclass{article}
\usepackage{amssymb}
\begin{document}
\newcommand{\bb}[1]{\mathbb{#1}}
Інші числові системи мають подібні позначення.
Комплексні числа \( \bb{C} \), раціональні
числа \( \bb{Q} \) та цілі числа \( \bb{Z} \).
\end{document}
```

[Відкрити цей приклад в Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+command+with+1+parameter\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamssymb%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewcommand%7B%5Cbb%7D%5B1%5D%7B%5Cmathbb%7B%231%7D%7D%0AOther+numerical+systems+have+similar+notations.+%0AThe+complex+numbers+%5C%28+%5Cbb%7BC%7D+%5C%29%2C+the+rational+%0Anumbers+%5C%28+%5Cbb%7BQ%7D+%5C%29+and+the+integer+numbers+%5C%28+%5Cbb%7BZ%7D+%5C%29.%0A%5Cend%7Bdocument%7D)

Цей приклад дає такий результат:

![Результат команди LaTeX з параметром](/files/a8c4f9688b0324cb80cadf6494a0344be5a182fe)

Рядок `\newcommand{\bb}[1]{\mathbb{#1}}` визначає нову команду, що приймає один параметр, де:

* `\bb` це ім’я нової команди.
* `[1]` це кількість параметрів, які прийматиме нова команда.
* `\mathbb{#1}` це те, що команда насправді робить — її визначення.

У цьому випадку параметр, на який посилаються як `#1`, буде записано символами шрифту blackboard bold. Якщо команда потребує більше ніж одного параметра, ви можете звертатися до кожного параметра за допомогою `#1`, `#2` і так далі. Підтримується до 9 параметрів.

### Команди з необов’язковими параметрами

Команди, визначені користувачем, можуть бути ще гнучкішими, ніж наведені досі приклади: можна визначати команди, що приймають *необов'язковим* параметри:

```latex
\documentclass{article}
\begin{document}

Коли ми записуємо багато виразів із степенями, можна спростити завдання й заощадити час, визначивши відповідну команду:

\newcommand{\plusbinomial}[3][2]{(#2 + #3)^#1}

Можна використовувати її так: \[ \plusbinomial{x}{y} \]

І навіть показник степеня можна змінити:

\[ \plusbinomial[4]{a}{b} \]
\end{document}
```

[Відкрийте цей приклад в Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+command+with+optional+parameters\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%0AWhen+writing+many+expressions+with+exponents+we+can+simplify+our+task%2C+and+save+time%2C+by+defining+a+suitable+command%3A%0A%0A%5Cnewcommand%7B%5Cplusbinomial%7D%5B3%5D%5B2%5D%7B%28%232+%2B+%233%29%5E%231%7D%0A%0AWe+can+use+it+like+this%3A+%5C%5B+%5Cplusbinomial%7Bx%7D%7By%7D+%5C%5D%0A%0AAnd+even+the+exponent+can+be+changed%3A%0A%0A%5C%5B+%5Cplusbinomial%5B4%5D%7Ba%7D%7Bb%7D+%5C%5D%0A%5Cend%7Bdocument%7D)

Цей приклад дає такий результат:

![Результат команди з необов’язковими параметрами](/files/b8789b3c4000cff5ebdb9e8ce35ba8493c2f8c77)

Проаналізуймо синтаксис рядка `\newcommand{\plusbinomial}[3][2]{(#2 + #3)^#1}`:

* `\plusbinomial` це ім’я нової команди.
* `[3]` це кількість параметрів, які прийматиме команда; у цьому випадку 3.
* `[2]` це значення за замовчуванням для першого параметра. Саме це робить перший параметр необов’язковим: якщо його не передано, буде використано це значення за замовчуванням.
* `(#2 + #3)^#1` це те, що робить команда. У цьому випадку вона підставляє другий і третій параметри у «біноміальний формат» у степінь, яку задає перший параметр.

## Перевизначення наявних команд

Якщо ви спробуєте визначити нову команду, яка має таку саму назву, як і *вже наявна* команда LaTeX, то компіляція завершиться помилкою. Це показано в наведеному нижче прикладі, який намагається визначити (наявну) `\textbf` команди:

```latex
\documentclass{article}
\newcommand{\textbf}[1]{#1}% Це не спрацює
\begin{document}

\section{Це завершиться помилкою}
\end{document}
```

[Відкрийте цей (**такий, що спричиняє помилку**) приклад в Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Duplicate+command+name\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cnewcommand%7B%5Ctextbf%7D%5B1%5D%7B%231%7D%25+This+will+not+work%0A%5Cbegin%7Bdocument%7D%0A%0A%5Csection%7BThis+will+fail%7D%0A%5Cend%7Bdocument%7D)

Під час компіляції цього прикладу отримуємо такий результат:

![Помилка, спричинена повторним визначенням команди LaTeX](/files/50c37bdfbaa485d2c7a068dd7830c6c5580894fa)

Як показано на знімку екрана, наша спроба визначити `\textbf` зазнала невдачі: LaTeX згенерував повідомлення про помилку **Помилка LaTeX: команда \textbf вже визначена**.

Якщо ви справді хочете перевизначити наявну команду, це можна зробити за допомогою `\renewcommand`, яка використовує той самий синтаксис, що й `\newcommand`:

```latex
\documentclass{article}
\usepackage{amssymb}
\begin{document}

\renewcommand{\S}{\mathbb{S}}

Сфера Рімана (комплексні числа плюс $\infty$) є
інколи позначається як \( \S \).
\end{document}
```

[Відкрийте цей приклад в Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Redefine+existing+command\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamssymb%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Crenewcommand%7B%5CS%7D%7B%5Cmathbb%7BS%7D%7D%0A%0AThe+Riemann+sphere+%28the+complex+numbers+plus+%24%5Cinfty%24%29+is+%0Asometimes+represented+by+%5C%28+%5CS+%5C%29.%0A%5Cend%7Bdocument%7D)

Цей приклад дає такий результат:

![Результат перевизначеної команди LaTeX](/files/25d43a1342a8ffe578023534ffb4168ec55a0c7e)

У цьому прикладі команда `\S` (див. приклад у [команди](#commands) розділі) перевизначається для виведення S шрифтом blackboard bold.

## Додаткове читання

Докладніше див.:

* [Середовища](/latex/uk/komandi/02-environments.md)
* [Розуміння пакетів і файлів класів](/latex/uk/faili-klasiv/01-understanding-packages-and-class-files.md)
* [Створення власного пакета](/latex/uk/faili-klasiv/03-writing-your-own-package.md)
* [Створення власного класу](/latex/uk/faili-klasiv/04-writing-your-own-class.md)
* [Довжини в LaTeX](/latex/uk/formatuvannya/01-lengths-in-latex.md)
* [Використання кольорів у LaTeX](/latex/uk/formatuvannya/13-using-colors-in-latex.md)
* [Розмір сторінки та поля](/latex/uk/formatuvannya/07-page-size-and-margins.md)
* [Список пакетів і файлів класів](/latex/uk/faili-klasiv/02-overleaf-and-tex-live.md)
* [Не зовсім короткий вступ до LaTeX2ε](http://www.ctan.org/tex-archive/info/lshort/)
* [LaTeX/Creating\_Packages у WikiBooks](http://en.wikibooks.org/wiki/LaTeX/Creating_Packages)


---

# 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/komandi/01-commands.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.
