> 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/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. フォント記述（`.fd`）ファイルが必要で、LaTeX に新しいフォントファイルの使い方を知らせます。

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

* **`.tfm`** （TeX フォントメトリック）：これらのコンパクトなバイナリファイルには、文字形状の見た目を記述するデータは含まれていません。文字の寸法と、TeX エンジンが基本的な組版作業を行うために使用できるフォントの「メタデータ」だけが含まれています。数式用フォントの TeX フォントメトリックには、本文専用フォントには不要な追加データが含まれます。特に、数式の組版に使う複数の「間隔」パラメータがあります。
* **`.fd`** （フォント記述）：これらのファイルには、LaTeX でそのフォントを使えるように構成し準備するために必要な LaTeX コマンドが含まれています。中で許可されているコマンドは `.fd` ファイル内のコマンド、および `.fd` ファイル名の命名規則は、次の文書で説明されています [LaTeX2ε のフォント選択](https://texdoc.org/serve/fntguide/1).
* **`.map`** （フォントマップ）：マップファイルは、TeX フォントメトリックファイルの名前と、文字形状（グリフ）を描画するために必要なデータを含む物理フォントファイルを対応付けます。pdfTeX が認識する各フォントは、定義された構文を用いてマップファイルの1行に記述されます。詳細は、 [pdfTeX ユーザーマニュアル](http://mirrors.ctan.org/systems/doc/pdftex/manual/pdftex-a.pdf).
* **`.enc`** （エンコーディング）：必要な場合、このファイル形式は 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}
```

という TeX フォントメトリックファイルを `delphine` という物理フォントファイルに関連付けます `Delphine.ttf`.

* 最初の `<` 文字は、pdfTeX に TrueType フォントをサブセット化するよう指示します。つまり、 *部分的に* このフォントを最終的な PDF ファイルに埋め込みます。フォントをサブセット化すると、文書に含まれる文字を表示するために必要な文字形状データだけを含むため、PDF ファイルが小さくなります。
* 2 番目の `<` 文字は、エンコーディングベクターファイル `T1-WGL4.enc`の名前の前に置かれ、テキスト中の文字コードをフォントファイル内の文字形状データ（グリフ）へ対応付けるために使われます。文字をレンダリング（描画）するには文字形状データが必要です。
* LuaLaTeX では追加の設定手順が必要です。 `\pdfmapline` エラーを生成します **未定義の制御綴** LuaTeX における特定のバックエンドコマンドの扱いの変更によるエラー—次の [LuaTeXリファレンスマニュアル](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 ディレクトリ構造（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 の例 [カスタムフォントファイルを管理するためにフォルダを使用する](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 が、pdfTeX にはない OpenType フォント技術を処理するネイティブ（組み込み）の機能を持っているためです。

* **注**：LuaLaTeX は、基盤となる TeX エンジン（LuaHBTeX）を通じて、すべての TeX エンジンの中で最も高度なフォント処理機能を持っています。ただし、これらを詳しく説明するのはこの記事の範囲を超えます。詳しくは、 [LuaTeXリファレンスマニュアル](https://ctan.org/pkg/luatex?lang=en).

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

* **注**：OpenType フォントを XeLaTeX または LuaLaTeX で使用する場合、 `\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
のような構文も書けます
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 フォントコレクションにのみ使われます。

### .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 ファイルは大きくなり、通常は完全埋め込みを禁じる商用フォントではライセンス上の問題が生じます；
* 1フォントあたり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 論文](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 フォントを使用するにはどうすればよいですか？](https://tex.stackexchange.com/questions/52819/how-do-i-use-truetype-fonts-with-pdftex-using-otftotfm/52902#52902)—詳細な例を含む tex.stackexchange のスレッド。

### 「フォント戦争」についてのメモ...

1980年代から1990年代にかけて、いわゆる「フォント戦争」が起こりました。2つの競合するフォント形式、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://overleaf-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.
