> 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/ja/to-2/58-i-have-a-custom-font-i-d-like-to-load-to-my-document.-how-can-i-do-this.md).

# 文書に読み込みたいカスタムフォントがあります。どうすればよいですか?

## はじめに

この記事では、文書の本文を組版するためにカスタムフォントをインストールする方法を紹介します。数式の組版用フォントについては扱いません。「カスタムフォント」とは、Overleaf のサーバー上にないフォントを指し、ライセンスが必要な商用フォントや、TeX Live に同梱されていない、または当社の Linux インストールに含まれていない無償利用可能フォントも含みます。

* **注**: この記事では主流のフォント技術を扱いますが、次のような TeX ベースの専門的なソリューションについては論じません [Metafont](https://en.wikipedia.org/wiki/Metafont) および [仮想フォント](https://texfaq.org/FAQ-virtualfonts).

## どこから始めればよいですか？

LaTeX ベースの組版ソリューションは、レガシーの文脈の中で動作します。40年以上にわたる LaTeX コンパイラとフォント形式の発展により、古い技術と新しい技術が混在するエコシステムが形成されてきました。その結果、LaTeX で使うカスタムフォントを実際にインストールして設定する手順は、次の2つの要素に依存します。

1. インストールしたいフォントファイルの種類（形式）：

* レガシー [PostScript Type 1](https://en.wikipedia.org/wiki/PostScript_fonts#Type_1) または [TrueType](https://en.wikipedia.org/wiki/TrueType) フォント、あるいは
* モダンな [OpenType](https://en.wikipedia.org/wiki/OpenType) フォント。

3. Overleaf プロジェクトをコンパイルするために使う LaTeX コンパイラ：
   * pdfLaTeX、または
   * XeLaTeX または LuaLaTeX

お使いのコンパイラに対応するセクションへ移動してください。

* [pdfLaTeX でカスタムフォントを使う](#using-custom-fonts-with-pdflatex)
* [XeLaTeX と LuaLaTeX でカスタムフォントを使う](#using-custom-fonts-with-xelatex-and-lualatex)

## pdfLaTeX でカスタムフォントを使う

カスタムフォントの設定の複雑さに応じて、必要な作業の概要は次のとおりです。

1. 各フォントファイル（`.ttf`, `.otf` または `.pfb`）について、適切な TeX フォントメトリック（`.tfm`）と、場合によってはエンコーディングファイル（`.enc`).
2. ）を用意する（あるいは生成する！）必要があります。pdfLaTeX は、文書フォントを最終的な PDF ファイルにどのように埋め込むかを知っていなければなりません。そのために、フォントマップファイル（`pdftex.map`）を読み込みます。そこにはカスタムフォントの詳細を更新しておく必要があります。Overleaf では、次のいずれかのコマンドを使って設定します。

* `\pdfmapfile{...}`
* `\pdfmapline{...}`

4. LaTeX に新しいフォントファイルの使い方を知らせるフォント定義（`.fd`）ファイルが必要です。

必要となる主なファイル形式は次のとおりです。

* **`.tfm`** （TeX フォントメトリック）：これらのコンパクトなバイナリファイルには、文字形状の見た目を記述するデータは含まれておらず、TeX エンジンが基本的な組版作業を行うために使える文字幅とフォントの「メタデータ」だけが入っています。数式フォント用の TeX フォントメトリックには、テキスト専用フォントには不要な追加データが含まれており、特に数式の組版に使ういくつかの「間隔」パラメータがあります。
* **`.fd`** （font description）：これらのファイルには、LaTeX でフォントを使うために必要な設定と準備を行う LaTeX コマンドが含まれています。 `.fd` ファイル内で許可されるコマンドと、 `.fd` ファイル名規則は、次の文書で説明されています。 [LaTeX2ε font selection](https://texdoc.org/serve/fntguide/1).
* **`.map`** （font map）：マップファイルは、TeX フォントメトリックファイルの名前と、文字形状（グリフ）を描画するために必要なデータを含む実際のフォントファイルを関連付けます。pdfTeX が認識する各フォントは、マップファイルの1行に、定義された構文を用いて記述されます。詳細は、 [The pdfTeX user manual](http://mirrors.ctan.org/systems/doc/pdftex/manual/pdftex-a.pdf).
* **`.enc`** （encoding）：必要な場合、このファイル形式は、LaTeX テキスト内の文字コードと、フォントファイル内に含まれる対応する文字形状（グリフ）の対応付けを定義します。

### カスタム TrueType フォントの例

Overleaf Galley には、 [カスタム TrueType フォントのインストールを実演する](https://www.overleaf.com/latex/examples/example-using-a-custom-truetype-font/yndxyzgbhpjv)プロジェクトがあります。PostScript Type 1 フォントでも同様の設定になります。これは pdfLaTeX、XeLaTeX、LuaLaTeX でコンパイルでき、次の出力を生成します。

![カスタムフォントを使って Overleaf で組版した画像](/files/834480aae2a8198a50385579a236c2ff8de2e5b4)

#### サンプルプロジェクトに関する注記

* 次の `\pdfmapline` コマンド：

```latex
\pdfmapline{+delphine < Delphine.ttf <T1-WGL4.enc}
```

を使用しています。これは、 `delphine` という TeX フォントメトリックファイルを、 `Delphine.ttf`.

* という実際のフォントファイルに関連付けます。 `<` 最初の *文字は、pdfTeX に TrueType フォントをサブセット化するよう指示します。つまり、* 部分的に
* このフォントを最終的な PDF ファイルへ埋め込みます。フォントをサブセット化すると、文書に含まれる文字に必要な文字形状データだけを含むため、PDF ファイルは小さくなります。 `<` 2番目の `文字は、エンコーディングベクトルファイル`T1-WGL4.enc
* の名前の前に置かれています。これは、テキスト中の文字コードをフォントファイル内の文字形状データ（グリフ）に対応付けるために使われます。文字を描画するには文字形状データが必要です。 `\pdfmapline` LuaLaTeX では追加の設定手順が必要です。というのも **Undefined control sequence** エラーが発生するためです。これは、LuaTeX における一部のバックエンドコマンドの扱いが変更されたことによります。詳細は LuaTeX Reference Manual の第3節を参照してください。 [LuaTeX Reference Manual](http://mirrors.ctan.org/systems/doc/luatex/luatex.pdf)。 `\ifLuaTeX` コマンドは `iftex` パッケージで提供され、LuaTeX の判定に使われます。検出された場合、 `\pdfmapline` が定義されます。

```latex
\ifLuaTeX
\protected\def\pdfmapline {\pdfextension mapline }
\fi
```

### 複数フォントや商用フォントの使用

商用フォントベンダーが提供するファイルや、無償利用可能フォントのコレクションを管理するには、Overleaf プロジェクト内にフォルダを作成し、種類（`.tfm`, `.pfb`, `.ttf` など）に応じてフォントファイルを整理できます。フォルダの命名と整理の良いモデルは [TeX Directory Structure (TDS)](https://www.tug.org/tds/tds.pdf)であり、TeX 関連ファイルのコレクションを管理するためのベストプラクティスとして設計された「設計図」です。

プロジェクトフォルダを用意したら、次にいわゆる [`latexmcrc` ファイル](/latex/ja/xiang-xi-ji-shi/28-how-to-use-latexmkrc-with-overleaf.md) を作成して、LaTeX コンパイラにそれらのフォルダ内を検索するよう指示する必要があります。デフォルトでは、コンパイラはそれらのフォルダの存在を知らないため、そこにあるファイルを見つけられません。

#### Overleaf プロジェクトの例

Overleaf Gallery の例 [Using Folders to Manage Custom Font Files](https://www.overleaf.com/latex/templates/example-using-folders-to-manage-custom-font-files/qvqgnpjxvqzd) では、フォルダと `latexmkrc` ファイルを使ってカスタム TrueType フォントをインストールします。次の画像に示すフォルダ構成になっています。

![Overleaf でのプロジェクトフォルダの整理](/files/4b1273d9dd105f03065808f32760dd21223e1b3f)

と、次の行を含む `latexmkrc` ファイルがあり、実行時の [環境変数](https://en.wikipedia.org/wiki/Environment_variable) を設定して、LaTeX コンパイラにプロジェクトフォルダ内のファイルを探させます。

```perl
$ENV{'TEXINPUTS'}='myfonts/tex//:' . $ENV{'TEXINPUTS'};
$ENV{'T1FONTS'}='myfonts/fonts/type1//:' . $ENV{'T1FONTS'};
$ENV{'AFMFONTS'}='myfonts/fonts/afm//:' . $ENV{'AFMFONTS'};
$ENV{'TEXFONTMAPS'}='myfonts/fonts/map//:' . $ENV{'TEXFONTMAPS'};
$ENV{'TFMFONTS'}='myfonts/fonts/tfm//:' . $ENV{'TFMFONTS'};
$ENV{'TTFONTS'}='myfonts/fonts/ttf//:' . $ENV{'TTFONTS'};
$ENV{'VFFONTS'}='myfonts/fonts/vf//:' . $ENV{'VFFONTS'};
$ENV{'ENCFONTS'}='myfonts/fonts/enc//:' . $ENV{'ENCFONTS'};
```

どのファイルが通常どのフォルダに入るのか知りたい場合は、 [この記事](/latex/ja/xiang-xi-ji-shi/06-an-introduction-to-kpathsea-and-how-tex-engines-search-for-files.md#table-listing-kpathsea-config-variables).

## XeLaTeX と LuaLaTeX でカスタムフォントを使う

### PostScript Type 1 フォントの使用

XeLaTeX と LuaLaTeX でレガシーな PostScript Type 1 フォントを使うには、 [pdfLaTeX 向けのガイドライン](#using-custom-fonts-with-pdflatex)に従えばよいので、ここで詳細は繰り返しません。

### OpenType フォントの使用

XeLaTeX と LuaLaTeX は、OpenType フォント（TrueType と PostScript の両方）を使った高度な組版を幅広くサポートします。これは、それらの基盤となる TeX エンジン XeTeX と LuaHBTeX に、OpenType フォント技術を処理するネイティブ（組み込み）の機能があるためで、pdfTeX にはありません。

* **注**：LuaLaTeX は、その基盤となる TeX エンジン（LuaHBTeX）を通じて、すべての TeX エンジンの中で最も洗練されたフォント処理機能を備えています。ただし、これらの説明はこの記事の範囲を超えます。詳しくは LuaTeX Reference Manual の6節と12節を参照してください。 [LuaTeX Reference Manual](https://ctan.org/pkg/luatex?lang=en).

XeLaTeX と LuaLaTeX で OpenType フォントを使うには、 [`fontspec`](https://ctan.org/pkg/fontspec?lang=en)を読み込む必要があります。これは、OpenType フォントの高度な組版機能へのインターフェースを提供する、強力で多機能なパッケージです。

* **注**：XeLaTeX または LuaLaTeX で OpenType フォントを使う場合、 `\usepackage[T1]{fontenc}` （または `\usepackage[utf8]{inputenc}`）は必要ありません。

### 例：fontspec の導入

この手順は簡単です。なぜなら、フォントのインストールが不要で、 `.tfm`, `enc` または `.map` ファイルやフォント定義（`.fd`）を書く必要がなくなるからです。まさに過去のものになります！手順は次のとおりです。

1. 文書のプリアンブルに次の行を追加します。

```latex
\usepackage{fontspec}
```

3. ファイルアップロードのアイコン（![UploadIcon.png](/files/f578eeca91851f0cb1aebec83f12b1c799fc8c51)）を、ファイル一覧の上にある場所で選択します。
4. フォントをアップロードモーダルにドラッグ＆ドロップするか、コンピュータから選択して、Overleaf プロジェクトに追加します。
5. 次の `fontspec` パッケージ `\set*xxx*font` コマンドのいずれかを使って、フォントを設定し有効化します。

優れた `fontspec` パッケージドキュメントには、試せる豊富な例があるので、ここでは始めやすいようにシンプルに説明します。たとえば、 `CrimsonText-Regular.ttf`というフォントファイルをアップロードしたとします。 `fontspec` を読み込んだ後、本文のフォントは次のように指定できます。

```latex
\setmainfont{CrimsonText-Regular.ttf}
```

次のような構文も書けます。

```latex
\setmainfont{CrimsonText}[
Extension = .ttf,
UprightFont = *-Regular,
...]
```

任意の場面で使う新しいフォントファミリーを宣言することもできます。

```latex
\newfontfamily{\crimson}{CrimsonText}
[Extension = .ttf, UprightFont = *-Regular, ...]
{\crimson このテキストは CrimsonText フォントを使用しています}
```

#### リソース

* この [`fontspec` パッケージドキュメント](http://mirrors.ctan.org/macros/unicodetex/latex/fontspec/fontspec.pdf) は必読です。多くの役立つ例を提供するだけでなく、OpenType フォントに関する有用な背景情報もたくさん含まれています。
* Overleaf のヘルプページ [XeLaTeX](/latex/ja/fonto/03-xelatex.md) には、 [詳細な例](/latex/ja/fonto/03-xelatex.md#using-fonts-not-installed-on-overleaf27s-servers-google-fonts-example) があり、Google から OpenType フォントをダウンロードして `fontspec`.

**サンプルプロジェクト**

Overleaf Galley には、XeLaTeX または LuaLaTeX で OpenType フォントを使うことを示すサンプルプロジェクトがあります。これらを開いて、コンパイラを LuaLaTeX と XeLaTeX の間で切り替えることができます。

* [XeLaTeX で Google フォントを使う](https://www.overleaf.com/latex/templates/using-google-fonts-with-xelatex/xxkpcgfttjvd)
* [LuaLaTeX または XeLaTeX で STIX2 OpenType フォントを使う](https://www.overleaf.com/latex/templates/using-the-stix2-opentype-fonts-with-lualatex-or-xelatex/hdfvhzqmhnpx)

次の図は、これらのプロジェクトによって生成された出力をまとめたものです。

![OpenType フォントを使った Overleaf サンプルプロジェクト](/files/b85c7e0b522bc95f51b54c16a76a32e2fc0261e8)

## フォントと LaTeX コンパイラの基礎

### フォントファイル拡張子

下の表は、さまざまな種類（形式）のフォントファイルを示すために使われる拡張子を一覧にしたものです。

|                                                                                                              |                   |
| ------------------------------------------------------------------------------------------------------------ | ----------------- |
| **フォントの種類**                                                                                                  | **拡張子**           |
| [PostScript Type 1](https://en.wikipedia.org/wiki/PostScript_fonts#Type_1)$$\displaystyle{}^{\mathbf\*}$$    | `.pfb`            |
| [TrueType](https://en.wikipedia.org/wiki/TrueType)                                                           | `.ttf`            |
| [TrueType コレクション](https://learn.microsoft.com/en-us/typography/opentype/otspec150/otff#truetype-collections) | `.ttc`            |
| [OpenType](https://learn.microsoft.com/en-us/typography/opentype/)                                           | `.otf` または `.ttf` |

$$\displaystyle{}^{\mathbf\*}$$ 2023年1月、Adobe のすべてのオーサリングアプリケーションは [レガシーな Type 1 フォント形式のサポートを終了しました](https://helpx.adobe.com/uk/fonts/kb/postscript-type-1-fonts-end-of-support.html).

OpenType フォントには2つの「種類」があり、しばしば「フレーバー」と呼ばれます。PostScript フレーバーと TrueType フレーバーです。これらの名称は、含まれる文字形状（グリフ）を表現するために使われるデータと仕組みを反映しています。そのため、OpenType フォントには2つのファイル拡張子があります。 `.otf` または `.ttf` これは、 *慣例的に*、次のことを意味します。

* `*filename*.otf` は PostScript フレーバーの OpenType フォントです
* `*filename*.ttf` は TrueType フレーバーの OpenType フォントです

たとえば pdfTeX では、拡張子 `.otf` は PostScript フレーバーの OpenType フォントを示すとみなされます。

* **注**： `.ttc` 拡張子は TrueType Font Collections にのみ使用されます。

### .ttf 拡張子について

.ttf `.ttf` 拡張子のフォントファイルがある場合、それは次のどちらかです。

* 古い（OpenType ではない）TrueType フォント、または
* OpenType が提供する追加機能を備えた TrueType データを含む OpenType フォント。

ある `.ttf` フォントファイルが OpenType か単なる TrueType かを判定するのは難しい場合があり、アプリケーションがフォント内部のデータ構造を調べる必要があります。詳細は、 [この議論（スレッド）](https://typedrawers.com/discussion/2945/determine-whether-a-font-file-is-opentype-format-or-truetype-format) またはこの [Microsoft の記事](https://learn.microsoft.com/en-us/typography/opentype/#why-is-my-opentype-font-listed-as-a-truetype-font-by-my-application).

### フォント形式と LaTeX コンパイラ

次の表は、3つの LaTeX コンパイラがサポートする（主流の）フォント形式を要約したものです（厳密には、基盤となる TeX エンジンがサポートします）。

|           |                        |                                                     |                                                       |                                         |
| --------- | ---------------------- | --------------------------------------------------- | ----------------------------------------------------- | --------------------------------------- |
| **コンパイラ** | **PostScript（Type 1）** | **TrueType（通常の**$$\displaystyle{}^{\mathbf†}$$**)** | **OpenType（TrueType）**$$\displaystyle{}^{\mathbf\*}$$ | **OpenType（PostScript）**                |
| pdfLaTeX  | はい                     | はい                                                  | 制限あり$$\displaystyle{}^{\mathbf{\*\*}}$$               | 制限あり$$\displaystyle{}^{\mathbf{\*\*}}$$ |
| XeLaTeX   | はい                     | はい                                                  | はい                                                    | はい                                      |
| LuaLaTeX  | はい                     | はい                                                  | はい                                                    | はい                                      |

$$\displaystyle{}^{\mathbf†}$$「通常の」とは、OpenType 仕様で定義された追加データ（テーブル）を含まない TrueType フォントを意味し、そのため TrueType フレーバーの OpenType フォントが持つ、より高度な組版機能は備えていません。

$$\displaystyle{}^{\mathbf\*}$$pdfTeX は [TrueType コレクション](https://learn.microsoft.com/en-us/typography/opentype/otspec150/otff#truetype-collections) （拡張子 `.ttc`）のサポートを限定的に提供します。つまり、コレクション内の最初のフォントのデータしか読み込みません。

$$\displaystyle{}^{\mathbf{\*\*}}$$pdfTeX の「制限あり」の OpenType サポートとは、次のことを意味します。

* OpenType フォントに含まれる高度な組版機能をサポートしないこと;
* TrueType フレーバーの OpenType フォントはサブセット化しますが、PostScript フレーバーの OpenType フォントは完全に埋め込まなければなりません。フォントのサブセット化がないと PDF ファイルは大きくなり、通常は完全埋め込みを禁じる商用フォントではライセンス上の問題が生じます。
* 各フォントで256文字を超えて利用できませんが、個々の OpenType フォントは数万文字をサポートします。
* TeX フォントメトリックやその他の補助ファイル（LaTeX に必要）を生成する必要があります。これらの処理はこの記事の範囲外です（ [さらに読む](#further-reading) を参照すると、それらの処理の説明へのリンクがあります）。

## さらに読む

* [OpenType の仕組み](https://simoncozens.github.io/fonts-and-layout/opentype.html) （Simon Cozens 著）。
* [フォントファイルが OpenType 形式か TrueType 形式かを判定する](https://typedrawers.com/discussion/2945/determine-whether-a-font-file-is-opentype-format-or-truetype-format)—ある `.ttf` ファイルが通常の TrueType なのか、TrueType フレーバーの OpenType なのかを判定する難しさについての議論です。
* [TrueType フォントと pdfTeX を詳しく見る](https://tug.org/TUGboat/tb30-1/tb94thanh.pdf)—TUGboat の論文で、 [Hàn Thế Thành](https://tug.org/interviews/thanh.html)が執筆し、 [pdfTeX](https://www.tug.org/applications/pdftex/).
* [TeX ファイルのためのディレクトリ構造](https://tug.org/tds/tds.html)と題された、TeX 関連ファイルを整理するための標準的なフォルダ/ディレクトリ階層です。
* [LaTeX における OpenType フォントのインストールと使用](https://www.tug.org/TUGboat/tb27-2/tb87owens.pdf)—pdfLaTeX で使うために OpenType フォントを準備する方法を説明する TUGboat の論文です。
* [otftotfm を使って PdfTeX で TrueType Fonts を使うにはどうすればよいですか？](https://tex.stackexchange.com/questions/52819/how-do-i-use-truetype-fonts-with-pdftex-using-otftotfm/52902#52902)—詳細な例を含む tex.stackexchange のスレッドです。

### 「フォント戦争」についての注記...

1980年代から1990年代にかけて、PostScript Type 1（Adobe 製）と TrueType（Apple が作成し Microsoft にライセンス供与）が覇権を争う、いわゆる「フォント戦争」が起こりました。すべてのユーザー、特にデザイナーやタイポグラファーの心をつかむための戦いでした。やがて [OpenType フォント形式](https://learn.microsoft.com/en-us/typography/opentype) が（1997年に）登場し、Adobe と Apple のフォント技術を包含・拡張するハイブリッドな解決策となりました。OpenType は元の TrueType ファイル形式を基盤として、65,000を超える文字形状（グリフ）を含むフォントを通じて高度な組版機能とより良い Unicode 対応を可能にします。


---

# 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/ja/to-2/58-i-have-a-custom-font-i-d-like-to-load-to-my-document.-how-can-i-do-this.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.
