> 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/yazyki/14-russian.md).

# Русский

## Введение

В этой статье рассматривается набор текста на русском языке: обеспечение корректного использования [кириллических](https://en.wikipedia.org/wiki/Cyrillic_script) символов, таких как ц, ч, ш, щ, ъ и т. д., а также поддержка языковых особенностей, таких как переносы. Если вы ищете инструкции о том, как использовать более одного языка в одном документе, например английский и русский, см. [Поддержка международных языков](/latex/ru/yazyki/03-international-language-support.md) статью.

## Пример на русском языке с использованием pdfLaTeX

Начнём со следующего **pdfLaTeX** примера, который вы можете открыть в Overleaf по ссылке под кодом. Поскольку в русском языке используется [кириллическое письмо](https://en.wikipedia.org/wiki/Cyrillic_script) pdfLaTeX должен не только корректно обрабатывать ввод (кодировку) кириллического текста, но и обеспечивать применение правильной (выходной) кодировки ко всем шрифтам, используемым для набора документа. Эти вопросы, связанные с кодировками, обсуждаются ниже.

```latex
\documentclass{article}
\usepackage[T2A]{fontenc}

%Правила переноса
%--------------------------------------
\usepackage{hyphenat}
\hyphenation{ма-те-ма-ти-ка вос-ста-нав-ли-вать}
%--------------------------------------
\usepackage[english, russian]{babel}
\begin{document}

\tableofcontents

\begin{abstract}
  Это вводный абзац в начале документа.
\end{abstract}

\section{Предисловие}
 Этот текст будет на русском языке. Это демонстрация того, что символы кириллицы
 в сгенерированном документе (Compile to PDF) отображаются правильно. Для этого вы должны установить нужный язык (russian) и необходимую кодировку шрифта (T2A).

\vskip12pt

\textbf{Этот текст будет на русском языке. Это демонстрация того, что символы кириллицы в сгенерированном документе (Compile to PDF) отображаются правильно.}

\vskip12pt

\textit{Этот текст будет на русском языке. Это демонстрация того, что символы кириллицы в сгенерированном документе (Compile to PDF) отображаются правильно.}

\section{Математические формулы}
Кириллические символы также могут использоваться в математическом режиме.

\begin{equation}
  S_\textup{ис} = S_{123}
\end{equation}
\end{document}
```

[Откройте этот пример pdfLaTeX в Overleaf](<https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+to+typeset+Russian\&snip=\documentclass{article}&#xA;\usepackage\[T2A]{fontenc}&#xA;&#xA;%Hyphenation+rules&#xA;%--------------------------------------&#xA;\usepackage{hyphenat}&#xA;\hyphenation{ма-те-ма-ти-ка+вос-ста-нав-ли-вать}&#xA;%--------------------------------------&#xA;\usepackage\[english,+russian]{babel}&#xA;\begin{document}&#xA;+&#xA;\tableofcontents&#xA;&#xA;\begin{abstract}&#xA;++Это+вводный+абзац+в+начале+документа.&#xA;\end{abstract}&#xA;+&#xA;\section{Предисловие}&#xA;+Этот+текст+будет+на+русском+языке.+Это+демонстрация+того,+что+символы+кириллицы&#xA;+в+сгенерированном+документе+(Compile+to+PDF)+отображаются+правильно.+Для+этого+Вы+должны+установить+нужный++язык+(russian)+и+необходимую+кодировку+шрифта+(T2A).&#xA;&#xA;\vskip12pt&#xA;&#xA;\textbf{Этот+текст+будет+на+русском+языке.+Это+демонстрация+того,+что+символы+кириллицы+в+сгенерированном+документе+(Compile+to+PDF)+отображаются+правильно.}&#xA;&#xA;\vskip12pt&#xA;&#xA;\textit{Этот+текст+будет+на+русском+языке.+Это+демонстрация+того,+что+символы+кириллицы+в+сгенерированном+документе+(Compile+to+PDF)+отображаются+правильно.}+&#xA;&#xA;\section{Математические+формулы}&#xA;Кириллические+символы+также+могут+быть+использованы+в+математическом+режиме.&#xA;&#xA;\begin{equation}&#xA;++S_\textup{ис}+=+S_{123}&#xA;\end{equation}&#xA;\end{document}>)

Этот пример выдаёт следующий результат:

![Изображение, показывающее набор русского текста в LaTeX](/files/0c9a8308edf8f5ba9f8ee98ff5ae955df4288c25)

## Справочные темы: символы и кодировки

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

### Текстовые файлы: целые числа и символы

Любой текстовый файл, например входной файл LaTeX `.tex` — это не что иное, как поток числовых (целочисленных) значений, которые используются как механизм для *представления* символов текста; следовательно, обработка текстового файла включает сканирование (чтение/обработку) ряда целочисленных значений. Однако возникает важный вопрос: *какой набор символов* на самом деле представлен целочисленными значениями, содержащимися в конкретном текстовом файле? Другими словами, как были *закодированы*: каково правильное (предполагаемое) «сопоставление» (кодировка) от целых чисел в текстовом файле к соответствующим символам, которые они должны *представления*?

Текстовые файлы могут создаваться в бесчисленных вычислительных средах: в разных странах и на разных континентах, с использованием множества различных устройств, операционных систем и инструментов редактирования. Создатели текстовых файлов потенциально могут использовать или применять различные текстовые кодировки в соответствии с местными требованиями, такими как язык, при генерации и сохранении последовательности целочисленных значений, выбранных для представления отдельных символов, содержащихся в текстовом файле. Это может хорошо работать, если созданные текстовые файлы оставались бы внутри совместимых технических экосистем, использующих одну и ту же кодировку, но что произойдёт, когда эти файлы будут перенесены в совершенно другие среды — ведь многие текстовые файлы не содержат никакой информации, указывающей на кодировку, использованную для их создания.

Очевидно, производитель (создатель) и потребитель (пользователь) текстовых данных должны как-то договориться о используемой кодировке (сопоставлении), иначе *ошибки кодировки* вероятно возникнут из-за несоответствия между целочисленными данными в файле и набором символов, который, как предполагается, они представляют. Помимо корректного сопоставления целочисленных значений текстового файла с символами, любое последующее визуальное отображение этих символов требует некоторого шрифта, способного предоставить данные (глифы или даже битмапы) для вывода визуального представления нужных символов.

### Кодировка ввода: inputenc, UTF-8 и изменение в LaTeX в 2018 году

Исторически для создания/обработки текстовых файлов, включая входные файлы LaTeX, использовались различные 8-битные кодировки. Если сильно упростить очень длинную историю, разработчики LaTeX создали пакет `inputenc` для решения проблем с кодировками — позволяющий текстовым файлам, созданным с использованием различных кодировок, передаваться между разными установками LaTeX.

Однако со временем пользователи и разработчики программного обеспечения отказались от множества 8-битных кодировок в пользу Unicode и его схемы кодирования UTF-8, которая стала де-факто вариантом кодирования текстовых файлов. До 2018 года для обработки файлов в UTF-8 преамбулы документов LaTeX включали строку

```latex
\usepackage[utf8]{inputenc}
```

Читатели могут заметить, что в примере выше отсутствует строка `\usepackage[utf8]{inputenc}` в преамбуле документа: почему это так? Это связано с важным изменением в LaTeX, введённым в 2018 году: переходом на UTF-8 как кодировку ввода *ввода* по умолчанию. Документы, набранные с помощью pdfLaTeX и использующие текст в UTF-8, включая созданные и набранные на Overleaf, больше не *нуждаются* включать `\usepackage[utf8]{inputenc}` но это [не повредит, если это сделать](https://www.latex-project.org/news/2018/04/10/issue28-of-latex2e-news-released/). Для получения дополнительной информации см. [выпуск LaTeX News за апрель 2018 года](https://www.latex-project.org/news/2018/04/10/issue28-of-latex2e-news-released/) и запись в блоге Overleaf [*Обновление TeX Live — сентябрь 2019*](https://www.overleaf.com/blog/tex-live-upgrade-september-2019). Все текстовые файлы, создаваемые на Overleaf, кодируются с использованием UTF-8.

### Кодировка вывода: пакет fontenc (для использования с pdfLaTeX)

Чтобы корректно набирать символы, содержащиеся во входных файлах, эти символы нужно сопоставить с соответствующими *выходными формами* (глифами), содержащимися в шрифтах, используемых для набора документа. Эта «выходная кодировка» обрабатывается другим пакетом под названием `fontenc`.

Чтобы использовать `fontenc` включите следующую строку в преамбулу документа, используя кодировку, такую как [кодировка T2A](http://mirrors.ctan.org/macros/latex/base/encguide.pdf), которая поддерживает кириллическое письмо:

```latex
\usepackage[T2A]{fontenc}
```

Следующая таблица перечисляет `T2A` кодировку шрифтов для кириллического текста. Она воспроизведена со страницы 23 документа *Кодировки шрифтов LaTeX* который [доступен на CTAN](http://mirrors.ctan.org/macros/latex/base/encguide.pdf).

![](/files/7f1dd47a41e66b56e39580328187120f85076e11)

## Пакеты и команды, зависящие от языка

Чтобы расширить стандартные возможности LaTeX, для корректных переносов и перевода названий элементов документа импортируйте [`babel` пакет](https://ctan.org/pkg/babel?lang=en) и используйте `russian` параметр языка:

```latex
\usepackage[russian]{babel}
```

Как вы можете видеть в примере в [введении](#introduction), вместо "Abstract" и "Contents" используются русские слова "Аннотация" и "Содержание". Кириллические символы также могут использоваться в математическом режиме.

Если вам нужно включить более одного языка, например русский и английский, см. [Поддержка международных языков](/latex/ru/yazyki/03-international-language-support.md) статью, чтобы узнать, как это сделать. Множество полезной справочной информации можно найти в документе [Модуль русского языка для Babel](http://mirrors.ctan.org/macros/latex/contrib/babel-contrib/russian/russianb.pdf).

## Переносы

Для обеспечения переносов некоторые слова приходится переносить по слогам: разбивать на слоги, разделённые `-` дефисом, чтобы слово продолжилось на следующей строке. Например, математика может стать мате-мати-ка. Пакет `babel` обычно хорошо справляется с переносами, но иногда может потребоваться задать точки переноса вручную, что можно сделать с помощью этих команд в преамбуле:

```latex
 \usepackage{hyphenat}
  \hyphenation{мате-мати-ка восста-навливать}
```

`\usepackage{hyphenat}` импортирует [`hyphenat` пакет](https://ctan.org/pkg/hyphenat?lang=en) а во второй строке — список слов, разделённых пробелами, с заданными точками переноса. Если вы хотите запретить автоматический перенос конкретного `*слова*`, используйте команду `{\nobreak *word*}` внутри вашего документа.

## Последний пример

Этот последний пример настраивает LaTeX так, чтобы русский текст можно было набирать с помощью pdfLaTeX, XeLaTeX и LuaLuaTeX — чтобы переключать компиляторы в Overleaf, см. статью [Смена компилятора](/latex/ru/baza-znanii/026-changing-compiler.md).

В этом примере используется `\iftutex` команда из пакета [`iftex` пакет](https://ctan.org/pkg/iftex?lang=en) для определения того, используется ли при компиляции кода LaTeX (документа) движок, понимающий Unicode (LuaTeX или XeTeX). Если да, то шрифты Google [OpenType Noto](https://fonts.google.com/noto/fonts) настраиваются через [`fontspec` пакет](https://ctan.org/pkg/fontspec?lang=en) и используются для набора документа. Если обнаружен движок, не поддерживающий Unicode, например pdfTeX, то код LaTeX (документ) набирается с использованием старых 8-битных технологий шрифтов (основанных на [Adobe Type 1](https://en.wikipedia.org/wiki/PostScript_fonts#Type_1)).

Следующий код открывается в Overleaf и по умолчанию компилируется с XeLaTeX. Чтобы использовать другой компилятор, см. статью [Смена компилятора](/latex/ru/baza-znanii/026-changing-compiler.md).

```latex
\documentclass{article}
\usepackage{iftex}
\iftutex
% Для LuaTeX или XeTeX используйте шрифты Google
% OpenType Noto для набора
% русского текста
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={TeX}}
\setmainfont{Noto Serif}
\setsansfont{Noto Sans}
\setmonofont{Noto Sans Mono}
\else
% Для pdfTeX мы должны использовать старые
% 8-битные технологии шрифтов
\usepackage[T2A]{fontenc}
\fi
%Правила переноса
\usepackage{hyphenat}
\hyphenation{ма-те-ма-ти-ка вос-ста-нав-ли-вать}
\usepackage[english, russian]{babel}
\begin{document}

Этот текст будет на русском языке. Это демонстрация того, что символы кириллицы в сгенерированном документе отображаются правильно.

\vskip12pt

\textbf{Этот текст будет на русском языке. Это демонстрация того, что символы кириллицы в сгенерированном документе отображаются правильно.}

\vskip12pt

\textit{Этот текст будет на русском языке. Это демонстрация того, что символы кириллицы в сгенерированном документе отображаются правильно.}

\vskip12pt

\texttt{Этот текст будет на русском языке.}
\end{document}
```

[Откройте этот пример в Overleaf](<https://www.overleaf.com/docs?engine=xelatex\&snip_name=Typesetting+Russian+using+different+compilers\&snip=\documentclass{article}&#xA;\usepackage{iftex}&#xA;\iftutex&#xA;%+For+LuaTeX+or+XeTeX+Use+Google's+&#xA;%+OpenType+Noto+fonts+for+typesetting&#xA;%+Russian+text&#xA;\usepackage{fontspec}&#xA;\defaultfontfeatures{Ligatures={TeX}}&#xA;\setmainfont{Noto+Serif}&#xA;\setsansfont{Noto+Sans}&#xA;\setmonofont{Noto+Sans+Mono}&#xA;\else&#xA;%+For+pdfTeX+we+must+use+old&#xA;%+8-bit+font+technologies&#xA;\usepackage\[T2A]{fontenc}&#xA;\fi&#xA;%Hyphenation+rules&#xA;\usepackage{hyphenat}&#xA;\hyphenation{ма-те-ма-ти-ка+вос-ста-нав-ли-вать}&#xA;\usepackage\[english,+russian]{babel}&#xA;\begin{document}&#xA;&#xA;Этот+текст+будет+на+русском+языке.+Это+демонстрация+того,+что+символы+кириллицы+в+сгенерированном+документе+отображаются+правильно.&#xA;&#xA;\vskip12pt&#xA;&#xA;\textbf{Этот+текст+будет+на+русском+языке.+Это+демонстрация+того,+что+символы+кириллицы+в+сгенерированном+документе+отображаются+правильно.}&#xA;&#xA;\vskip12pt&#xA;&#xA;\textit{Этот+текст+будет+на+русском+языке.+Это+демонстрация+того,+что+символы+кириллицы+в+сгенерированном+документе+отображаются+правильно.}+&#xA;&#xA;\vskip12pt&#xA;&#xA;\texttt{Этот+текст+будет+на+русском+языке.}&#xA;\end{document}>)

При использовании XeLaTeX этот пример выдаёт следующий результат:

![Изображение, показывающее набор русского текста в LaTeX](/files/a4a3a2c1ba728b6f9213043e791ca3eaec71a5bb)

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

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

* [Поддержка современных шрифтов в XƎLaTeX](/latex/ru/shrifty/03-xelatex.md)
* [Набор цитат и кавычек](/latex/ru/yazyki/04-typesetting-quotations.md)
* [Поддержка международных языков](/latex/ru/yazyki/03-international-language-support.md)
* [Китайский](/latex/ru/yazyki/06-chinese.md)
* [Французский](/latex/ru/yazyki/07-french.md)
* [Немецкий](/latex/ru/yazyki/08-german.md)
* [Греческий](/latex/ru/yazyki/09-greek.md)
* [Итальянский](/latex/ru/yazyki/10-italian.md)
* [Японский](/latex/ru/yazyki/11-japanese.md)
* [Корейский](/latex/ru/yazyki/12-korean.md)
* [Португальский](/latex/ru/yazyki/13-portuguese.md)
* [Арабский](/latex/ru/yazyki/05-arabic.md)
* [Испанский](/latex/ru/yazyki/15-spanish.md)
* [Модуль русского языка для Babel](http://mirrors.ctan.org/macros/latex/contrib/babel-contrib/russian/russianb.pdf)
* [История кириллических кодировок T2A, T2B и T2C](https://tug.org/TUGboat/tb19-4/tb61berd.pdf)
* [Не слишком краткое введение в LaTeX2ε](http://www.ctan.org/tex-archive/info/lshort/)
* [LaTeX/Internationalization на WikiBooks](http://en.wikibooks.org/wiki/LaTeX/Internationalization)
* [LaTeX/Special\_Characters на WikiBooks](http://en.wikibooks.org/wiki/LaTeX/Special_Characters)


---

# 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/yazyki/14-russian.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.
