troff 字型檔案格式
用途
指定 特羅夫 指令的說明檔。
說明
對於 特羅夫 指令支援且系統上可用的每一個 Phototypesetter ,有一個目錄包含說明 Phototypesetter 及其字型的檔案。 此目錄命名為 /usr/lib/font/devName,其中 Name 變數指定光排類型的名稱。
troff 指令來源目錄內 /usr/lib/font/devName 目錄中的 ASCII DESC 檔案說明 Name 變數指定的光排類型器性質。 此檔案的二進位版本位於 /usr/lib/font/devName/DESC.out 檔案中。 這個 ASCII 檔案的每一行都以識別性質的單字開頭,後面接著適當的指定元。 系統不處理空白行及以 # (井號) 開頭的行。
對於許多類型設計器,一般會支援下載的字型。 這些字型的點陣圖儲存在 /usr/lib/font/devName/bitmaps 目錄中。 每一個字型大小配對都儲存在名稱格式為 Fontname-Size。峰的檔案中。 例如:
B-24.pk
這些點陣圖以 TeX 及其後處理器所使用的 PK 壓縮字型格式儲存。 這些點陣圖是容易產生的易於使用的形式,例如 METAFont ,或容易從其他形式轉換。
除了點陣圖檔之外,每一個字型字體還需要 特羅夫 字型檔 (如這裡所述)。 在此檔案的 unitwidth 欄位中,會提供裝置單位中每一個字元點陣圖的寬度。
DESC 檔案的合法行如下:
項目 | 說明 |
---|---|
雷斯 數字 | 裝置解析度,以每英吋基本增量為單位。 |
unitwidth 數字 | 字型說明檔中所有寬度表格的點大小。 特羅夫 指令會自動將寬度從 unitwidth 大小調整為其運作的點大小。 |
錫澤斯卡萊 數字 | 小數點大小的調整。 數字 變數的值為 1。 目前未使用 錫澤斯卡萊 行。 |
平幅 數字 | 紙張寬度 (以基本增量為單位)。 |
紙長 數字 | 紙張長度 (以基本增量為單位)。 |
biggestfont 數字 | 字型中的字元數上限。 |
大小 Number1 Number2... | 在類型設定器上可用的點大小清單,以 0 結束。 |
字型 NumberName... | 起始字型數目,後面接著字型的 ASCII 名稱。 例如:
|
codeset codesetName | 特定印表機或類型器的字碼集,其中 CodesetName 是與 iconv 指令搭配使用的有效字碼集名稱。 指定的字碼集是用來在字型說明檔的字集區段中定義字元登錄。 例如:
troff 指令會使用指定的 CodesetName 及現行語言環境隱含的字碼集,以判定輸入字元是否需要字碼集轉換。 必要的話, iconv 函數可用來執行字碼集轉換。 |
字集 | 檔案中的最後一個關鍵字本身在一行上。 後面是此裝置的特殊字元名稱清單。 名稱以空格或換行區隔。 清單可以視需要的時間而定。 字型說明檔中不容許不在此清單中的名稱。 |
霍爾 數字 | 水平移動的最小單位。 |
弗特 數字 | 垂直運動的最小單位。 霍爾 和 弗特 線條以水平和垂直方向說明運動之間的關係。 例如,如果裝置以單一基本增量雙向移動,則 霍爾 和 弗特 兩行都具有值 1。 如果垂直運動僅以兩個基本單元的倍數發生,而水平運動僅以一個基本單元發生,則 弗特 為 2 且 霍爾 為 1。 |
對於 Phototypesetter 支援的每一種字型,也有一個 ASCII 檔案與說明它的字型 (例如 R、 我、 CW) 同名。 字型說明檔的格式如下:
項目 | 說明 |
---|---|
名 姓名 | 字型的名稱,例如 R 或 CW。 |
內部名稱 姓名 | 字型的內部名稱。 |
特殊 | 設定旗標,指出字型是特殊的。 |
連字 名稱 ...0 | 設定旗標,指出字型具有連字。 連字清單如下,並以 0 (零) 結束。 接受的連字為 菲菲菲菲。 |
spacewidth 數字 | 如果需要預設值 (em 空間的 1/3) 以外的項目,則指定空間的寬度。 |
字集 | 字集必須在結尾。 字集 單字後面的每一行都會說明字型中的一個字元。 每一行都有兩種格式之一:
或
其中,Name欄位是單位元組字元或在 DESC 檔案中找到的清單中的特殊字元名稱。 Width欄位為基本增量。 Kerning欄位為 1 (如果字元下降到行下方) , 2 (如果它上升到字母上方)`a',以及 3 (如果它同時上升和下降)。 Code欄位是傳送至排字器以產生字元的數字。 若為 nls 字型,Code欄位可以是多位元組序列。 對於延伸字元輸出裝置的字型,Code欄位可以是以雙引號開頭和結尾的多位元組序列。 在序列中,控制或非列印字元可以由下列 ESC 序列表示: |
\n | 產生新行。 |
\r | 產生退貨。 |
\t | 產生標籤。 |
\b | 產生倒退鍵。 |
\" | 產生雙引號。 |
\xdd | 產生十六進位數,其中dd是兩個十六進位數字。 |
\ooo | 產生八進位數字,其中ooo是三個八進位數字。 第二種格式Name ",用來顯示字元有多個名稱。 雙引號指出此名稱具有與前一行相同的值。 Kerning和Code欄位的值不被使用。Width欄位是雙引號。 此清單中不同字元的總數不應大於 DESC 檔案中 biggestfont 行的值。 |
DESC.out 和 Font.out 檔案是由於在 DESC 檔案上執行 makedev 程式而建立的。
字型表格的字符集區段會提供原型字元,以用於大型字集的字型。 大部分大字集中的字元 (例如日文、中文及韓文字集) 具有相同的寬度。 這些原型字元指定具有可變位元組長度的字元寬度。 原型字元登錄無法使用 kerning 和 code 欄位。 這些項目適用於未在字集區段中明確定義的所有字元。 假設透過原型字元處理之字元的印表機或類型碼與 iconv 函數轉換後字元的輸入碼相同。 下列是原型字元定義:
項目 | 說明 | |
---|---|---|
X0 | 寬度 | 針對 csid ()傳回值 0 的所有字元寬度。 |
X1 | 寬度 | 未在其他位置定義所有 1 位元組字元的寬度。 |
X1 | 寬度 | 針對 csid ()傳回值 1 的所有字元寬度。 |
X2 | 寬度 | 未在其他位置定義所有 2 位元組字元的寬度。 |
X我 | 寬度 | 針對 csid ()傳回值 我 的所有字元寬度。 |
X3 | 寬度 | 未在其他位置定義所有 3 位元組字元的寬度。 |
X4 | 寬度 | 未在其他位置定義所有 4 位元組字元的寬度。 |
例如,下列原型字元定義適用於日文字集 ( IBM-932 及 IBM-eucJP):
X0 : alphanumeric characters
X1 : JIS level 1 and 2 Kanji characters in JISX0208.1990
X2 : Katakana characters
X3 : IBM selected characters
檔案
項目 | 說明 |
---|---|
/usr/lib/font/dev名稱/DESC.out 檔案 | 包含 姓名 變數指定之 Phototypesetter 的說明檔。 |
/usr/lib/font/devName/bitmaps 目錄 | 包含點陣圖檔。 |
/usr/lib/font/dev名稱/Font.out 檔案 | 包含 姓名 變數指定之 Phototypesetter 的字型說明檔。 |