「0xProto」フォントとは
「0xProto」フォントは、プログラミング向けのフォントです。文字の読みやすさを重視しています。
最初のリリースは2023年5月で、その後も何度かアップデートされています。この記事は、執筆時点のバージョンである0xProto 1.500をもとに書かれています。
- 1.000:2023年5月
- 1.500:2023年12月
- 2.000:2024年5月、イタリック体が追加、MacではHomebrewでインストール可能に
- 2.200:2024年9月、ボールド体が追加
プログラミング向けのフォントとは
プログラミングにおけるフォント選択は、単なる見た目だけの問題ではなく、それ以上の意味があります。ソースコードが読みやすくなるようにデザインされているフォントを選ぶべきです。たとえば、以下のような観点があります。
- インデントやコードの構造が見えやすいか。縦のラインが揃っていると見やすい場合が多いため、等幅フォントが好まれます。
- 文字の識別がしやすいか。似たような文字、たとえば、
0
(ぜろ)とO
(オー)、1
(いち)とl
(エル)とI
(アイ)などの文字が明確に区別できることが重視されます。 - 長時間の作業でも疲れにくいか。文字の形が明確で、コントラストやサイズが適切に調整されていることが大事になります。
また、モダンなフォントのなかには、リガチャ(合字)を使って、プログラミングでよく使われる記号列を見やすくする工夫がされているものもあります。たとえば、!
と=
が並んだ場合に≠
(ノットイコール)として表示する、などです。
0xProtoの特徴
0xProtoは、プログラミング向けのフォントとしてデザインされている、文字の識別がしやすい字形の等幅フォントです。
同様のプログラミング向けのフォントはいくつかありますが、0xProtoは各アルファベットの字形が独特です。個人的に一番癖を感じるのは小文字のf
でしょうか。
アルファベットとしての美的バランスという観点では他のフォントに劣る感じもありますが、その字形によって、0xProtoならではの特徴がより良く出るようになっています。
他の文字と異なる部分がはっきりと強調されています。そのため、文字の識別がしやすくなっています。
また、わずかに丸みを帯びた広がりのある字形で、小さなサイズでも読みやすいように工夫されています。
一般に、等幅フォントでは暗い部分と明るい部分が不均一になりがちですが、0xProtoはその独特の字形によってバランスが良くなっています。
一方、リガチャは(他のモダンなフォントと比較すると)少し控えめです。たとえば、!
と=
が並んだ場合にそのふたつが近づいてひとかたまりになりますが、≠
のような別の文字にはならず!
と=
として認識できます。このくらいが本来の意味でのリガチャ(合字)であり、読みやすく編集もしやすいです。
もちろん、リッチなリガチャが好きな人もいるでしょう。その場合は0xProtoの代わりにFira CodeやJetBrains Monoなどのフォントを使うのが良さそうです。
Texture Healing
0xProtoの最新版では、読みやすさ向上のために「Texture Healing」という機能が導入されています。これはmonaspaceフォントで採用されている機能で、0xProtoにも採用されました。
プロポーショナルフォント(等幅でないフォント)では、横幅が狭い文字は狭い幅で、横幅が広い文字は広い幅で表示されます。しかし等幅フォントでは、横幅が狭い文字も広い文字と同じ幅で表示されます。そのため、横幅が狭い文字と広い文字が並ぶとバランスが悪くなります。
これを改善するのがTexture Healingです。全体的には等幅フォントとしての幅を保ちつつ、横幅が狭い文字と広い文字が並んだときには狭い文字の幅を狭く、広い文字の幅を広くするように調整します。たとえばminimum
という単語の場合、m
とi
が並んでいる箇所でm
の幅を広く、i
の幅を狭くします。これによって、等幅フォントでもバランスが良くなり、読みやすくなります。
おわりに
プログラミング向けのフォントはいろいろありますが、0xProtoはそのなかでも良いフォントだと考えています。私はしばらくこれを使っていくつもりです。