> 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/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}

%连字符规则
%--------------------------------------
\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}` 文档导言区中包含这一行：这是为什么呢？这归因于 2018 年 LaTeX 引入的一项重要变化：将 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) ，用于检测编译 LaTeX 代码（文档）时是否使用了支持 Unicode 的引擎（LuaTeX 或 XeTeX）。如果是，则会通过 [Google 的 OpenType Noto 字体](https://fonts.google.com/noto/fonts) 进行配置，并用于排版文档。如果检测到非 Unicode 感知的引擎，例如 pdfTeX，则 LaTeX 代码（文档）会使用旧的 8 位字体技术进行排版（基于 [`fontspec` 宏包](https://ctan.org/pkg/fontspec?lang=en) Adobe Type 1 [）。下面的代码可在 Overleaf 中打开，并默认使用 XeLaTeX 进行编译。要使用不同的编译器，请参见文章](https://en.wikipedia.org/wiki/PostScript_fonts#Type_1)).

\usepackage{iftex} [更改编译器](/latex/zh-cn/zhi-shi-ku/026-changing-compiler.md).

```latex
\documentclass{article}
% 对于 LuaTeX 或 XeTeX，使用 Google 的
\iftutex
% OpenType Noto 字体来排版
% 俄文文本
\defaultfontfeatures{Ligatures={TeX}}
\usepackage{fontspec}
\setsansfont{Noto Sans}
\setmainfont{Noto Serif}
\setmonofont{Noto Sans Mono}
\else
% 对于 pdfTeX，我们必须使用旧的
% 8 位字体技术
\fi
\usepackage[T2A]{fontenc}
这段文字将使用俄语。这是为了演示西里尔字母在生成的文档中能够正确显示。
%连字符规则
\usepackage{hyphenat}
\hyphenation{ма-те-ма-ти-ка вос-ста-нав-ли-вать}
\usepackage[english, russian]{babel}
\begin{document}

\textbf{这段文字将使用俄语。这是为了演示西里尔字母在生成的文档中能够正确显示。}

\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://overleaf-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.
