Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

65535個以上のグリフを保存できるフォントファイルのフォーマット

65535個以上のグリフを保存できるフォントファイルのフォーマットは何か検証するため、Noto Sans CJK JPをもとに、グリフを8個ほど追加してみた。

もともと、FontForge[エンコーディング]-[グリフ順]で表示したときに番号0~65534までグリフがみっしり詰まっていた*1フォントなので、ここで8個グリフを追加すれば65535個はよりは多くなるはず。

FontForgeの.sfdファイルとしては問題なく保存できる。[ファイル]-[フォントを出力]でTrueTypeとしてフォントを出力しようとすると以下のエラーが出た。

強制的に[生成]を選択すると次の[グリフが多すぎます]エラーが出た。 TrueType, OpenType (CFF), Web Open Font (WOFF), Web Open Font (WOFF2)のいずれの形式でも同じエラーが出る。

WOFFは2010年にできた規格だし、TrueTypeと比べて後方互換性を気にしなくていいはずだからファイルあたりの最大文字数も緩和されてるのでは?と思ったのだが、結局numTablesは`UInt16'なので最大文字数はTrueTypeと変わらない。

www.w3.org

WOFF2はそもそもWOFFの拡張目的でなく、WOFFよりファイルサイズをコンパクトにすることが目的だから、numTablesはWOFFと変わらず`UInt16'のままになっている。。

www.w3.org

一方で、SVGフォントを選択するとエラーなく出力された。 ただ、SVGフォントはSafariAndroidブラウザでしかサポートされておらず、Chromeからは削除されてしまったということのようだ*2

developer.mozilla.org

WindowsでOSにインストールできるフォントの形式にもSVG形式はないので、ここで作ったフォントはWindowsへはインストールできない。

*1:65531~65534は空白?だったけど

*2:WebKitでは対応していたが、Blinkでは削除された」ということなのかもしれないけど、じゃぁAndroidブラウザのサポートはどうなっているんだろう?