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。
- フォント変更テスト。外字フォントのPUAを利用する仕組みでは、フォントごとにPUAのマッピングは(異体字を利用した履歴によって)バラバラになる。このため、IVSアドイン環境でグリフを置換したのちにフォントを変更すると、文字化けする。ウエイトを変えただけでもフォントは別になるので化ける。下図は(化ける以前に下半分が切れているが)その一例(上図の画面で、フォントをUD黎ミンPr6NのRからHに変更)。化け方は環境依存。
- これ以外にも、コピペ、検索、単語登録した場合の挙動など、留意すべき点はいろいろあるが、とりあえず今回はこんなところで。