プログラミング用のフォントは数多くありますが、 私は普段Iosevkaというフォントを使用しています。
このフォント、ほぼ不満はないのですが欧文フォントなので日本語がありません。 解消するには日本語文字のあるフォントと合成する必要があります。
今回は欧文フォント(Iosevka)と和文フォント(RictyDiminished)を、FontForgeでフォント合成に挑戦してみました。
Iosevka?
Iosevkaとは、文字単位でカスタマイズできるプログラミング向けフォントです。 詳細は私がこのフォントを愛用するきっかけになった以下記事をどうぞ。
フォント合成の流れ
FontForgeをダウンロードする
https://fontforge.org/en-US/ からダウンロードします。
フォントファイルを用意する
合成するIosevkaフォントとRictyDiminishedのフォントファイルを用意します。
フォントの幅を揃える
Iosevka(カスタム済)の小文字の幅は600で、RictyDiminishedの大文字は1000になっています。 このまま合成すると等幅で無くなってしまうため、幅を合わせます。 今回はRictyDiminishedの大文字の幅を1200に変更しようと思います。
「編集>選択>出力に値するグリフ」から対象フォントを選択して、
右クリックで「幅を設定」を選択して設定値を1200に設定。
このままだと文字が左に寄ってしまので、「幅の中央に」を選択して中央に寄せます。
設定したファイルを保存しておきます。
フォントの統合
Iosevkaの上からRictyDiminishedを被せる形で合成します。
FontForgeでは合成時、差分のグリフが登録されます。つまり今回の場合だとIosevkaにないグリフである日本語をRictyDiminishedから持ってくることができます。
既にあるグリフについては上書きされません。
フォント | 欧文・記号 | 和文 |
---|---|---|
RictyDiminished | ● | ● |
↓ | ↓× | ↓ |
Iosevka | ○ | - |
↓ | ||
合成結果 | ○ | ● |
「エレメント>フォントの統合」から先程修正したファイルを選択してフォントの統合(合成)を行います。
フォント情報の編集
フォントの合成自体は完了したので、後は最低限フォントとして使えるようにフォントファミリー名等の情報を変更します。
大体このあたりの設定が合成前のファイルの値になっているので変更します。
私の場合「縦書きメトリックが存在」にチェックがないと正しくWindowsにインストールできなかったのでチェックをオンにします。
フォントを出力
ここまでで問題がなければフォントを出力します。
インストール
出力したフォントをインストールして完了です。
使用例
VSCode
サクラエディタ
終わりに
今回はRictyDiminishedの文字幅を無理やりIosevkaに合わせたので、若干日本語部分の文字の間隔が冗長になってしまいました。調整すればより洗練された見た目になってくれそうです。
初めFontForgeは難しい印象で手を出しづらかったのですが、フォント合成程度であれば割とできなくはないということが分かりました。
今後フォントに不満が出てきたら、直接グリフを編集する手段が取れるかも。ということが分かっただけでも良い体験でした。