連載
» 2011年12月07日 00時00分 UPDATE

OSS界のちょっと気になる話(1):どんな人名も正しく表示? IPAの新フォントを試そう! (1/2)

今日から始まるこの連載では、月に1回のペースで近ごろ注目を集めているOSS関連の話題の中から筆者が気になるものを紹介し、技術的背景を解説していこうと思う。連載初回となる今回は、2011年10月26日にIPA(独立行政法人情報処理推進機構)が提供を始めた「≪IPAmj明朝フォント≫」に焦点を当てたい。(編集部)

[後藤大地,オングス]

収録字数は6万字

 「IPAmj明朝フォント」は、2011年10月26日にIPA(独立行政法人情報処理推進機構)が提供を始めたもので、人名に使う漢字を強化ポイントとして、約6万字の漢字を収録したものだ。同じくIPAが提供している「IPAex明朝フォント」のデザインを踏襲しつつ、次の漢字に対応している。

  • 戸籍統一文字(5万5267字)
  • 住民基本台帳ネットワーク統一文字(1万9432字)
  • JIS漢字コード(1万50字)
  • 常用漢字(2136字)

 それぞれの重複している部分を除くと、全部で6万字程度になる。IPAmj明朝フォントのバージョン001.01は、6万718個ものグリフを持っている。フォントフォーマットはOpen Type。符号化はISO/IEC 10646に準拠している。

 デザインのベースとなっているIPAex明朝フォントのグリフ数は1万2218個だ(バージョン001.03)。JIS漢字コードの数を考えると、一般的なPCで利用できる日本語フォントのグリフ数はこれくらいの数になる。しかし、この程度の数のグリフでは、日本人の名前を正確に表現するには足りない。

 「IPAmj明朝フォント」のグリフ数は6万718個とかなり多い。そのために、Unicodeに4200個ほどの異体字を「汎用電子コレクション」として登録し、フォント内に異体字データを持っている。異体字については後ほど解説する。

 異体字に対応したOSや、異体字に対応したアプリケーションがまだ多くないので、今のところはIPAmj明朝フォントの便利さを実感することは少ないだろう。しかし、少なくとも行政機関では標準となる可能性が高いフォントだ。アプリケーション開発者は早めに扱い方を理解しておきたい。

 IPAmj明朝フォントは、IPAフォントライセンスv1.0というオープンソースライセンスで提供されており、私たち一般人も利用できるという点も注目に値する。これまで人名などを扱うシステムの開発では、外字を利用せざるを得ないことが多かった。今後「IPAmj明朝フォント」は、業務システムにおける標準フォントとなり得る。

 共通基盤としての整備、Unicodeでの規格化、フォントの開発などかなり大掛かりな取り組みから生まれた成果だが、利用できる環境がまだ限られているためか、このフォントが持つ本来の価値を理解している人が少ないように思う。筆者に言わせてもらえれば、これは大いに注目すべき取り組みだ。今回はこの「IPAmj明朝フォント」の可能性について考える。

行政機関向けフォントとして開発された

 行政機関ではこれまで、PCに標準でインストールされている日本語フォントで表現できない文字には、「外字」を作成することで対応していた。しかし、外字の作成や管理といった作業はかなり面倒だ。

 この問題を解決すべく、IPAが経済産業省委託事業として「文字情報基盤構築に関する研究開発事業」を企画。行政機関の情報システムにおける人名等の取り扱いに関する議論や、共通基盤として利用可能な文字フォントの開発などが続いていた。

 「IPAmj明朝フォント」はその取り組みの成果物である。戸籍統一文字、住民基本台帳ネットワークシステム統一文字との対応関係などを検証したフォントだ。行政機関において共通で使用できるフォントが誕生したということだ。

異体字を実現する - 異体字セレクタ

 日本語の漢字には形はよく似ているが、ちょっとだけ違うというものが多くある。これが異体字だ。例としてよく挙がるのが、渡邉の「邉」や、斉藤の「斉」の字だ。「ワタナベ」という名前の「ナベ」の字を口頭で説明するときに、「難しい方のナベです」と言うこともあると思うが、「難しい方のナベ」には数多くの異体字がある。日本語、特に人名で使う漢字には、1つの漢字を表現するグリフが複数あるということは珍しくない。

 Unicodeは同じ読み、意味を持つ漢字をいくつも定義しているわけではなく、個々の異体字の「形」は定めていない。このため、日本人の人名のようにいくつもの異なる「形」がある場合は、Unicodeでは対応が難しかった。そもそも定義できる文字の数が少ないJIS漢字コードではまったく対応できない。そのため外字を使ってきたわけだ。

 Unicodeはこうした問題に対処するために「異体字セレクタ」という機能を採り入れた。今回Unicodeに取り込まれた異体字である、汎用電子コレクションがIPAmj明朝フォントで使われている。なお、数は少ないが、異体字データはIPAex明朝フォントにも含まれている。

 Unicodeでは異体字を「ベースキャラクタ+異体字セレクタ」という形式で表現する。異体字セレクタには「U+E0100」「U+E0101」「U+E0102」などのコードが割り当てられている。例えば「邉」はUnicodeでは「U+9089」。「邉」の異体字は「U+9089 U+E010F」「U+9089 U+E0110」「U+9089 U+E0111」といった形で表現する。異体字セレクタに対応していない環境では、異体字セレクタは無視されて表示されないか、または単なる矩形(いわゆる「豆腐文字」)が表示される。

 「IPAmj明朝フォント」は、異体字セレクタを活用してさまざまな漢字を収録している。これまでは外字を使うなどしなければ表現が難しかったグリフも、標準化された機能を使って利用できるのだ。

OSやソフトウェアの対応も始まっている

 今のところ異字体セレクタに対応したOSやソフトウェアはあまり多くない。OSならWindows 7Mac OS X Snow Leopard以降が異体字セレクタを含むUnicodeに対応している。Windows 7であればメモ帳やInternet Explorerで異体字を表示できる。

 Windows 7であれば異体字セレクタの入力も難しくない。Microsoft IMEの「IMEパッド」を使って入力できるのだ。まず、ベースとなる文字を入力したらIMEパッドを起動し、左から順に「文字一覧」「Unicode(追加漢字面)」「バリエーション セレクター補助」を選択していく。ここで対象の異体字セレクタを入力すれば良い(図1)。

図1 Microsoft IMEのIMEパッドで異体字セレクタを入力。クリックすると拡大 図1 Microsoft IMEのIMEパッドで異体字セレクタを入力。クリックすると拡大

 設定が整っていれば、異体字セレクタを入力して[Enter]キーを押すと、表示中のフォントのグリフが切り替わる。なお、メモ帳で使用するフォントを初期設定から「IPAmj明朝フォント」に切り替えておく必要がある。

 ほかにはFirefoxのバージョン4以降Emacs 23などが異字体セレクタに対応している。異字体セレクタに対応していないプログラミング言語では、文字列の比較などの場面で開発者が想定しない動きを見せる。データ用のフォントとして異体字セレクタを利用しているものを考えているなら、プログラミング言語の対応状況も確認する必要がある。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。