🖋️

コードを読みやすいフォント探し

2024/05/22に公開

はじめに

コードを書くときに便利な日本語対応の等幅[1]フォントについて調べたのでメモしておきます。

等幅フォント(または固定幅フォント)とは読んで字のごとく文字の幅が等しいフォントで、対義語は可変幅(プロポーショナル)フォントです。等幅フォントだと1111でも9999でも同じ幅で表示されるので、脱字に気付きやすくなります。

等幅フォントのなかでも0(ゼロ)とO(オー)、1(イチ),とl(エル)、一(イチ)とー(長音)などを見間違えないように工夫したフォントを使えば誤字に気付きやすくなります。
以下では日本語に対応している等幅フォントの中で気になったもののみ列記しています。

基本の日本語フォント

これらのフォントを基に後述のフォントが作成されています。

IPAフォント

https://moji.or.jp/ipafont/
ライセンス:IPAフォントライセンス
ライセンスが独特で再配布などに制限が有るので注意。

M+ FONTS

https://github.com/coz-m/MPLUS_FONTS
ライセンス:SIL Open Font License 1.1
作者:coz(森下 浩司)様
歴史はIPAフォントよりも古く、今でも広く使われているすごいフォント。

源ノ角ゴシック/明朝/等幅 または Noto Fonts

https://github.com/adobe-fonts
https://github.com/notofonts
ライセンス:SIL Open Font License 1.1
なかでも Source Han Mono または Source Han Code JP はコード向きですが、半角文字と全角文字の幅の比率が2:3で有ることで話題になりました。

派生フォント

源真ゴシック / 源柔ゴシック

http://jikasei.me/font/genshin/
ライセンス:SIL Open Font License 1.1
作者:自家製フォント工房様
源真ゴシックは源ノ角ゴシックをもとに作成されたフォントで、源柔ゴシックは角が丸くなっています。

Nasu フォント

https://itouhiro.hatenablog.com/entry/20140917/font
ライセンス:Apache 2.0 License
作者:itouhiro様
源真ゴシックをもとに判別しやすいように一部の文字を改変したフォント

MigMix / Migu

https://itouhiro.github.io/mixfont-mplus-ipa/
ライセンス:IPAフォントライセンス
作者:itouhiro様
M+ FONTS と IPAフォント を合成してつくられたフォント。
Migu の方はコード向きに文字に少し改変が加えられています。
こちらもIPAフォントライセンスに従いますので注意してください。

Mgen+

http://jikasei.me/font/mgenplus/
ライセンス:SIL Open Font License 1.1
作者:自家製フォント工房様
M+ FONTS と 源ノ角ゴシック からつくられたフォント。
IPAフォントを使用していないため、ライセンスによる制限は MigMix / Migu よりも緩いようです。

HackGen / PlemolJP / Firge

https://github.com/yuru7/HackGen
ライセンス:SIL Open Font License 1.1
作者:tawara様
HackGen は英文フォント Hack と源柔ゴシックをもとに作られたフォント。
こちらの特徴は半角幅:全角幅が1:2のフォントと3:5のフォントが用意されていることです。
同じ作者様によって
https://github.com/yuru7/PlemolJP
IBM Plex Mono と IBM Plex Sans JP からつくられた PlemolJP

https://github.com/yuru7/Firge
Fira Mono と源真ゴシックからつくられた Firge

などのフォントが作成されています。

比較


例文を表示しました。WindowsとMacに両方に入っているBIZ UDフォントも並べています。
個人の好みとして、ゼロは中に点が打たれているものよりも斜線が入っているものの方が好みです。
この中だと好みなのはNasuフォントですが、少し気になるのがウムラウト付き文字の扱いです。ウムラウト付き文字も半角幅で表示して欲しいのですが、半角幅で表示されるものと全角幅で表示されるものが有りますね。そうするとMgen+がいいかなと思いましたが、実はtawara様が作成されたフォントにはconsole版というものが有りまして、console版だとウムラウト付き文字も半角で表示してくれます。

フランス語でもconsole版なら大丈夫。

Très bien! (フランス語わからんけど)

(まぁドイツ語やフランス語でコードを書く人は少ないでしょうけど、それをいったらコード中に日本語で長文を書くことがないような気も…。)

おわりに

Firge console, Mgen+, Nasuを試してみます。

筆者は\LaTeXユーザーなので日本語対応の等幅フォントを探しましたが、コード中に日本語で長文を書くことがない人は日本語非対応のもので充分だと思います。
『プログラミング向き』とされているフォントは文字が不自然に強調されていて読みづらく感じるという方もいますし、可変幅フォントでコードを書く方もいます。等幅にこだわらず好きなフォントでコードを書いたほうが捗るかもしれません。固定観念を捨ててさまざまなフォントを試すのも一興かと。

脚注
  1. とうふくって読みたい派。 ↩︎

Discussion