ヒラギノと他のフォントの文字幅の違い

ヒラギノOpenTypeのProフォントとStdフォントは、収容グリフ数が倍以上も異なりますので、両者の差分のグリフ部分については互換性はありません。では、両者に共通するグリフ(Adobe-Japan1-3のグリフ)については互換かと言うと、これも完全に互換とは言えません。

これは、ProとStdで特定のUnicode符号位置に割り当てるグリフの文字幅バリエーションが異なる場合があるためで、Unicodeに依存して文字処理を行うアプリケーションでは、ProフォントからStdフォント(またはその逆)に書体変更すると、同じコードの文字でも文字幅が変わってしまうことがあります(例:Stdでは数学記号の∑や√にAdobe-Japan1-3内の全角グリフが割り当てられているが、ProではAdobe-Japan1-5内のプロポーショナルグリフが割り当てられている場合)。したがって、書体変更はProフォント同士またはStdフォント同士で行う方が安全と言えます。

  • では、「数学記号の∑や√」に類する例は、他にどれだけあるのか。以下2つの図に分けて示す。グレー地は全角グリフ、黒地はプロポーショナル・グリフ。表示に用いたのは、「ヒラギノ角ゴ Std W8」と「ヒラギノ角ゴ Pro W6」。



  • ヒラギノは、小塚書体やモリサワ・フォントなどと比較して、より多くのプロポーショナル・グリフをデフォルトで(Unicodeの符号位置に直接対応させる形で)採用しており、ヒラギノPro(UniJISX0213系)と小塚Pro(UniJIS系)では、65のマッピングが異なる。このうち「UniJISグリフはAJ13の範囲内、UniJISX0213グリフはAJ13の範囲外(つまりStdフォントではUniJISX0213グリフを使えない)」となるグループが、上図に示した「ヒラギノStdとProで文字幅が異なるもの」に該当する。
  • 次に、「UniJISグリフもUniJISX0213グリフもAJ13の範囲外」となるグループを下図に示す。これらはもちろん、ヒラギノStdとProにおける文字幅の互換性問題とは無関係。表示に用いたのは、「小塚ゴシック Pro B」と「ヒラギノ角ゴ Pro W6」。


  • 最後に、「UniJISグリフもUniJISX0213グリフもAJ13の範囲内」となるグループを下図に示す。この図は、内容的には(対照用の例示を削った以外は)前回のエントリ(「ヒラギノ角ゴ StdN」のcmap)の図と同じ。「ヒラギノ角ゴ StdN」では(AJ13の範囲内にあって)使うことのできる(現にStdでは使っている)UniJISX0213グリフをなぜ使わないのだろう、というのが前回の趣旨。