Magnolia Tech

いつもコードのことばかり考えている人のために。

プログラミング用フォントを選ぶための覚え書き

プログラミング用フォントについて調べたので、そのメモ

2024/09/08: Cascadia Codeを最新バージョンに合わせて記載の見直し

Apple社製が提供する「SF Mono」

developer.apple.com

  • San Franciscoというシステムフォント用のバリエーションの一つ

  • Terminal.appXcodeのデフォルトフォント

    アプリケーションに内蔵されているので、他のアプリケーション(iTerm2とか)のフォント一覧には表示されない。

  • 0(ゼロ)には斜線が入ってO(オー)と区別し易いデザイン

    一方で、l(エル)と1(いち)は、他のプログラミングフォントほど極端な差をつけていない

  • グリフに漢字などは含まず、含まれていないグリフはシステムフォントが利用される

    グリフ数は1628(イタリック系は1324)

  • プログラミング系記号の合字(リガチャ)対応や、Powerline対応フォントは含まれていない

Microsoft社が提供する「Cascadia Code」

github.com

  • Windows Terminal用にリリースされたフォント

  • SIL OPEN FONT LICENSEというライセンスで配布されていて、他のアプリケーションや、OSからも利用可能

    github.com

  • 0(ゼロ)は斜線が入ってO(オー)と区別し易く、l(エル)はセリフの向きを変えて区別し易くデザインされている

  • グリフに漢字などは含まず、含まれていないグリフはOSのシステムフォントが利用される

  • プログラミング系記号の合字(リガチャ)対応のCascadia Codeと、対応しないCascadia Monoの2種類がある

  • GitHubからダウンロードできるバージョンには、更にPowerline対応版(フォント名の後ろにPLがつく)と、NerdFont対応版(フォント名の後ろにNFがつく)が含まれる


その他

Source Code Pro

  • Adobeがリリースしているプログラミング用フォント

    github.com

  • デザインの背景は以下のブログエントリが詳しい(READMEに全然フォントの特徴が書いてない!)

  • blog.typekit.com

  • グリフに漢字などは含まず、含まれていないグリフはOSのシステムフォントが利用される

  • ライセンスは、SIL OPEN FONT LICENSE

  • プログラミング系記号の合字(リガチャ)対応は無いが、Powerline対応フォントが含まれている(ただし、基本の7文字のみ...拡張は含まない)

Source Han Code JP

  • Source Code Proと、漢字も含む「源の角ゴシック」を合成したフォント、つまり漢字も含む

    github.com

  • 半角文字と全角文字の幅の比率が1:2ではなく2:3になっているところが特徴

    ccjktype.fonts.adobe.com

  • ライセンスは、SIL OPEN FONT LICENSE

Monaspace

  • GitHub社から発表されたばかりの等幅フォント

    github.com

  • 5種類の書体ですべて幅を揃えてので、重ね合わせて、組み合わせで利用できる

  • 隣り合う文字の組み合わせによってmやiといった文字の幅を変えることで読みやすさを向上させている(Text Healing)

  • グリフに漢字などは含まず、含まれていないグリフはOSのシステムフォントが利用される

  • ライセンスは、SIL OPEN FONT LICENSE

  • プログラミング系記号の合字(リガチャ)対応(ただし、スタイルとして、dlogを指定しないといけないので、VS code以外のたいていのエディタや、ターミナルソフトでは有効にできない)

  • Powerline対応は無し


Powerline対応フォントについて

UNICODEの私用領域(つまり外字)の領域に、コーディング用に見栄えをよくするための記号(ブランチなど)を追加したもの

個々のフォントが対応していなくても、iTerm2は独自のグリフを提供している(ただし、フォントによっては見栄えが合わない場合もある)

合字(リガチャ)について

同じ合字(リガチャ)対応のフォントでも合字が、スタイルにdlogを指定した時に有効になるのか、caltを指定した時に有効になるかはフォントのデザイン次第。

たいていcaltはデフォルトで有効、dlogはデフォルトで無効