GlyphsはAdobe-Japan1フォントを書き出せるものの、その実装にはいくつか問題を抱えています。ここではROS情報の問題と対処方法を説明します。
AJ1フォントのCFFテーブルには冒頭にROS情報が記述されています。ROSは「Registry」「Ordering」「Supplement」の頭文字を指しています。AJ1-6のときは、ROSは以下のようになります。
- Registry:Adobe
- Ordering:Japan1
- Supplement:6
AJ1-3フォントの場合、JIS90用(Std)はSupplementが「3」になります。一方で、JIS04用(StdN)はSupplementを「6」にしなければいけません。JIS04用はJIS90用の後に追加されたものであり、1-3用のグリフだけでなく1-6用までのグリフもあるからです。
令和の組文字グリフは1-7で追加されたものです。StdNで令和組文字グリフを使っているのなら、Supplementを7にしなければいけません。
このROS情報は、例えばPDF閲覧アプリが利用します。もしStdNなのにSupplementが3になっていると、1-3以外の文字がPDFで化けてしまうことがあります。例えばフォント埋め込みをせずにPSファイルを書き出してDistillerでPDFに変換すると化けます。化ける条件は限られているので稀ではあるのですけど。
Glyphsが使用しているAJ1のCMapはJIS04用なので、1-3から1-6まで(StdN/ProN/Pr5N/Pr6N)のいずれもSupplementを6にしなければいけません。しかしGlyphsが書き出すAJ1フォントは、1-3なら3、1-4なら4といったように正しいSupplementではありません。
ttxでCFFテーブルを書き出し、Supplementを修正した後、CFFテーブルに戻す…かなぁ。 もっと簡便な方法があるといいんですけど。