戸籍統一文字は、戸籍に使われているアヤシイ漢字の宝庫だったりする。 でも、200×200のPNG画像なので、そのまま文書に貼り付けたりすると、妙に画像っぽくなってしまって醜い。 そこで、アウトライン化してOpenTypeフォントにする方法をここで伝授しようと思う。 ただし、プラットホームはUNIXなのでそのつもりで。
次にPNGをPBMに変換する。 pngtopnmが手頃だろう。 もちろん変換結果のファイル名は「CID+UCS.pbm」の形にしておく。 ここでは「3519+6D5C.pbm」だ。
それからpotraceを使って、PBMをアウトライン化する。 アウトラインはEPSの形で得られるので、ファイル名は「CID+UCS.eps」の形にしておく。 ここでは「3519+6D5C.eps」だ。
最後にeps2otfを使って、OpenTypeフォントを作る。 eps2otfは、EPS中のアウトラインをType 2 Charstringに変換し、それをまとめてCompact Font Formatに押し込めたものを、さらにOpenTypeフォント化するというスグレモノだが、内部からgsを呼んでいるので注意が必要だ。 作り方は「eps2otf -FontName CID+UCS.eps > FontName.otf」でOK。 たとえばフォント名を「Hama」にするなら「eps2otf -Hama 3519+6D5C.eps > Hama.otf」となる。 ちなみに、複数のEPSを1つのOTFにまとめたりもできる。 例として、2004年9月27時点での人名用漢字983字の入ったOTFを作ってみた(元データはここ)ので、試してみてほしい。
できあがったOTFをどう使うかだが、TeXからならOTFパッケージとdvipdfmxの組み合わせで、PDFに埋め込むのがオシャレだろう。 この例でいけば、TeXのソース中には「\CID{3519}」と書いておけばOK。 それから
otf-cjmr-h Identity-H Hama.otfの1行をたとえば「mymap.map」ってファイルに書いておけば、あとは「dvipdfmx -f mymap.map dviファイル」で、フォントを埋め込んだPDFが得られるはずだ(ただしdvipdfmxは20031228以降のバージョンを使うこと)。 ぜひチャレンジしてほしい。