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 名稱。 例如:
fonts 4 R I B S
codeset codesetName 特定印表機或類型器的字碼集,其中 CodesetName 是與 iconv 指令搭配使用的有效字碼集名稱。 指定的字碼集是用來在字型說明檔的字集區段中定義字元登錄。 例如:
codeset ISO8859-1

troff 指令會使用指定的 CodesetName 及現行語言環境隱含的字碼集,以判定輸入字元是否需要字碼集轉換。 必要的話, iconv 函數可用來執行字碼集轉換。

字集 檔案中的最後一個關鍵字本身在一行上。 後面是此裝置的特殊字元名稱清單。 名稱以空格或換行區隔。 清單可以視需要的時間而定。 字型說明檔中不容許不在此清單中的名稱。
霍爾 數字 水平移動的最小單位。
弗特 數字 垂直運動的最小單位。

霍爾弗特 線條以水平和垂直方向說明運動之間的關係。 例如,如果裝置以單一基本增量雙向移動,則 霍爾弗特 兩行都具有值 1。 如果垂直運動僅以兩個基本單元的倍數發生,而水平運動僅以一個基本單元發生,則 弗特 為 2 且 霍爾 為 1。

對於 Phototypesetter 支援的每一種字型,也有一個 ASCII 檔案與說明它的字型 (例如 RCW) 同名。 字型說明檔的格式如下:

項目 說明
姓名 字型的名稱,例如 RCW
內部名稱 姓名 字型的內部名稱。
特殊 設定旗標,指出字型是特殊的。
連字 名稱 ...0 設定旗標,指出字型具有連字。 連字清單如下,並以 0 (零) 結束。 接受的連字為 菲菲菲菲
spacewidth 數字 如果需要預設值 (em 空間的 1/3) 以外的項目,則指定空間的寬度。
字集 字集必須在結尾。 字集 單字後面的每一行都會說明字型中的一個字元。 每一行都有兩種格式之一:
Name Width Kerning Code

Name "
 

其中,Name欄位是單位元組字元或在 DESC 檔案中找到的清單中的特殊字元名稱。 Width欄位為基本增量。 Kerning欄位為 1 (如果字元下降到行下方) , 2 (如果它上升到字母上方)`a',以及 3 (如果它同時上升和下降)。 Code欄位是傳送至排字器以產生字元的數字。 若為 nls 字型,Code欄位可以是多位元組序列。

對於延伸字元輸出裝置的字型,Code欄位可以是以雙引號開頭和結尾的多位元組序列。 在序列中,控制或非列印字元可以由下列 ESC 序列表示:

\n 產生新行。
\r 產生退貨。
\t 產生標籤。
\b 產生倒退鍵。
\" 產生雙引號。
\xdd 產生十六進位數,其中dd是兩個十六進位數字。
\ooo 產生八進位數字,其中ooo是三個八進位數字。

第二種格式Name ",用來顯示字元有多個名稱。 雙引號指出此名稱具有與前一行相同的值。 KerningCode欄位的值不被使用。Width欄位是雙引號。 此清單中不同字元的總數不應大於 DESC 檔案中 biggestfont 行的值。

DESC.outFont.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 的字型說明檔。