> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-pro.ayaka.space/latex/zh-cn/yu-yan/14-russian.md).

# 俄语

## 引言

本文探讨如何排版俄文文本：如何启用对以下内容的正确使用 [西里尔字母](https://en.wikipedia.org/wiki/Cyrillic_script) 字符，例如 ц、ч、ш、щ、ъ 等，并提供对语言特定功能（如断字）的支持。如果你想了解如何在单个文档中使用一种以上的语言，例如英语和俄语，请参见 [国际语言支持](/latex/zh-cn/yu-yan/03-international-language-support.md) 文章。

## 使用 pdfLaTeX 的俄语示例

我们先从下面的 **pdfLaTeX** 示例开始，你可以使用代码下方的链接在 Overleaf 中打开它。由于俄语使用 [西里尔字母书写系统](https://en.wikipedia.org/wiki/Cyrillic_script) pdfLaTeX 需要确保它不仅能处理西里尔文本的输入（编码），还要确保对用于排版文档的任何字体应用正确的（输出）编码。下面将讨论这些编码问题。

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

%Hyphenation rules
%--------------------------------------
\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}
```

[在 Overleaf 中打开这个 pdfLaTeX 示例](<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/0823f3ea70fd8ac17701236bf646e04622dfc231)

## 背景主题：字符和编码

下面各节提供了与使用 LaTeX 排版不同语言相关主题的背景材料（主要与 pdfLaTeX 相关）。

### 文本文件：整数与字符

任何文本文件，例如一个 LaTeX 输入 `.tex` 文件，不过是一个数值（整数）流，它们被用作一种机制来 *表示* 文本字符；因此，处理文本文件涉及扫描（读取/处理）一系列整数值。然而，一个重要问题随之出现： *哪一组字符* 实际上由某个特定文本文件中的整数值所表示？换言之，这些整数值是如何被 *编码*的：从文本文件中的整数到其应当表示的对应字符，正确（预期的）“映射”（编码）是什么？ *表示*?

文本文件可以在无数种计算环境中生成：跨越不同的国家/大陆，使用各种不同的设备、操作系统和编辑工具。文本文件的创建者在生成和存储用于表示文本文件中各个字符的一系列整数值时，可能会根据本地需求（例如语言）使用或应用不同的文本编码。如果生成的文本文件始终处于兼容的技术生态系统中，并使用相同的编码，这也许行得通；但当这些文件被转移到完全不同的环境时会发生什么呢——因为许多文本文件并不包含任何指明其生成时所用编码的信息。

显然，文本数据的生产者（创建者）和消费者（使用者）必须以某种方式就所使用的编码（映射）达成一致，否则 *编码错误* 很可能会由于文件中的整数数据与其被认为表示的字符集之间不匹配而出现。除了将文本文件中的整数值正确映射到字符之外，随后对这些字符的任何可视化显示还需要某种字体，该字体能够提供数据（字形，甚至位图），以输出所需字符的视觉表示。

### 输入编码：inputenc、UTF-8 以及 2018 年 LaTeX 的一项变更

从历史上看，曾使用多种 8 位编码来生成/处理文本文件，包括 LaTeX 输入。长话短说，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 年 4 月刊](https://www.latex-project.org/news/2018/04/10/issue28-of-latex2e-news-released/) 以及 Overleaf 博客文章 [*TeX Live 升级——2019 年 9 月*](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/66323cdde2b129c724702dbac6f388674f6beaa3)

## 语言特定的宏包和命令

为扩展默认的 LaTeX 功能，以实现正确断字并翻译文档元素的名称，请导入 [`babel` 宏包](https://ctan.org/pkg/babel?lang=en) 并使用 `russian` 语言选项：

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

正如你在 [引言](#introduction)中的示例所见，文档中使用的是俄语单词“Аннотация”和“Содержание”，而不是“Abstract”和“Contents”。西里尔字母字符也可以用于数学模式。

如果你需要包含一种以上的语言，例如俄语和英语，请参见 [国际语言支持](/latex/zh-cn/yu-yan/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/zh-cn/zhi-shi-ku/026-changing-compiler.md).

该示例使用 `\iftutex` 来自 [`iftex` 宏包](https://ctan.org/pkg/iftex?lang=en) 以检测是否正在使用支持 Unicode 的引擎（LuaTeX 或 XeTeX）来编译 LaTeX 代码（文档）。如果是，则会通过 [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/zh-cn/zhi-shi-ku/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
%Hyphenation rules
\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/64d79897198027471805416062fb2f0d99b51514)

## 进一步阅读

更多信息请参见

* [在 XƎLaTeX 中支持现代字体](/latex/zh-cn/zi-ti/03-xelatex.md)
* [引号和引号符号的排版](/latex/zh-cn/yu-yan/04-typesetting-quotations.md)
* [国际语言支持](/latex/zh-cn/yu-yan/03-international-language-support.md)
* [中文](/latex/zh-cn/yu-yan/06-chinese.md)
* [法语](/latex/zh-cn/yu-yan/07-french.md)
* [德语](/latex/zh-cn/yu-yan/08-german.md)
* [希腊语](/latex/zh-cn/yu-yan/09-greek.md)
* [意大利语](/latex/zh-cn/yu-yan/10-italian.md)
* [日语](/latex/zh-cn/yu-yan/11-japanese.md)
* [韩语](/latex/zh-cn/yu-yan/12-korean.md)
* [葡萄牙语](/latex/zh-cn/yu-yan/13-portuguese.md)
* [阿拉伯语](/latex/zh-cn/yu-yan/05-arabic.md)
* [西班牙语](/latex/zh-cn/yu-yan/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/)
* [WikiBooks 上的 LaTeX/国际化](http://en.wikibooks.org/wiki/LaTeX/Internationalization)
* [WikiBooks 上的 LaTeX/特殊字符](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://ayakaleaf-pro.ayaka.space/latex/zh-cn/yu-yan/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.
