Windowsでプログラミング用フォントであるRictyを使おうとなった時に、手軽に生成できる再現性の高い手段が見つからなかった(あったとしても古かった)ので自分でDockerイメージを作った。
TL;DR
docker run --rm ghcr.io/aikawame/ricty-generator auto > ricty.zip
Dockerがインストールしてあれば、これだけでフォント生成してカレントディレクトリーにZIPで保存してくれる。
オプション等の説明はDocker Hubを参照…といっても公式の生成スクリプトと基本的に同様である。DockerfileについてはGitHubでも公開している。
なぜRictyなのか
現在のプログラミング環境(Windows 10 Pro、43V型4Kディスプレイ、スケーリング100%、IntelliJ IDEA)で一番好ましかったのがRicty-Boldの14ptだった。他にも最近人気のFira Code系やSource Code Pro系、Hack系等のフォントを一通り試してみたけれども、個人的には欧文フォントだとInconsolataがしっくり来る。
そうなると候補になるのはRictyかMyricaなのだけれども、Myrica等一部のフォントはWindows版のIntelliJ IDEAでは使用できない問題があるため、自動的にRictyを選択することとなる。Rictyの中でもRicty DiminishedであればChocolateyでインストールできるので楽なのだけれども、これまたIntelliJ IDEAで使用できなかった。というわけで、最終的に残ったのはオリジナルのRictyだったというわけだ。
まぁ、元々Macを使っていた頃もRicty Diminishedを愛用していたので、Ricty系フォントを贔屓目で見ているような気はする。
文字間隔の問題について
Windowsだと文字間隔が不自然に開く問題は公式でも言及されていて、修正用のスクリプトも配布されている。ただ、自分の環境含めこれを適用しても修正されないことがあるため、別の手段で修正する方法を参考にさせていただき対応した。
ただ、他のOSへの副作用があるかどうかは確認していないため、何か問題がある場合はご指摘いただきたい。
ライセンスについて
Rictyは合成元フォントのライセンスの影響で再配布が行えない。まぁ、だからこういう生成手段を用意したわけなのだけれども。
今回用意したDockerイメージでは、イメージの中にはフォント生成に必要なパッケージと生成スクリプトしか追加しておらず、Rictyはもちろん合成元フォントも含めてコンテナ起動時にダウンロード、生成するようになっている。そのため各フォントのライセンスに抵触することは無いはずだけれども、何か問題がある場合はご指摘いただきたい。
おわりに
フォントも開発環境も、自分が最高だと思えるものが最高だと思いますよ。