標準で入っていない漢字を使うには

主に名字に使われる漢字でWindowsに標準で入っていない文字を使う方法を調べてみたのでまとめてみました。
「入っていない漢字は外字で作成」が基本と思っていたのですが、最近は便利な機能が搭載されているのに驚きました。

文字情報基盤整備事業

文字情報基盤整備事業
このページを見ると解るのですが、国が戸籍で使われる人名漢字にコードを付けて登録する作業をしています。
「IPAmj明朝フォント」というフォントを公開していて、この中にたいていの文字が登録されています。
詳しい使い方は次のページに載っているので見てもらえば解ります。
住基ネット統一文字コードによる外字の統一について
簡単に言うと、IPAmj明朝フォントをインストールしてMicrosoftOfficeを使いましょう。ということになります。
これで終わりでは面白くないというか、このページを見つけたのはかなり後になってからなので、それまでに試したことを載せておきます。



IPAmj明朝フォントが使えるか試してみました

上記の文字情報基盤整備事業ページではフォントを公開していて、IPAmj明朝フォントに異体字が登録されています。
このフォントを使えば良いのですが、対応していないソフトがあります。
なお、IPAexフォント、IPAフォントというのもありますがこちらには異体字は入っていません。
フォントのインストールはダウンロードしたttfファイルをダブルクリックするとサンプルが表示されるので、上にあるインストールボタンを押せばインストールできます。
Windows7のメモ帳で試してみた画像です
「わたなべ」さんの「邉」「邊」です。きれいに表示されています。
メモ帳でのフォントの指定は、書式→フォント で出るダイアログで変更できます。
文字の拾い出しはIPA MJ文字情報検索システム(簡易版)で検索してコピペしています。



Windows7のワードパッドで試してみた画像です
文字は表示されていますが余計なスペースが入っています。




Kingsoft Writer 2016 で試してみた画像です
表示できません。




外字として登録する方法を考えてみました

最初に思いついたのは外字として登録する方法でした。
Windowsには標準で外字エディタが入っているのでそれで作成するのが基本的な方法です。
これについては調べればいくらでも説明があるので割愛します。

Windowsの外字エディタで作れる文字は64×64ドットなので、拡大すると美しくありません。
アウトラインフォントの外字ファイルもあるみたいですが、作成方法がわかりませんでした。
そこで、通常のTTFファイルの外字領域に文字を登録する方法を考えてみました。

材料
Takao Fonts
Takao Fonts は上記IPAフォントを元にしたフォントとのことです。
明朝体をダウンロードします。
なぜこのフォントを使うのかと言うと、元のフォントが同じなので表示した時に違和感がないだろうと思うからです。
なので他のフォントでもできると思います。

FontForge
FontForge はフリーのフォント作成ソフトです。
Unix/Linux用のソフトなのでWindowsにインストールするのは難しいのですが、
unofficial fontforge-cygwin
このページでWindows用のファイルを公開してくれているのでこれを使います。
この手のソフトはパスが長かったり日本語が入っているとうまく動作しなかったりするのでC:\fontforgeなどというフォルダを作ってそこに解凍します。上でダウンロードしたTakaoMincho.ttfもいっしょに入れておきます。

FontForgeで生成した日本語TrueTypeフォント文字幅広すぎ対策
FontForgeで作成したフォントの文字幅を修正するための方法が書いてあります。
WinTTX 2.4 (behdad forked)
WinTTX 2.4をダウンロードします。
ttx.exeを上で作ったフォルダに入れておきます。

IPA MJ文字情報検索システム(簡易版)
IPAmj明朝フォントに登録されている文字を検索できるサービスです。
ここで目的の文字を探して、SVGファイルをダウンロードします。(時々SVGファイルの無いものがあります)
上と同じフォルダに入れておきます。


作り方
TakaoMincho.ttfをfontforge.batにドラッグ&ドロップするとFontForgeが起動してTakaoMincho.ttfが読み込まれます。
Windowsのユーザ外字領域であるShift_JISの0xF040〜0xF9FCはUnicodeのU+E000〜U+E757に順番に割り当てられています。
この範囲に外字として文字を登録していきます。
例として、U+E000のカラムをダブルクリックすると編集画面が開きます。
メニューのファイル→取り込み...→ダイアログでフォーマットSVGにしてさっきダウンロードしたSVGファイルを開くと文字が表示されます。
編集画面を閉じるとU+E000のカラムに文字が登録されています。
必要な分だけこの操作を繰り返します。

こんな感じになります。SVGファイルの無い文字が2個あったので2個少なくなりました。
メニューのファイル→フォントを出力...で出るダイアログで TrueTypeに設定してTakaoMinchoN.ttfなどと名前を付けて生成を押します。
エラーがある的なメッセージが出ますが無視して生成を押します。TakaoMinchoN.ttfが作成されます。

このままでは文字幅が広いので修正します。
コマンドプロンプトを開いてさっき作成したフォルダに移動します。
ttx.exe -t OS/2 TakaoMinchoN.ttf
と打ち込みます。
TakaoMinchoN.ttx というファイルが作成されます。
メモ帳で開いて、<xAvgCharWidth value="1024"/>に修正します。
TakaoMinchoN1.ttxとか名前を変えて保存します。普通に保存すると拡張子がついてTakaoMinchoN1.ttx.txtとかになるので注意してください。
ファイルの種類をすべてのファイルにしてから保存すれば大丈夫です。
コマンドから
ttx.exe -m TakaoMinchoN.ttf TakaoMinchoN1.ttx
と打ち込みます。TakaoMinchoN1.ttf というファイルが作成されます。

TakaoMinchoN1.ttfをダブルクリックすると、サンプルが表示されます。上にあるインストールボタンを押すとフォントがインストールされます。
これで各ソフトのフォント欄に Takao明朝 が表示されるようになるはずです。


表示テスト
Windows7のワードパッドで試してみた画像です


Kingsoft Writer 2016 で試してみた画像です

外字の入力方法は、IMEパッドを起動して文字一覧を押して文字カテゴリ欄のシフトJISのサブメニューの外字を押すと一覧表示されます。
(Unicodeの私用領域でも表示できます)




おまけ

グリフウィキ(GlyphWiki)
「明朝体の漢字グリフ(漢字字形)を登録・管理し、皆で自由に共有することを目的としたウィキです。」とのことです。
様々な文字(グリフ)が登録されています。SVGファイルのダウンロードもできるので、上の方法で読み込んで登録できます。
また1文字フォント作成という機能もあるので、さしあたって1文字を1回だけ使いたい場合はこの方が便利がもしれません。




















TOPに戻る
2017/7/2