Skip to content

Instantly share code, notes, and snippets.

@monokano
Last active July 28, 2019 01:33
Show Gist options
  • Save monokano/a3cf2992b8246720c5edc9abe12a65af to your computer and use it in GitHub Desktop.
Save monokano/a3cf2992b8246720c5edc9abe12a65af to your computer and use it in GitHub Desktop.
GlyphsのAJ1の問題と対処 2. ROS編

GlyphsのAJ1の問題と対処 2. ROS編

GlyphsはAdobe-Japan1フォントを書き出せるものの、その実装にはいくつか問題を抱えています。ここではROS情報の問題と対処方法を説明します。

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に変換すると化けます。化ける条件は限られているので稀ではあるのですけど。

問題:Supplementが正しくない

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テーブルに戻す…かなぁ。 もっと簡便な方法があるといいんですけど。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment