omuronの備忘録

個人的な備忘録

IPA の異体字を試してみる

今日4月10日はフォントの日です。 フォントの日なので、フォント関連の話題にしたいと思います。

ちょっと前に IPAが無償で提供している文字の検索システムがなかなかイケていると話題に という記事がバズってました。 関連する文字の異体字一覧を表示する機能がイケてるのですが、実際にこの文字をどうやって表示するのかを試したいと思います。

異体字とは?

Wikipediaの字体#異体字より

同一の文字観念を有する複数の字体

この考え方は、文字コード(符号化文字集合)における 包摂) という考え方です。 限りある資源であるコード領域に、文字を詰め込むために「似ている字は同じコードで扱ってしまえ」という仕組みです。

f:id:omron:20200410173329p:plain
文字情報基盤データベース より引用

という文字には、一点しんにょうと二点しんにょうがあるのがわかります。 どちらも ですが、2種類の字形があり異体字という関係になります。

ブラウザで表示してみる

ブラウザで表示する場合、直接入力する以外にも文字コードで指定することができます。 ユニコードで指定する場合は、 対応するUCS 列の1行目のコードを利用します。

    <p>辺 ←  そのまま入力</p>
    <p>&#x8FBA; ← コードで入力</p>

f:id:omron:20200410181908p:plain
描画結果は同じ。

このときに、一点しんにょうと二点しんにょうのどちらが表示されるかはフォント依存になります。 フォントを変えることにより、一点しんにょうが二点しんにょうに変わったりするのは、包摂を認めているためになります。

異体字を表示する

明示的に違う異体字を表示する場合には、 対応するUCS 列の2行目のコードを利用すると可能です。 先程のユニコードの値に、異体字セレクタとよばれるコードも付与することで切り替えれます。

    <p>&#x8FBA;&#xE0101; ←  E0101を追加</p> 
    <p>&#x8FBA;&#xE0102; ←  E0102を追加</p> 

f:id:omron:20200410181948p:plain
異体字指定

一点しんにょうが二点しんにょうの字形を出せ分けることができました。 ただし、この異体字セレクタもいくつか規格があるため、フォントがどの規格に依存しているかにより、思った通り動かなかったりします。

異体字の規格

この IPA のサイトで表示される異体字のコードは、Hanyo-Denshi という規格に則ってます。 DTP などでよく使われる Adobe-Japan1 とは異なります。 そのため、サイト内の情報で異体字をして指定しても、異なる結果となってしまいます。

f:id:omron:20200410182417p:plain
macOS 標準フォントだと切り替わらない

詳しくは IVD/IVSとは を確認ください。

所感

IPA のサイトはよくできていて、包摂字形を確認できるのですが、その字形を出力しようとすると Hanyo-Denshi に則ったフォントが必要です。この規格のフォントは、IPA でしか見たことがないので IPAmj明朝フォント をダウンロードして試さないと、サイトで表示された字形がでません。 国の機関なので理由はわかるのですが、よくできているサイトなので Adobe の規格にも沿った IVS コードが見れると便利なのになーと思いました。

最後に の関連字形でもある 邊󠄏異体字を表示して終わりにしたいと思います。違いはわかりますか?

f:id:omron:20200410183056p:plain
違いを探そう