モリサワProフォントと互換性のジレンマ

  • たとえばリュウミンPro Rでチルダ付きE(U+1EBC LATIN CAPITAL LETTER E WITH TILDE)を入力し、フォントをリュウミンPro Lに変更すると、ゲタに化ける*1。ベンダもレパートリも共通の、現在提供されているフォント間で、このような化け方をする例は珍しい。
  • 原因は、cmapのバージョンの違い。モリサワには「フォント名が変わる場合以外はcmapを変更しない」という原則があるようだ。この方針は、同一の書類を複数の環境で開く際の互換性において最強である。その一方で、リリース済みのフォントのcmapを更新することができないため、かなり古いcmapもそのまま残ることとなり、リリース時期が異なるフォント間の互換性は犠牲にならざるをえない。
  • モリサワOpenTypeのファーストリリース(2002年3月)基本7書体に含まれるリュウミンPro Lのcmapは、UniJIS-UCS2-H 12.000。セカンドリリース(2002年8月)のリュウミンPro Rは、UniJIS-UCS2-H 12.001。両者には、下図のような違いがある。


  • リュウミンPro L(UniJIS-UCS2-H 12.000)がチルダ付きE/eのグリフ(CID+9397/CID+9409)と対応付けているU+0EBC/U+0EBDは、Unicodeのラオ文字(ラオス文字)ブロックにあり、チルダ付きE/eとは似ても似つかない文字である。下図はUnicodeの符号表の一部。


  • たぶん「1を0と入力してしまった」的な単純なミスであり、Adobe-Japan1的にはさっさと消し去りたい過去なのだろうけれど、モリサワProフォントの基本7書体は、今もその傷痕を保存している*2

*1:InDesignで「フォント適用中の保護を有効にする」にチェックが入っている場合は、警告メッセージが表示される。

*2:InDesign 2.0(日本での発売は2002年2月)に付属する小塚Proフォントのcmapは修正済みのUniJIS-UCS2-H 12.001であり、モリサワProフォントもファーストリリースの時点で12.001を採用することが可能だったのではないかという気もするが、このあたりの事情は不明。