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 は スラッシュいれてほしい
  • 小文字L と 1 の区別は大事
  • 小文字 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 でも 小文字 l と 1 の違いがつきにくかったのでないかなぁ
  • 文字幅は consolas と変わってなかった感じ

他のフォント

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

日本語を含めるなら

リンクすればいいと思います。

mofoolog.hateblo.jp


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