indexfont
 インデックスフォントの為のPUA拡張形式(IFexコード)
解  説
はじめに

インデックスフォントとは、新聞・出版・印刷・ビジネスフォーム・官公庁の業務等に共通に 使用できることを目標に収集された文字集合と、その具体的な利用方法の総称です。

インデックスフォントの概念に沿って作られたフォントをインデックスグリフ対応フォントと呼びます。 (次項の「インデックスフォントの階層構造」を参照してください。)

インデックスグリフ対応フォントをコンピュータで処理・表示するには
インデックスグリフ対応フォントについて
     ・コンピュータ上での表現形式
     ・OSへのフォントファイルの組み込み方法
     ・プログラムインタフェース
などを定める必要があります。

これらの全体をIFex方式と呼んでいますが、本資料はこれらの内
     ・コンピュータ上での表現形式
について解説しています。


インデックスフォントの階層構造



IFexコードとは

インデックスグリフセットの各文字を識別するインデックスグリフ番号の、 Unicodeにおける表現形式を、IFexコードと呼ぶ。

UnicodeのPrivate Use Area(以降PUAと略す) 上に定めた 拡張形式を用いてIFexコードは定義されている。

PUAには6400コードポジションしかないが、IFexコードではPUAの 拡張形式を用いることで最大100万字のインデックスフォントを 表現可能としている。

IFexコードの構成

BMPの通常の文字(U+0000〜 U+9FFF など)は1コードポイント (16ビット)でひとつの文字を表すのに対し、
IFex方式ではインデックスグリフ対応フォントの1文字を下記の2コードポイント (32ビット)で表現する。



プレーンコード/字形コードの領域

プレーンコード/字形コードのコード範囲はPUA内に定義する。

注意:IFex拡張コードはPUAの6400コードポジションの内、5640コードポジションを消費しますが、 他の利用目的との衝突が問題になる範囲は、実質的に192ポジションとなります。
(後述の「PUAの使用領域の衝突について」を参照してください。)


IFexコードによるデータ表現例



PUAの使用領域の衝突について

字形コードには必ずプレーンコードが先行しているので、仮にIFex字形指定領域を別の目的で使用していて 定義の衝突が起きていても、アプリケーションプログラムはそれぞれを分離して認識することは可能である。
しかし、IFexプレーン指定領域については、この領域を他の目的で使用していた場合、 アプリケーションプログラムはそれぞれを分離して認識することはできない。
これを図で説明すると