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

# ロシア語

## はじめに

この記事では、ロシア語テキストの組版について説明します。つまり、次のものを正しく使用できるようにします。 [キリル文字](https://en.wikipedia.org/wiki/Cyrillic_script) の文字（ц、ч、ш、щ、ъ など）を扱い、ハイフネーションのような言語固有の機能をサポートします。1 つの文書で複数の言語、たとえば英語とロシア語を使う方法を探している場合は、 [国際言語サポート](/latex/ja/yan-yu/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}
```

[この 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/3fd507cba6708bf5aa8138b3ae47df361355512c)

## 背景トピック: 文字とエンコーディング

以下のセクションでは、LaTeX を使ってさまざまな言語を組版することに関連するトピック（主に pdfLaTeX に関連）についての背景資料を示します。

### テキストファイル: 整数と文字

LaTeX の入力 `.tex` ファイルのようなあらゆるテキストファイルは、文字を *表現する* ための仕組みとして使われている数値（整数）列にすぎません。その結果、テキストファイルの処理には、一連の整数値を走査（読み取り／処理）することが含まれます。しかし、重要な疑問が生じます。 *どの文字集合が* 実際には、特定のテキストファイルに含まれる整数値によって表されているのでしょうか。言い換えると、それらの整数値はどのように *エンコードされている*のでしょうか。つまり、テキストファイル内の整数から、それらが表すべき対応する文字への正しい（意図された）「対応付け」（エンコーディング）とは何でしょうか。 *表現する*?

テキストファイルは、数多くのコンピューティング環境で生成できます。異なる国や大陸をまたぎ、さまざまなデバイス、オペレーティングシステム、編集ツールを使って作成されます。テキストファイルの作成者は、テキストファイルに含まれる個々の文字を表すために選ばれた整数列を生成・保存する際、言語などの地域要件に応じて、異なるテキストエンコーディングを使ったり適用したりする可能性があります。これは、同じエンコーディングを使う互換性のある技術的エコシステム内に生成されたテキストファイルがとどまるならうまくいくかもしれませんが、それらのファイルがまったく異なる環境へ移されたらどうなるでしょうか。多くのテキストファイルには、生成に使われたエンコーディングを示す情報が含まれていないからです。

明らかに、テキストデータの作成者（供給側）と利用者（使用者）は、使用しているエンコーディング（対応付け）について、何らかの形で合意していなければなりません。さもないと、 *エンコーディングエラー* が、ファイル内の整数データと、それが表すと想定されている文字集合との不一致によって発生しやすくなります。テキストファイルの整数値を文字に正しく対応付けることに加えて、それらの文字をその後視覚的に表示するには、目的の文字の視覚的表現を出力するためのデータ（形状、あるいはビットマップ）を提供できる何らかのフォントが必要です。

### 入力エンコーディング: inputenc、UTF-8、そして 2018 年の LaTeX の変更

歴史的には、LaTeX の入力を含むテキストファイルの生成／処理に、さまざまな 8 ビットエンコーディングが使われていました。非常に長い話を短くすると、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` キリル文字テキストのフォントエンコーディングを一覧表示しています。これは文書 *LaTeX font encodings* の 23 ページから再掲したもので、 [CTAN で入手できます](http://mirrors.ctan.org/macros/latex/base/encguide.pdf).

![](/files/8050a3be482ce9e4c9e6d84d7d5c4046556b973f)

## 言語固有のパッケージとコマンド

LaTeX の標準機能を拡張して、適切なハイフネーションと文書要素の名前の翻訳を行うには、 [`babel` パッケージ](https://ctan.org/pkg/babel?lang=en) をインポートし、 `russian` 言語オプションを使用します。

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

の例でご覧いただけるように、 [導入](#introduction)「Abstract」や「Contents」の代わりに、ロシア語の「Аннотация」と「Содержание」が使われています。キリル文字は数式モードでも使用できます。

ロシア語と英語のように複数の言語を含める必要がある場合は、それを実現する方法を学ぶために [国際言語サポート](/latex/ja/yan-yu/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) そして 2 行目は、ハイフネーション位置が定義されたスペース区切りの単語の一覧です。特定の `*単語*`の自動ハイフネーションを避けたい場合は、 `{\nobreak *単語*}` を文書内で使用します。

## 最後の例

この最後の例では、ロシア語テキストを pdfLaTeX、XeLaTeX、LuaLuaTeX で組版できるように LaTeX を設定します。Overleaf でコンパイラを切り替えるには、記事 [コンパイラの変更](/latex/ja/narejjibsu/026-changing-compiler.md).

を参照してください。この例では `\iftutex` のコマンドを [`iftex` パッケージ](https://ctan.org/pkg/iftex?lang=en) から使用して、Unicode 対応エンジン（LuaTeX または XeTeX）が LaTeX コード（文書）のコンパイルに使われているかどうかを検出します。もしそうであれば、Google の [OpenType Noto フォント](https://fonts.google.com/noto/fonts) が [`fontspec` パッケージ](https://ctan.org/pkg/fontspec?lang=en) を通じて設定され、文書の組版に使用されます。pdfTeX のような Unicode 非対応エンジンが検出された場合は、LaTeX コード（文書）は古い 8 ビットのフォント技術（ [Adobe Type 1](https://en.wikipedia.org/wiki/PostScript_fonts#Type_1)).

に基づく）を使って組版されます。次のコードは Overleaf で開くと、既定では XeLaTeX でコンパイルされます。別のコンパイラを使うには、記事 [コンパイラの変更](/latex/ja/narejjibsu/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/5a0adf6bcfbb88543fb46feac64d5fe4529b2bf7)

## さらに読む

詳細については

* [XƎLaTeX による現代フォントのサポート](/latex/ja/fonto/03-xelatex.md)
* [引用と引用符の組版](/latex/ja/yan-yu/04-typesetting-quotations.md)
* [国際言語サポート](/latex/ja/yan-yu/03-international-language-support.md)
* [中国語](/latex/ja/yan-yu/06-chinese.md)
* [フランス語](/latex/ja/yan-yu/07-french.md)
* [ドイツ語](/latex/ja/yan-yu/08-german.md)
* [ギリシャ語](/latex/ja/yan-yu/09-greek.md)
* [イタリア語](/latex/ja/yan-yu/10-italian.md)
* [日本語](/latex/ja/yan-yu/11-japanese.md)
* [韓国語](/latex/ja/yan-yu/12-korean.md)
* [ポルトガル語](/latex/ja/yan-yu/13-portuguese.md)
* [アラビア語](/latex/ja/yan-yu/05-arabic.md)
* [スペイン語](/latex/ja/yan-yu/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/Internationalization](http://en.wikibooks.org/wiki/LaTeX/Internationalization)
* [WikiBooks の LaTeX/Special\_Characters](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/ja/yan-yu/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.
