最近、モリサワのようすがちょっとおかしいんだが。

  • ところで、モリサワのPr6Nフォントがやばいらしいですね。
  • twitterで話題になってたね。
  • まとめを読んでも、ちょっとわかりにくかったんですけど、どういうことなんですか?
  • リュウミンとかのPr6/Pr6Nには複数のバージョンが存在して、新バージョンで作ったデータを旧バージョンの環境で開くと、豆腐になっちゃう文字があるんだよね。
  • うー、それはかなりイヤですね。
  • だよね。新バージョンのほうは、IVS(異体字シーケンス)対応版なんだけど、cmapも新しいのになってるから。
  • しーまっぷ?
  • cmapっていうのは、符号位置とグリフの対応表。DTP用の日本語OpenTypeフォントAdobe-Japan1フォント)には、Unicodeに入ってないグリフもたくさん入ってるでしょ。
  • 入ってますね。
  • Unicodeに入ってない字」はcmapには載ってない。でも、そういう字が後からUnicodeに収録されることも多いわけで、そのたびに新しいバージョンのcmapが定義される。
  • なるほど。
  • ところが、フォント内部のcmapをホイホイ新しいのに変更しちゃうと、さっき言ったような問題が起きる。たとえば最近Unicodeに入った「黒丸のなかにA」のグリフは、新しいcmapのフォントではU+1F150として入力されるけど、旧cmapのフォントはそんな符号位置は知らないから、当然、豆腐になるよね。
  • あー。
  • だからモリサワはこれまでずっと、一度リリースしたフォントのcmapは変えなかったんだったんだけどね。今回(といっても去年だけど)、突然アナウンスもなしにPr6/Pr6Nのcmapを変更するなんて、ちょっとどうしちゃったの、と。
  • いま、釣りタイトルを強引に回収しましたね。
  • 「モリちょ」って呼んでね!
  • ……えーっと。今回モリサワはIVS対応だけにして、cmapは変えなきゃよかったのにってことですか?
  • いやいや、それはない。
  • どうしてですか?
  • 話せば長いんだけどね。
  • じゃあ、またの機会に……。
  • ま、座れよ。Adobe-Japan1のIVSっていうのはさ、「Adobe-Japan1-6に含まれるすべての漢字をプレーンテキストで表現できるようにすること」をゴールにしているわけだ。
  • それは当然そうでしょう。
  • ところがIVSの登録だけじゃ、その目標は達成できないのよ。
  • ん?
  • IVSには親字が必要だからね。「親字のバリアント」として扱えない字は、どうしようもない。なので、Adobeはそういう字を、新たなCJK統合漢字としてUnicodeに提案してきたわけだ。
  • はあ。
  • CJK統合漢字の提案は、IVSの登録よりもずっとハードルが高くて時間もかかるんだけど、いろいろあったすえに、遂に最後の1文字が収録されたのが、Unicode 6.1。
  • おおー。
  • つまり、IVSとUnicode 6.1は、野望の扉を開くためにどちらも欠かせない2つカギなんだね。
  • 微妙にわかりにくい例えが出ました。
  • で、モリサワのIVS対応Pr6/Pr6Nフォントは、Unicode 6.1対応のcmapとIVSによって、まさにその目標を達成したわけだよ。
  • しましたか!
  • ドリーム・カム・トゥルーですよ。
  • はいはい。
  • それに対して「Unicode 6.1対応のcmapのほうはサポートするのをやめておこうよ」と言うのは、たとえばせっかく緑一色をテンパったのに、そこから「發」を切れって言ってるようなもんでしょ?
  • 例えがまったくわからなくなってきました。
  • まあ、そんなわけでモリサワがこれまでの掟に逆らってcmapを変更した気持ちは理解できる気がするんだけどね。
  • でも、それだと「旧バージョンで開くと豆腐になる」問題を避けられないんですよね。
  • うん。だから、大切なのはそういう問題をはっきりさせておくことじゃないの。で、具体的には、新バージョン(2.000)のリュウミンPr6/Pr6Nでcmapに追加されたのは、以下の158文字。


  • わあ! このへんよく使うじゃないですか!
  • これを旧バージョン(1.002または1.004)で開くと、こうなる。
  • あー。