Re:VIEW で フォントを Noto に統一する

# はじめに

先日 Re:VIEW で技術同人誌を執筆した際に、フォントを Noto に統一するために試行錯誤しました。

この記事では、Re:VIEW で作成する PDF に埋め込まれるフォントをすべて Noto 系のフォントに変更する方法を紹介します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325392/b5d6283e-d3a5-45ca-9287-b246ebc440e0.png)

# 環境

Docker 上に Re:VIEW の環境を構築しました。

https://github.com/vvakame/docker-review

`vvakame/review:5.9` を使用しています。

この環境では、デフォルトでは、和文は原ノ味フォント、欧文は Latin Modern フォントが埋め込まれるようになっていました。（あと Nimbus Sans も）

| 和文は HaranoAji (= 原ノ味) | 欧文は LM (= Latin Modern) |
| --- | --- |
| ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325392/3a38807c-e50b-46be-88cb-2cd2fe3a44ee.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325392/f143fa51-6b30-4671-acef-394a84eeb032.png) |

# フォントを Noto に統一する

下記のドキュメントにフォントに関する説明が記載されていて、とても参考になりました。

[使用書体の変更（upLaTeX 編） — Re:VIEW knowledge ドキュメント](https://review-knowledge-ja.readthedocs.io/ja/latest/latex/uptex-fonts.html)

今回の場合は和文と欧文でそれぞれ変更する必要がありそうです。

## 和文フォントを変更する方法

和文フォントの変更方法は、Docker イメージのリポジトリに記載されていました。

https://github.com/vvakame/docker-review?tab=readme-ov-file#tex%E5%91%A8%E3%82%8A%E3%81%AE%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A

> * [Notoフォント](https://www.google.com/get/noto/)を使いたいとき
>   * `apt-get install fonts-not-cjk-extra` および `kanji-config-updmap noto-otc` を実行する

上記に従い Dockerfile でビルド時に実行されるようにしようとしたのですが、エラーになりました。

```dockerfile:Dockerfile
RUN kanji-config-updmap noto-otc
```

```
------                                                                                            
 > [dev 2/2] RUN kanji-config-updmap noto-otc:
0.229 Either -user or -sys mode is required. at /usr/bin/kanji-config-updmap line 98.
------
```

エラーに従い `-sys` をつけたらビルドに成功しました。

```dockerfile:Dockerfile
RUN kanji-config-updmap-sys noto-otc
```

これで、和文フォントとして Noto のフォントが埋め込まれるようになりました！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325392/2ead4ea6-561e-463f-ae9b-bba3b21271fd.png)

:::note warn
原ノ味フォントは、源ノ明朝・源ノ角ゴシック (= Noto Serif, Noto Sans) をベースに作られたフォントなので、見た目はほとんど変わらないです。Adobe Acrobat Reader などでフォントが埋め込まれているか確認しましょう。

[trueroad/HaranoAjiFonts: 原ノ味フォント / Harano Aji Fonts](https://github.com/trueroad/HaranoAjiFonts)
:::

## 欧文フォントを変更する方法

欧文は `noto` パッケージでフォントを変更しました。

https://ctan.org/pkg/noto

vvakame/docker-review には texlive がインストールされているので、`texlive-fonts-extra` をインストールすると `noto` パッケージが使用できるようになります。

```dockerfile:Dockerfile
RUN apt-get update && apt-get install -y texlive-fonts-extra
```

`sty/review-custom.sty` に以下を追加すると、欧文が Noto になります。

```tex:sty/review-custom.sty
\usepackage{noto}
```

before:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325392/c94ee9cb-c096-43cc-a8b9-aa96a209bbe1.png)

after:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325392/b36aeefd-d252-417e-aae5-76e285dcda94.png)

これですべて Noto になった...と思いきや、本のタイトルだけ Numbus Sans です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325392/4191c157-e806-458f-becb-0789e8569820.png)

これは、 `sty/review-base.sty` で以下のようにフォントが指定されているのが原因です。

```tex:sty/review-base.sty
\newcommand{\reviewtitlefont}[0]{\usefont{T1}{phv}{b}{n}\gtfamily}
```

`sty/review-custom.sty` で Noto になるように上書きしました。

```diff:sty/review-custom.sty
  \usepackage{noto}
+ \renewcommand{\reviewtitlefont}[0]{\bfseries\sffamily}
```

これで、埋め込まれているフォントのすべてが Noto になりました :tada: 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/325392/b5d6283e-d3a5-45ca-9287-b246ebc440e0.png)

# まとめ

最終的な `Dockerfile` と `sty/review-custom.sty` は以下のようになっています。

```dockerfile:Dockerfile
FROM vvakame/review:5.9

RUN apt-get update && apt-get install -y texlive-fonts-extra
RUN kanji-config-updmap-sys noto-otc
```

```tex:sty/review-custom.sty
\usepackage{noto}
\renewcommand{\reviewtitlefont}[0]{\bfseries\sffamily}
```

ちなみに、完成した技術同人誌「Qiita Tech Book vol.1」は「RubyKaigi 2025」という Ruby のカンファレンスで配布しました！

https://qiita.com/official-columns/event/rubykaigi2025-sponsor/

今後のイベントでも配布していく予定です。その際には Qiita 公式 X (Twitter) で告知するのでフォローしてもらえると嬉しいです！

https://x.com/Qiita

電子書籍版は以下リンクからダウンロード可能です！

[電子書籍版「Qiita Tech Book vol.1」はこちら](https://increments.github.io/qiita-tech-book-dist/qiita_tech_book_vol1.pdf)