拡張ビッグフォント ファイルを定義することにより、合成漢字文字を使用して文字データのサイズを小さくすることができます。拡張ビッグフォントは、サブシェイプ コードを使用します。サブシェイプ コードの直後には 0(ゼロ)が続きます。
拡張ビッグフォント ファイルの最初の行は、通常のビッグフォント ファイルと同じです。次に、ファイルのそれ以降の行の形式を示します。
*0,5,font-name character-height, 0, modes, character-width,0 . . . *shape-number,defbytes,shape-name . code,0,primitive#,basepoint-x,basepoint-y,width,height, . . code,0,primitive#,basepoint-x,basepoint-y,width,height, . terminator
次に、ビッグフォント定義ファイルの各フィールドについて説明します。
文字幅とともに使用し、フォント文字を定義する単位数を指定します。
文字高さとともに使用し、フォント文字を定義する単位数を指定します。文字高さと文字幅の値は、フォントの部首の尺度を変更するために使用します。この場合の部首とは、2D 空間に幾何学的に配置されるフォントの点、線、ポリゴン、文字列です。漢字はいくつかの部首で構成され、部首はさまざまな尺度や組み合わせで繰り返し使用されます。
モード バイトは、横書きのフォントの場合は 0(ゼロ)を、両方向(横書き、縦書き)フォントの場合は 2 を指定します。特殊コマンド コード 00E(14)は、 モード が 2 に設定されているときにのみ適用されます。
文字コードです。
バイト サイズです。常に 2 バイトで、16 進コードか、10 進コードと 16 進コードの組み合わせで構成されます。
文字の名前です。
シェイプ記述の特殊コードです。サブシェイプ機能を利用できるよう、常に 7 を指定します。
サブシェイプ番号の参照です。常に 2 バイトです。
部首の原点 X です。
部首の原点 Y です。
部首の幅の尺度です。
部首の高さの尺度です。
シェイプ定義の EOF(ファイル終端)記号で、常に 0(ゼロ)を指定します。
尺度係数を算出するために、プログラムは部首を 1 描画単位にスケール ダウンしてから、それに高さと幅を掛けて文字のシェイプを取得します。ビッグフォント シェイプ定義ファイルの文字コード(シェイプ番号)には、最大 65535 までの値を指定できます。次の表は、拡張ビッグフォント ファイルの各フィールドについてまとめたものです。
拡張ビッグ フォント ファイルのフィールド |
|||
---|---|---|---|
フィールド |
値 |
バイト数 |
説 明 |
シェイプ番号 |
xxxx |
2 バイト |
文字コード |
コード |
7,0 |
2 バイト |
拡張フォントの定義 |
部首番号 |
xxxx |
2 バイト |
サブシェイプ番号の参照 |
基点 X |
1 バイト |
部首の原点 X |
|
基点 Y |
1 バイト |
部首の原点 Y |
|
幅 |
1 バイト |
部首の幅の尺度 |
|
高さ |
1 バイト |
部首の高さの尺度 |
|
終止記号 |
0 |
1 バイト |
シェイプ定義の終了 |
次の図は、漢字文字など拡張ビッグフォントをデザインするときに使用できる 16 × 16 ドット マトリックスの例です。この例では、各ドット間の距離は 1 単位です。引出線で示された正方形は 1 平方単位を表しています。
漢字文字の正方形マトリックス
次の図は、漢字文字の例です。各文字は、前の図の場合と同様に、M × N マトリックスの領域に作成されます(マトリックスは正方形である必要はありません)。 各図の上に示している番号は、対応するシェイプ番号です。
漢字文字の例
次の図は、漢字の部首の例です。
漢字の部首の例
*BIGFONT 50,1,080,09e *0,5,Extended Font 15,0,2,15,0 *08D91,31,unspecified 2,0e,8,-7,-15, 7,0,08cfb,0,0,16,16,7,0,08bca,2,3,12,9, 2,8,18,0,2,0e,8,-11,-3,0 *08CD8,31,unspecified 2,0e,8,-7,-15, 7,0,08be0,0,0,8,16,7,0,08cc3,8,0,8,16, 2,8,18,0,2,0e,8,-11,-3,0 *08ADF,31,unspecified 2,0e,8,-7,-15, 7,0,089a4,0,0,8,16,7,0,08cb3,8,0,8,16, 2,8,18,0,2,0e,8,-11,-3,0 *08CE8,39,unspecified 2,0e,8,-7,-15, 7,0,089a4,0,1,5,14,7,0,08cc3,5,2,5,14,7,0,08c8e,9,0,7, 16,2,8,18,0,2,0e,8,-11,-3,0 *089A4,39,primitive 2,0e,8,-7,-15,2,8,1,14,1,0c0, 2,8,-11,-6,1,0a0,2,8,-12,-7,1, 0e0,2,8,-7,13,1,0dc,2,8,11,-1, 2,0e,8,-11,-3,0 *08BCA,41,primitive 2,0e,8,-7,-15,2,8,1,14,1,0c0, 2,8,-11,-6,1,0a0,2,8,-12,-8,1, 0e0,2,0e5,1,0ec,2,063,1,8, 2,-3,2,06f,2,0e,8,-11,-3,0 *08BE0,81,primitive 2,0e,8,-7,-15,2,8,3,9,1,080, 2,8,-10,-4,1,0c0,2,8,-13,-5,1, 0e0,2,8,-7,9,1,09c,2,8,-1,14, 1,8,-6,-5,2,8,8,5,1,8,6,-5, 2,8,-11,-6,1,8,1,-3,2,8,7,3, 1,8,-1,-3,2,8,-3,15,1,01a,2, 012,1,01e,2,8,10,-14,2,0e,8, -11,-3,0 *08C8E,44,primitive 2,0e,8,-7,-15,2,8,3,15,1,090,0fc,038, 2,8,-6,11,1,090,2,8,-9,-5,1, 090,2,096,1,0ac,8,-1,-3,01a,01a,2,8, 18,0,2,0e,8,-11,-3,0 *08CB3,61,primitive 2,0e,8,-7,-15,2,042,1,02b,02a,018,2, 0d0,1,012,034,2,069,1,01e,040,2,8, -8,6,1,02b,2,8,4,5,1,08c,2,8, -3,8,1,03c,2,8,-5,3,1,0e0,2,8, -12,5,1,0a0,2,8,6,-14,2,0e,8, -11,-3,0 *08CC3,34,primitive 2,0e,8,-7,-15,2,0c1,1,06c,0a8,064,0a0,2,8, -5,9,1,09c,2,8,-7,5,1,0e0,2,8, 4,-11,2,0e,8,-11,-3,0 *08CFB,22,primitive 2,0e,8,-7,-15,2,0d2,1,0cc,0c8,0c4,0c0,2,8, 5,-13,2,0e,8,-11,-3,0