IVSアドインをインストールしてみたよ

  • Unicode IVS Add-in for Microsoft Office」(http://ivsaddin.codeplex.com)をインストールしてみた。環境は、Vista + Office 2007*1。インストール後、用意されているサンプルファイルをWordで開いてみると、最初はアドインなしの環境と変らない表示だったが、カーソルがぶるぶる震えながら、徐々に異体字に置き換わっていった。
  • これらの異体字は、アドインが生成した外字フォントのPUA(私用領域)に割り当てられている。オリジナルのフォント(この例ではipamjm.ttf)をまるごと(すべてのグリフデータを含めて)コピーして外字フォント(IPAmjMincho_EUDC.ttf)を作り、符号位置とグリフの対応表(cmap)を一度白紙にした上で、PUAの符号位置とGID(グリフID)の対応を順次追加しているかんじ。
  • PUAの符号位置は、基底文字(親字)や異体字セレクタの符号位置とは無関係に、読み込み順・入力順にU+F100以降の値が振られていくようだ。サンプルファイルに含まれる26種類のIVSを例にすると、わたしの環境におけるオリジナルのIPAmj明朝(ipamjm.ttf)と外字フォント(IPAmjMincho_EUDC.ttf)の関係は、下図のとおり。IVSアドイン環境では、編集中は赤字の符号位置(PUA)が用いられ、ファイルに保存する際には黒字の文字列(IVS)に変換される。


  • Unicodeの0面(基本多言語面)のPUA(私用領域)はU+E000からU+F8FFまでで、6400文字を格納できる。このうちIVSアドインが利用するU+F100以降は2048文字(下図、グレー地)。これに対して、IVSは(IPAmj明朝に実装されている)2010年11月14日版のHanyo-Denshiコレクションだけでも4195種類ある。IVSアドイン環境でその一覧表を読み込んだら、どうなるのだろう。


  • 試してみた結果、外字フォントのU+F100からU+F8FFまでの2048字分を使い切ると、単に「その時点で終わり」ということのようだ*2。つまり、それ以上はIVSを読み込んでも変換されない(基底文字はデフォルトグリフで、異体字セレクタは空白として表示される)し、IVSアドインの入力補助ツールから(そのフォントでは)異体字を入力することができなくなる。外字フォントはアプリケーションやWindowsの再起動では初期化されず、IVSアドインを削除してインストールし直しても残っているので、外字領域を使い切ってしまったフォントは手動で捨てるしかない*3
  • 次に、入力テスト。IVSアドインの入力補助ツールで「啄」の旧字体を入力してみた。わたしの環境では、モリサワフォントやヒラギノ異体字を入力すると、下半分が欠けてしまう(下図)。


  • フォント変更テスト。外字フォントのPUAを利用する仕組みでは、フォントごとにPUAのマッピングは(異体字を利用した履歴によって)バラバラになる。このため、IVSアドイン環境でグリフを置換したのちにフォントを変更すると、文字化けする。ウエイトを変えただけでもフォントは別になるので化ける。下図は(化ける以前に下半分が切れているが)その一例(上図の画面で、フォントをUD黎ミンPr6NのRからHに変更)。化け方は環境依存。


  • これ以外にも、コピペ、検索、単語登録した場合の挙動など、留意すべき点はいろいろあるが、とりあえず今回はこんなところで。

*1:ただしマシンはMac

*2:2010年11月14日版のHanyo-DenshiコレクションのIVS(4195種類)のリストをhttps://www.dropbox.com/s/junuofjnsnak3u5/Hanyo-Denshi_4195.txtに置いておきます。自己責任でお試しください。IVSアドイン環境でこのテキストを読み込んだ場合、必ずあとから外字フォントを手動で捨ててください。読み込みにはとっても時間がかかります。

*3:VistaではUsers\俺様\AppData\Local\Microsoft\Windows\EUDCにある。