Unicode 字體描述

由於單一 Unicode 字體有龐大的字元集,所以它能支援所有的語言與平台。Unicode 造型定義檔與常規的造型定義檔的格式和語法幾乎完全一樣。

主要的差異在字體表頭的語法,如下列定義碼所示:

*UNIFONT,6,font-name
above,below,modes,encoding,type,0 

font-name above below modes 參數與常規字體的參數相同。其餘兩個參數的定義如下:

encoding

字體編碼。採用下列其中一個整數值:

0 Unicode

1 壓縮的多位元組 1

2 造型檔

類型

字體嵌入資訊。指出字體是否已獲得授權。已獲得授權的字體不得修改或交換。位元碼值可以相加。

0 可嵌入的字體

1 無法嵌入的字體

2 嵌入的字體為唯讀

另一個重要差異是對字碼 7 子造型參考的處理。如果造型描述包括字碼 7 子造型參考,則字碼 7 後面的資料便會被解釋為雙位元組值。這會影響造型描述標頭中的資料位元組總數 ( defbytes )。例如,在 romans.shp 檔中可以找到以下造型描述:

*00080,4,keuroRef
7,020AC,0

標頭中的第二個功能變數表示造型描述中的位元組總數。如果您不習慣使用 Unicode 字體描述,那您可能會使用三個位元組而非四個位元組,但這樣會造成編譯 SHP 檔時出錯。即使您所參考的造型號碼不在兩個位元組範圍內 (255 以下),這種情況也會發生;編譯器一律為該值使用兩個位元組,所以您必須在標頭中對此進行說明。

Unifont 造型定義與常規造型定義之間還有一個不同點,就是造型號碼。程式所提供的 Unifont 造型定義是使用十六進位造型號碼,而不是十進位值。儘管十六進位的數字不是必需的,使用十六進位的數字會令使用 \U+ 控制字元值交叉參考造型號碼變得簡易。