> 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/komandy/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/2cff6804fa510e08f2be4b174cee9dbc40081c6d)

В предыдущем примере есть разные типы команд; например, `\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/d36ab994496c6b63a9b28ab47824d9c77ad515a8)

Команда `\begin{itemize}` начинает `itemize` *окружения*—см. [статью об окружениях](/latex/ru/komandy/02-environments.md) для подробностей. Ниже объявления окружения находится команда `\item` которая сообщает LaTeX начать новый элемент списка: чтобы его оформить, добавьте специальную метку (маленькую чёрную точку, называемую буллетом) и сделайте отступ для элемента.

Некоторые команды требуют одного или нескольких *параметрами*; например, `\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/b966e685698385f3b401d5f4c31ea0df05078eca)

Утверждение `\newcommand{\R}{\mathbb{R}}` имеет два параметра, которые определяют новую команду, где:

* `\R`: это имя новой команды.
* `\mathbb{R}`: это то, что делает новая команда. В данном случае буква R будет записана в стиле «чёрной доски». Использование `\mathbb` команды требует `amssymb` пакета, который был добавлен в приведённый выше пример (в преамбуле).

После определения команды мы можем использовать её в тексте, как показано выше. В этом примере новая команда определена непосредственно перед абзацем, в котором она используется; однако размещать такие определения по всему документу не считается хорошей практикой. Обычно определения новых команд собирают в преамбуле документа или, для больших наборов, помещают в отдельный файл, который можно [импортировать в ваш основной документ](/latex/ru/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/a9f50a150f544f12dd4bc991af793e8098d2cafc)

Строка `\newcommand{\bb}[1]{\mathbb{#1}}` определяет новую команду, которая принимает один параметр, где:

* `\bb` это имя новой команды.
* `[1]` это количество параметров, которые будет принимать новая команда.
* `\mathbb{#1}` это то, что команда на самом деле делает — её определение.

В этом случае параметр, обозначаемый как `#1`, будет записан символами в стиле «чёрной доски». Если команде требуется более одного параметра, вы можете обращаться к каждому параметру с помощью `#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/435c2f3674b298e2d0d7df7ce30d11d18bc8eb0a)

Давайте проанализируем синтаксис строки `\newcommand{\plusbinomial}[3][2]{(#2 + #3)^#1}`:

* `\plusbinomial` это имя новой команды.
* `[3]` это количество параметров, которые будет принимать команда; в данном случае 3.
* `[2]` это значение по умолчанию для первого параметра. Именно это делает первый параметр необязательным: если он не передан, будет использовано это значение по умолчанию.
* `(#2 + #3)^#1` это то, что делает команда. В данном случае она поместит второй и третий параметры в «биномиальный формат» в степени, заданной первым параметром.

## Переопределение существующих команд

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

```latex
\documentclass{article}
\newcommand{\textbf}[1]{#1}% This will not work
\begin{document}

\section{This will fail}
\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/264b9d71b6233f251e410f4f951b8eafa400f452)

Как показано на снимке экрана, наша попытка определить `\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/ec24145a8061269e4e5bc919cba1b2fec37fcae9)

В этом примере команда `\S` (см. пример в [команды](#commands) разделе) переопределяется для вывода заглавной S в стиле «чёрной доски».

## Дополнительное чтение

Для получения дополнительной информации см.:

* [Окружения](/latex/ru/komandy/02-environments.md)
* [Понимание пакетов и файлов классов](/latex/ru/faily-klassov/01-understanding-packages-and-class-files.md)
* [Создание собственного пакета](/latex/ru/faily-klassov/03-writing-your-own-package.md)
* [Создание собственного класса](/latex/ru/faily-klassov/04-writing-your-own-class.md)
* [Длины в LaTeX](/latex/ru/formatirovanie/01-lengths-in-latex.md)
* [Использование цветов в LaTeX](/latex/ru/formatirovanie/13-using-colors-in-latex.md)
* [Размер страницы и поля](/latex/ru/formatirovanie/07-page-size-and-margins.md)
* [Список пакетов и файлов классов](/latex/ru/faily-klassov/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/ru/komandy/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.
