> 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-tw/yu-yan/14-russian.md).

# 俄文

## 簡介

本文探討俄文排版：確保正確使用 [西里爾字母](https://en.wikipedia.org/wiki/Cyrillic_script) 字元，例如 ц、ч、ш、щ、ъ 等，並提供語言特定功能的支援，例如斷字。如果你想了解如何在同一份文件中使用不只一種語言，例如英文和俄文，請參閱 [國際語言支援](/latex/zh-tw/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{前言}
 這段文字將以俄文顯示。這是用來示範西里爾字母字元
 在產生的文件中（編譯為 PDF）可正確顯示。為此你必須設定正確的語言（russian）和所需的字型編碼（T2A）。

\vskip12pt

\textbf{這段文字將以俄文顯示。這是用來示範西里爾字母字元在產生的文件中（編譯為 PDF）可正確顯示。}

\vskip12pt

\textit{這段文字將以俄文顯示。這是用來示範西里爾字母字元在產生的文件中（編譯為 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/d1dcddc25b41a17b4b3c4f1a7bbf13721f626737)

## 背景主題：字元與編碼

以下各節提供與使用 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` 要使用 [請在文件前導區中加入以下這行，並使用例如](http://mirrors.ctan.org/macros/latex/base/encguide.pdf)T2A 編碼

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

，這種編碼支援西里爾字母系統： `T2A` 下表列出了西里爾文字的字型編碼。它摘錄自文件第 23 頁 *LaTeX 字型編碼* ，該文件 [可在 CTAN 取得](http://mirrors.ctan.org/macros/latex/base/encguide.pdf).

![](/files/e548584eb92fcdcc58e7c6f285d87ab20d30ecbd)

## 語言特定的套件與指令

為了擴充預設的 LaTeX 功能，以便正確斷字並翻譯文件元素的名稱，請匯入 [`babel` 套件](https://ctan.org/pkg/babel?lang=en) 並使用 `russian` 語言選項：

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

如你在範例中所見 [引言](#introduction)，而不是「Abstract」與「Contents」，俄文字「Аннотация」與「Содержание」被使用。西里爾字元也可以在數學模式中使用。

如果你需要包含不只一種語言，例如俄文和英文，請參閱 [國際語言支援](/latex/zh-tw/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 *單字*}` 於文件中。

## 最後一個範例

這個最後的範例會設定 LaTeX，使俄文可用 pdfLaTeX、XeLaTeX 和 LuaLuaTeX 排版——若要在 Overleaf 上切換編譯器，請參閱文章 [更改編譯器](/latex/zh-tw/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，則會使用舊式 8 位元字型技術（基於 [`fontspec` 套件](https://ctan.org/pkg/fontspec?lang=en) ）來排版 LaTeX 程式碼（文件）。 [Adobe Type 1](https://en.wikipedia.org/wiki/PostScript_fonts#Type_1)).

以下程式碼可在 Overleaf 上開啟，且預設以 XeLaTeX 編譯。若要使用其他編譯器，請參閱文章 [更改編譯器](/latex/zh-tw/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
%斷字規則
\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/897f28827a912528d66983f25e3f0bf2fd85f2d0)

## 延伸閱讀

更多資訊請參見

* [使用 XƎLaTeX 支援現代字型](/latex/zh-tw/zi-xing/03-xelatex.md)
* [引號與引號符號的排版](/latex/zh-tw/yu-yan/04-typesetting-quotations.md)
* [國際語言支援](/latex/zh-tw/yu-yan/03-international-language-support.md)
* [中文](/latex/zh-tw/yu-yan/06-chinese.md)
* [法文](/latex/zh-tw/yu-yan/07-french.md)
* [德文](/latex/zh-tw/yu-yan/08-german.md)
* [希臘文](/latex/zh-tw/yu-yan/09-greek.md)
* [義大利文](/latex/zh-tw/yu-yan/10-italian.md)
* [日文](/latex/zh-tw/yu-yan/11-japanese.md)
* [韓語](/latex/zh-tw/yu-yan/12-korean.md)
* [葡萄牙文](/latex/zh-tw/yu-yan/13-portuguese.md)
* [阿拉伯文](/latex/zh-tw/yu-yan/05-arabic.md)
* [西班牙文](/latex/zh-tw/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-tw/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.
