Source Code Proと他の等幅フォント(Ricty、Migu 1M、Courier)比較 - itouhiroはてなブログ

Source Code Proと他の等幅フォント(Ricty、Migu 1M、Courier)比較

等幅フォントを画像で比較しました。


比較画像 (300Kと重いですが、しばらく待てばアニメします。最下行にrsingleTag..という行がくるようにしてあります)



個々のフォントを見ます。


Source Code Pro
Adobeが公開したオープンソースフォント。見まちがやすい「数字のゼロ0とアルファベットのオーO、数字のイチ1とアルファベットのアイI、エルl」を区別しやすいと話題です。参考記事: http://b.hatena.ne.jp/entry/www.publickey1.jp/blog/12/_source_code_pro.html

しかしその判別性は以下のフォントでも意識されていました‥。

Inconsolata
「Top 10 Programming Fonts http://hivelogic.com/articles/top-10-programming-fonts」という記事でBestに選ばれたプログラマーに人気のフォント。0O 1Il は区別されていますね。


Ricty
上記 Inconsolataと日本語フォントMigu 1Mを組み合わせた、日本人プログラマーに人気のフォント。英字部分はInconsolataと同じですが、行の高さ(縦幅)が異なります。


Ricty Discord
Rictyはさらに判別性を高めたDiscord版もあります。これはオプション -0 -7 -D -Z -r -z -bar で生成したもので、Rictyとあまり変わりませんが、アルファベットの小文字エルが異なります。


Migu 1M
Rictyで日本語フォント部分だけ使われていますが、このフォントの英字部分もよいです。0O 1Il 判別しやすくしてありますね。数字ゼロのスラッシュは細く目立たないようになっています。


Dejavu Sans Mono
「Top 10 Programming Fonts」という上記記事では3位で、長年人気のあった Vera Sans Mono のアップデート版です。ゼロの中にドット。


Courier 10 Pitch
コレです、見分けにくいフォント。「数字のゼロ0とアルファベットのオーO、数字のイチ1とアルファベットのアイI、エルl」が似ていますね。これはLinux(X Window System)に含まれているフリーフォントで、WindowsでいうCourier Newにあたります。


ほかにも人気の等幅フォントにはWindowsに入っているConsolasなどありますが、今回はUbuntu Linuxスクリーンショットを撮ったので、それは未調査です。

感想

[話者] 上記の比較アニメGIFを見てわかったのは、

  • Courier 10 Pitch
  • Dejavu Sans Mono
  • Source Code Pro

は文字の横幅がまったく同じ。行の高さ(縦幅)は違うけどね。


[合いの手]
横幅が同じなのは

  • Inconsolata
  • Ricty
  • Migu 1M

もだよ。


この中で、日本語文字も含んでいるのは

なんだけど、使い分けの基準はどんな感じ?


[話者]

  • 欧米圏でも評価の高いInconsolataを使いたい、全角空白を可視化したいなら Ricty
  • Rictyの小文字エルをもっと判別しやすくしたいなど、Rictyに細かい注文をつけたい人は Ricty Discord
  • Migu 1Mは、日本語文字が離れていなくて読みやすい感じがする。あとRictyは自分でフォント合成しなくてはならないので、それが難しい人にもMiguはオススメ。


[合いの手] 最初のアニメGIFみるとさ、Souce Code ProってInconsolataより文字サイズが大きくみえるね。行の高さが大きいからかな?


[話者] アニメGIFのフォントの大きさはどれも同じだ。12ポイントだった。
フォント切り替えには このブックマークレットを使ったよ。

javascript:(function(){var%20s=document.createElement('style');s.type='text/css';s.innerHTML="*{font-family:\"Source%20Code%20Pro\"%20!%20important;}";document.getElementsByTagName('head')[0].appendChild(s);})();