VistaのTrueTypeフォントがロードできない件の原因追求

TrueTypeフォントの中には、キャラクタコードからグリフのインデックスにマッピングするためのCMAPというテーブル構造が含まれています。CMAPの構造は、MSの文書であれば http://www.microsoft.com/typography/OTSPEC/cmap.htm に書かれています。
Squeakのコードで、CMAPを解釈しているのは TTCFontReader>>decodeCmapFmtTable: あたりです。コードを読むと、取りえるCMAPのフォーマットのうち、フォーマット0(byte encoding table)、フォーマット4(Segment mapping to delta values)、フォーマット6(Trimmed table mapping )の3種類だけしかサポートされていないことがわかります。
一方、Vista(日本語RTM版)に含まれるTrueTypeフォント(*.TTC)を実際にSqueakにロードして、TTCFontReader>>decodeCmapFmtTable: で解釈できなかったCMAPのフォーマットを調べると、次のようになりました。

  • 明朝: 13 ----> これは仕様書にも載っていないので、なにかの間違いか?
  • ゴシック:12
  • メイリオ:12

ということで、このフォーマット12への対応が必要なことがわかりました。