TakaoExフォント

[いわにぃのブログ : TakaoExには「§」がない!]から。
他にも無い文字があるかも……と思い、IPAexとTakaoExのcmapの差を見たら、無い文字がわかるかな?とTTX/FontToolsを使って、cmapをダンプし、比べてみた。
IPAexGothicとTakaoExGothicのcmapを比べると、TakaoExGothicの方には、下の文字に対応するものが存在しなかった。

U+00A7 SECTION SIGN
U+00B0 DEGREE SIGN
U+00B6 PILCROW SIGN
U+0336 COMBINING LONG STROKE OVERLAY
U+2014 EM DASH
U+2032 PRIME
U+2033 DOUBLE PRIME
U+22BF RIGHT TRIANGLE
U+5307 (略)*1
U+E0101 U+5307 の異体字

自分の調べ方はざっとしたものなので、上は正確じゃないかもしれないが、とりあえず、最初に引用した記事と一致する U+00A7 はきちんとマップされていないと思ってまちがいなさそう。
これは何かの意図があって無い……のじゃなくて、単純にバグなんだろうな。日本語フォントは文字数多いから、こういうの大変そう。
それに、ソフトによっては、ない文字を別のフォントの文字で代替えしたりするから、はっきりと失敗してくれるソフトじゃないとわかりにくそう。Wordだとデフォルトフォントが表示され、LibreOfficeだとなんか文字は表示されているんだけど、カーソル位置がおかしなことになり、選択したときに文字化けしたりする。テキストエディターでも、なんか文字が表示されたりする。文字の幅とか微妙にへんなことになってたりするけど。
あとTakaoExGothicとTakaoExMinchoのcmapは同じなんだけど、IPAexGothicとIPAexMinchoのcmapは微妙に異なる。
あまりフォントのデータ構造の詳細やら事情やらを知らないので、妙な感じはするが、それ以上のことは、ようわからんな。

追記 2011/07/12

IPAフォントからTakaoフォントを作るスクリプトを見たんだけど、とくに複雑な処理はしていない(ように見える)。それなのに、なぜに cmap に違いができるんだろうか……。
なんのことはない。公開されているTakaoExは、IPAexの2010年2月公開のVer.001.01から作られたものだった(Exなしのものも古いIPAフォントから作られている)。最新のIPAフォントから作られているものが公開されていると思い込んでいた……。
IPAexの001.01は、IPAのサイトからもうダウンロードできない(旧ヴァージョンのページを見ていっても、IPAexは001.02以降しかみあたらない)から、実際のところはわからないけど、古いIPAexが持ってた不具合をそのまんまTakaoExが取り込んだってことなんだろう。
最新の IPAexGothic 001.02、IPAexGothic 001.03 から TakaoEx フォントを作ればセクション記号がないとか、そういう不具合は回避できるんだろうな。作成用のスクリプトがあるから、それを実行してみればいいのだろうけど……。でも、Windowsでやるのは、たいへん面倒くさそう……。スクリプトはshのもので、そのなかでperlとかsedとか呼んでるんだよなあ……。

追記 2015/06/29

上記記事は2010/03/04公開のTakaoExゴシック001.02.01、TakaoEx明朝001.03.01でのものだ。
2015/03/09公開のTakaoExゴシック002.01.01、TakaoEx明朝002.01.01では、セクション記号などは表示されるのを確認した(BMP外のU+E0101は面倒で確認していない)。

Takaoフォントは2010/03/04に公開されたものを最後に長いこと成果物が出てこず(Takaoフォントの元フォントであるIPAフォントは新しいものが出ていたにもかかわらず)、どうなっているのかと思ったが、5年ぶりに新しいフォントが公開された。
成果物が出てきたのがまずよろこばしいことだが、加えて、まだまだ生きているプロジェクトであることも確認できて良かったと思う。

*1:IBM拡張漢字だからか、はてなダイアリーできちんと保存されない。