プログラミングフォントの系譜を整理して図解してみました(→PlemolJPを使うことにしました)


はじめに

あの IBM が作ったオープンソース日本語フォントを使い、プログラミングフォント『PlemolJP』を作ってみた」で紹介されているPlemolJPが、とても良さそうだった。

これまでもブログ記事などの「おすすめ」に従って、なんとなくフォントを選ぶ人生を歩んできたので😅、一念発起して「プログラミングフォントの代表的なものの系譜」を整理してみた。

もし皆さまのフォント選択の一助となればさいわいです。

環境

  • macOS BigSur 11.5.1
  • MacBook Pro (13-inch, 2020, Four Thunderbolt 3 Ports)

Windows環境だとヒンティング情報を気にしなければならない(らしい)

プログラミングフォントの系譜

表にすると

Ricty Myrica HackGen PlemolJP
英数 Inconsolata Inconsolata Hack IBM Plex Mono
日本語 Migu 1M 源真ゴシックL 源柔ゴシック IBM Plex Sans JP
ウェイト R/B x O MS/NS R/B T/EL/L/R/Tx/M/SB/B x I
その他 Discord:判読性向上
Diminished:日本語がCircle M+
MyricaM:日本語がMgen+ Nerd/3:5
Firge:ラテンがFira Mono
Nerd/3:5

日本語フォントの合成

Migu\:1M   = M^+ + IPAゴシック \\
Circle\: M^+ = M^+ (IPAなしで加工) \\
Mgen^+     = M^+ + 源ノ角ゴシック \\
源真ゴシック = 源ノ角ゴシック + M^+ \\
源柔ゴシック = 源真ゴシックL(控えめに丸く)

図にすると

スクリーンショット

Ricty

Ricty Discord

MyricaM M

白源 通常版

PlemolJP Regular

PlemolJP Light

プログラミングフォントの選択

(わたしの場合です)

条件

  • ガチなコードはそれほど書かない
    • 書く場合も、エディタ指定フォントを使っている(Xcode / Google Apps Scriptエディタなど)
  • Markdownで書く比率が高い
    • 日本語とコード(英数字)が混在
    • スライドや図表もテキストで書くことが多い(Marp / PlantUML / Mermaidなど)
  • エディタは種々利用
    • 主にObsidian / VS Code
    • たまにCotEditor / Vim

経緯

Ricty → Ricty Discord (→ 源ノ角ゴシック Code JP) → MyricaM と「進められるままに、良さそげなフォント」を選択してきた。ここしばらく(1年ぐらい)は、わりとMyricaMを気に入って使っていた。

選択

PlemolJP Lightを使うことにした。

  • M+系が好きみたい

    • 源ノ角系は、印刷するのには好きだが、どうやらスクリーンで見るのがそれほど好きじゃないみたい
  • ウェイトが軽いのが好きみたい

    • 日本語の比率が多めだからとおもうが、ウェイトが軽いほうが「圧迫感」がなくて好きみたい
    • Ricty(Discord)は大好きだが、日本語がちょっと重たいんだなあ(個人の感想です)

印刷する前提のときは、macOSだと、ついヒラギノ系を選んでしまう……
Windowsでは、源ノ角系を選びたいが、ファイルを渡して相手が印刷できないと困るので、ついメイリオを選んでしまう……

謝辞

本記事に登場する、あるいは登場しない、英文プログラマーフォントならびに日本語プログラミングフォントを提供してくださっている作者の皆さまに心より感謝申し上げます。

まいにち長時間にわたって目にしているフォントに、とてもすばらしい選択肢があって、ほんとうにハッピーです。

参考リンク

フォントそれぞれへのリンクは、表中に記載しました

PlemolJP/白源作者様による解説
- あの IBM が作ったオープンソース日本語フォントを使い、プログラミングフォント『PlemolJP』を作ってみた
- Ricty を神フォントだと崇める僕が、フリーライセンスのプログラミングフォント「白源」を作った話

フォント選択指南
- プログラミング用フォントの選び方とおすすめフォント ⇒ さらに多くのフォントが体系的に解説されています

補足

ウェイト欄の略語

R: レギュラー
B: ボールド
O: オブリーク(単に斜めにしたもの)
MS: モノスペース(等幅)
NS: ナロースペース(狭い)
T: シン
EL: エクストラライト
L: ライト
Tx: テキスト
M: ミディアム
SB: セミボールド
B: ボールド
I: イタリック

その他欄の略語

Nerd → Nerd Fonts 対応版
3:5 → 半角:全角比が(1:2ではなく)3:5。英数字の幅が広く読みやすい(日本語との幅は揃わない)。
HS → 全角スペース不可視(Hidden Space)