tech.guitarrapc.cóm

Technical updates

Programming 向け Awesome Fonts の選択

特にWindows環境で感じるのですが、プログラミングでフォントを選ぶのは重要と考えています。

今回、ふとした思い立ちでフォントを見直してみました。

続きはこちら

tech.guitarrapc.com

TL;DR;

Dejavu Sans Mono - Brontでしばらくいくが、「g」がぐねっとしたフォントを見つけたら変えたい。

結果

個人の感覚でスコアを点けてみました。 結果だけ見てみると、なるほどDejaVuSansMono-Brontが今のところ一歩だけよいみたいです。

Fontのスコア付け

基準は

Target Border(:eyes:) Bad(-1) Good (+1)
oO08 distinct each 0 has dot inside 0 has slash
iIlL1 distinct each l and 1 are almost same l and 1 are completely different
g9qCGQ distinct each g is Slab serif g is not Slab serif, Q is serif font
~-+=> no ligature not center or any unbalance n/a
Left and right side padding too narrow TODO: measure
Top and bottom side padding too wide TODO: measure
Size too small 2/3 or 3/4 height of small letters
Balance Letter Paddings and Boldness

明日には違ってそうなので、後日、客観的に判別するため具体的な指標となる自分の好みの数値を測ります。

Fonts-lab/SCORE.md at master · guitarrapc/Fonts-lab · GitHub

GitHub

個人的なフォントお試し結果をリポジトリに記録しています。今後もGitHub上のREADMEを更新していく予定なので参考にどうぞ。

github.com

Motivation

個人的に、Windows環境でのfontは Consolas を長年使っており、都度他のフォントを試しては納得いかずconsolasに戻していました。

改めて2019年で何かないかなぁと見直したのがきっかけ。

個人的にConsolasに感じる課題は、小文字Lと数字1が見分けつきにくいことと、微妙に文字体の詰まり加減があとわずかになんとかならないのか感と、古いっぽいような微妙な感触であること。

Requirements

  • モノスペースフォント(等幅フォント)必須。プロポーショナルフォントは使わない
  • 文字幅が少しあるほうといい 1
  • 行が少し詰まっていると全体を見られてうれしい 2
  • 0はスラッシュいれてほしい
  • 小文字L1の区別は大事
  • 小文字gがグねってしているとqと区別つきやすくて好み
  • Ligatureはいらない 3
  • もともとプログラム内で日本語はかかないので入っていなくてもok 4
  • 横は狭いより広くてok
  • 縦が広いのはダメ
  • フォントは大き目がよい

Compare

フォントをさくさく比較しつつ見ていくには、app.programmingfonts.orgが最高なので、一通りみるといいです。ただし、自分のエディタで実際に入れてみないと実際の幅や感覚が違うので、これはという候補の比較にフォントインストールは必須です。

https://app.programmingfonts.org/#borg-sans-mono

app.programmingfonts.org を使うとフォントを左ペインで選んで比較できる

まとめてスクショ。

Kibelaでフォントのスクショを比較

個別に並べておきます。

Consolas 8.0

Dejavu Sans Mono - Bront

Hack

Source Code Pro (Variable)

MesloLGS-Regular

mononoki

Selection

DejaVu Sans Mono - Bront と Meslo の選択

  • DejaVu Sans Mono - BrontかMesloLGS-Regularがいい感じだけどgが気に入らないのでConsolasやSource Code Proっぽいgが欲しい
  • ほかの文字、文字幅、行幅はバランスよい
  • DejaVu Sans Monoのほうが、MesloLGS-Regularよりも縦が詰まるのでプログラム全体を少しでも見るにはよい

Consolas や Source Code Pro と他の選択

  • 小文字のgは、Consolas、Source Code Proがよい
  • Consolasは小文字Lと数字1が見分けつきにくい

Hack と Source Code Pro と他の選択

  • HackとSource Code Proは0で、@と見間違えそうなのが好みじゃない

momonoki と他の選択

  • g」「0」「l」「1」いずれも満たしているが、文字幅の感覚が狭い。文字微妙

Consolas 8.0 と Consolas

  • 置き換えになるのでなんとも言い難い (違いがめっちゃ分かりにくい)
  • Consolas 8.0でも小文字l1の違いがつきにくかった
  • 文字幅はconsolasと変わってなかった

他のフォント

  • Fantasque Sans Mono: Ligatureいらない
  • Inconsolata: Ligatureいらない
  • M+: 文字が狭く読みにくい。モノスペースなほうは特に顕著

日本語を含めるなら

リンクすればいいです。個人的にはプログラム内で日本語は使わないので、英語のみで考えています。

mofoolog.hateblo.jp


  1. Consolas比
  2. Source Code Pro比
  3. プログラミングで合字は構文とのバッティング起こしてて、ちょっと使う理由が見つからない
  4. もし日本語があるなら「英語:日本語 = 1:2」の比率が絶対