ヒラギノProNにおけるCIDと符号位置の1対nマッピング

  • UnicodeとCIDでは、一般にCIDのほうが細かい区別が可能だが、逆にCIDではUnicodeにおける区別が消える例も存在する。Unicodeでは、見た目で区別がつかない文字であっても、属性の違いによって区別して収録されている場合があるのに対して、Adobe-Japan1では、基本的に形でしか区別されないからである。
  • たとえばU+0060 GRAVE ACCENTとU+0300 COMBINING GRAVE ACCENTは、いずれも単独ではCID=65で描画されるが、アルファベットの母音の後ろに置いた場合の振る舞い(結合属性)が異なる(下図)。


  • このようなUnicodeの符号位置とCIDの1対n対応について、利用者は通常意識する必要がない。しかし、InDesignの字形パレットのようなCIDベースの入力ツールでは、1つのCIDに対応する複数の符号位置のうち、いずれか1つ(CID=65の例ではU+0060 GRAVE ACCENTのほう)が自動的に選ばれてしまうことにより、望んだ結果が得られない場合がある。「InDesignにおける引用符の謎の挙動についての文字コード的なまとめ」で言及したシングル引用符は、その一例。
  • そこで、Unicodeの符号位置とCIDが1対n対応となる例について、網羅的に見てみることとした。符号位置とCIDのマッピングはフォントによって異なるが、今回はヒラギノProNを対象とした。
  • 以下の図では文字の左側にCIDを示し、これに対応する複数の符号位置と文字名を右側に示した。符号位置と文字名のうち、黒字はInDesignの字形パレットで(選択されている文字の実際の符号位置とは無関係に)情報として表示され、ダブルクリックで入力されるもの。グレーの文字で示した符号位置は、InDesignの字形パレットから入力することはできない。
  • 以下の3つの図は、ヒラギノProNの非漢字における1対n対応。InDesignの字形パレットで複数の符号位置からどれが選ばれるかについては、規則性があるようにも見えるが、サンプルがそれほど多くないこともあり、よくわからない。




  • 下図は、部首と統合漢字が重複しているもの。265文字あるうちCID順で先頭の8文字。InDesignの字形パレットでは、いずれも統合漢字の符号位置が選ばれている。


  • 部首と統合漢字が重複している265文字すべてを、下図に示しておく。


  • 下図は漢字における1対n対応のうち、部首と統合漢字の重複以外の例。いずれもヒラギノProでは1対1対応だが、ヒラギノProNでマッピングが追加され、1対n対応となった。


  • 以下追記。N付きフォントならではのCJK互換漢字絡みの1対nマッピングの図が抜けていたので追加(下図)。