StockSnap via Pixabay
パソコンやスマホの画面に表示される文字。本や書類に印刷されている文字。それぞれの文字の形は違う。ワープロソフトなどで、文字の種類を変えることも多いだろう。こうした文字の書体のグループのことをフォントという(
コトバンク)。
こうしたフォントへのこだわりは、デザイナーが強いように思えるかもしれないが、プログラマーも非常に強い。どのフォントを使ってプログラムを書くかは、プログラマーの間でも非常に注目される話題だ。文字の読みやすさや、間違い難さで、生産性が大きく変わるからだ。そのため、プログラミング向けのフォントは、日々新しいものが開発されており登場している。
というわけで、今回はプログラミング向けフォントの世界の話をする。フォントの基本的な知識を押さえながら、プログラマーのフォントへのこだわりを見ていこう。プログラマー以外の人にも、自分の文章を書いたり、文書を作るときのヒントがあるかもしれない。
まず最初は、プロポーショナルと等幅だ。文字というものは、本来横幅がまちまちだ。たとえば、英語のWとI。手書きで書けば、同じ横幅にならないことは、一目瞭然だろう。プロポーショナルフォントは、文字毎にそれぞれの文字に合わせた横幅で表示されるフォントだ。
等幅フォントは逆に、文字の種類を無視して、同じ横幅で表示されるフォントのことだ。ただし、全ての文字が同じ横幅になるわけではない。半角全角といった区別はある。英数字は同じ幅、日本語の文字は別のサイズで同じ幅といった具合になっている。
プログラミング用のフォントは、等幅のものが利用される。文字の横幅がそろっていないと、プログラムの縦位置が整列されずに、読みにくいからだ。そして、英数字と日本語の横幅の比率が1:2になっていることが多い。また、ものによっては2:3のように、日本語の横幅少し狭くなっているものもある。
次は、セリフとサンセリフである。セリフは、文字のストロークの端に付いている飾りのことである。この飾りのことを、ヒゲやウロコなどと呼ぶこともある。サンセリフは、こうした飾りがないものだ。セリフは、日本語フォントで言うと、とめ・はね・はらいがある明朝体になる。サンセリフは、文字の終端がまっすぐなゴシック体になる。
プログラミング用のフォントでは、サンセリフを使うことがほとんどだ。ただし「0(ゼロ)」と「O(大文字のオー)」、「1(イチ)」「I(大文字のアイ)」「l(小文字のエル)」「|(バーティカルバー)」など、視認しにくい文字には、装飾をほどこしたり、セリフを付けたりする。
次は、太さ(ウエイト)である。多くのフォントでは、通常の太さと、太字の太さのフォントが用意されている。ものによっては、もっと多段階の太さが用意されていることもある。
プログラミング用のフォントでは、プログラムで使う命令や記号を色付け表示するシンタックスハイライトという機能を使うことが多い。そうした色分けをするときに、太い文字を使うこともあるので、2種以上の太さが用意されていた方が都合がよい。太い文字を使うのは、細い文字にしていると、背景に対して見えにくい色もあるからだ。
次は、合字(リガチャ)である。フォントには、複数の文字を組み合わせて、1つの文字として表示する機能がある。たとえば「=」(半角イコール)2つが並んでいると「=」(全角幅のイコール)にしたり、「!=」を「≠」にしたりして表示する。
プログラミング用のフォントの中には、こうした機能を使い、プログラムの視認性を高めようとしているものもある。
また、フォントの中には、描画環境の相性もある。特定のソフトで表示すると、フォントが汚く表示されるようなこともある。これは、ソフトによって、文字の描画方法が異なっていたりするからだ。
具体的には、近年登場したコード エディター
Visual Studio Code や、
Atom で利用されている
Electron という開発環境で、Windows の場合にきれいに表示されないフォントがある。そうした場合は、きれいに表示されるフォントを探して、フォントを乗り換える必要がある。