Relaxed Typing Mono JP を更新しました

昨年末に Relaxed Typing Mono JP というフォントを公開したのですが、一部不具合もあったので更新しました。バージョン 1.03 で公開しています。

一部「旧漢字」になっていました

いわゆる「ドッグフードを食べる」ということをやって、実はしばらくして気づいていたのですが、一部の漢字が旧漢字(正字)で表示されてしまっていました。これは CID のマッピングにうまく対応しきれていなかったということなのかなと考えているのですが、これについて詳細を調べる前に、そもそも後述するような問題に突き当たってしまったので、結局原因の調査はしていなかったりします。つまり、別の問題のほうに対処したら解消されていたということです。

具体的には、たとえば「会社」の「社」の字が「社」になってしまうなどの事象が見られていました。このほかにも、「梅」「海」「贈」などなどのそれなりの数の漢字で同様のことが起きていました。元のフォントである Noto Sans JP のまとまった領域の漢字がこれに該当していたようなので、それが原因と関係しているのではないかなと推測しています。

Python 3 にしたらダメだった

python-fontforge というパッケージがなくなって python3-fontforge になっていたので Python 3 に書き直したのですが、Python スクリプトから Noto Sans JP を開こうとすると Segmentation Fault になってしまいました。フォントファイル自体が開けないので、スクリプト側からはどうしようもありません。GUIFontForge ではフォントを開けていますので、python3-fontforge に何か問題があるということなのかもしれませんし、もっと本体側にちかいほう、FontForgeスクリプティングエンジンに何かあるということなのかもしれません。さらに言えば CID が開けないということなのか Noto Sans JP 固有の何かに引っかかったのかもよくわかりませんが、差し当たってこの問題については、otf2ttf という変換プログラムで Noto Sans JP を TTF に変換してみたところ解消しました。なお、otf2ttfpip からインストールできるだろうと思います。

TTF に変換してみたところ、上記の旧漢字になってしまう問題は解消されていました。otf2ttf がこの問題にしっかり対応してくれていたということのようです。

さて、今回のこの Segmentation Fault の問題の本質が Python ライブラリ側にあったのかどうかは定かではありませんが、Python 2 から Python 3 への移行に当たっては、それなりに代償があります。今回のように、ことがライブラリに絡んでくると一気に厄介さが増すわけですが、機会があればコミットしたり報告したりできるとよいかなと考えています。もっとも、個人的な事情でここ最近プライベートではプログラミングがなかなかできなくなってきてしまっているのですが……。