關於定義延伸大字體檔

為減小複合日文漢字字元的大小,您可以定義延伸大字體檔。延伸式大字體使用次造型碼,其後緊跟著一個 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

大字體定義檔各功能變數的描述如下:

character height

與字元寬度一起使用,用來指出定義字體字元的單位數目。

character width

與字元高度一起使用,用來指出定義字體字元的單位數目。character-heightcharacter-width 的值用於調整字體中字根的比例。這裡所說的字根,是指在 2D 空間中依幾何方式定位之字體的點、線、多邊形與字元字串。日文漢字字元是以不同比例、不同組合方式重複使用數個字根而構成的。

modes

水平方位字體的 modes 位元組應為 0;雙方位 (水平或垂直) 字體的應為 2。特殊指令碼 00E (14) 僅在 modes 設為 2 時使用。

shape-number

字元碼。

defbytes

位元組數目。恆為 2 個位元組,可能只由十六進位碼組成,也可能由十進位碼與十六進位碼兩者組合而成。

shape-name

字元名稱。

code

造型描述特殊碼,恆為 7,因此它可以使用子造型功能。

primitive#

子造型號碼參考,它永遠為 2 個位元組。

basepoint-x

字根原點的 X 值。

basepoint-y

字根原點的 Y 值。

width

字根寬度比例。

height

字根高度比例。

terminator

造型定義的檔案結尾指標,它永遠為 0。

為發揮比例係數的功用,程式將字根比例縮小成一平方單位,然後再乘以高度與寬度,以取得字元造型。大字體造型定義檔中的字元碼 (造型號碼) 的值最多可達 65535。下表描述延伸大字體檔中的各功能變數。

延伸大字體檔的功能變數

變數

位元組數

描述

shape-number

xxxx

2 個位元組

字元碼

code

7,0

2 個位元組

延伸字體定義

primitive#

xxxx

2 個位元組

子造型號碼參考

basepoint-x

1 個位元組

字根原點的 X

basepoint-y

1 個位元組

字根原點的 Y

width

1 個位元組

字根寬度比例

height

1 個位元組

字根高度比例

terminator

0

1 個位元組

造型定義結尾

下圖是 16 X 16 點矩陣圖的範例,您可以使用該圖設計延伸的大字體,如日文漢字字元。在本範例中,點間距為一個單位。圖說指向一平方單位。

用於日文漢字字元的方形矩陣

下圖展示日文漢字字元範例。與前一張圖類似,每個字元均佔用一個 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