特にWindows環境で感じるのですが、プログラミングでフォントを選ぶのは重要と考えています。
今回、ふとした思い立ちでフォントを見直してみました。
続きはこちら
TL;DR;
Dejavu Sans Mono - Brontでしばらくいくが、「g」がぐねっとしたフォントを見つけたら変えたい。
結果
個人の感覚でスコアを点けてみました。 結果だけ見てみると、なるほどDejaVuSansMono-Brontが今のところ一歩だけよいみたいです。
基準は
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を更新していく予定なので参考にどうぞ。
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
まとめてスクショ。
個別に並べておきます。
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+: 文字が狭く読みにくい。モノスペースなほうは特に顕著
日本語を含めるなら
リンクすればいいです。個人的にはプログラム内で日本語は使わないので、英語のみで考えています。