PostScript字型

**PostScript 字型**是由 Adobe Systems 為專業數字排版開發的輪廓字體規範編碼的字體文件。該系統使用 PostScript 文件格式來編碼字型信息。

PostScript 字型也可以單獨用於指代 PostScript 系統中作為標準包括的基本字體集，例如 Times，Helvetica 和 Avant Garde。

## 歷史

Adobe 在 1984 年的 PostScript 頁面描述語言中定義了 Type 1 和 Type 3 字型格式。但在 1985 年 3 月支持 PostScript 的雷射印表機 Apple LaserWriter 面世，它才真正流行起來。在當時，輪廓字型只在印表機中使用，屏幕上依舊用位圖字體（bitmap fonts）。

儘管在最初，Type 1 字型是作為 PostScript 的一部分出現的，其所採用的一組繪製操作要比普通的 PostScript 簡單（和 PDF 相類似，循環和變量等編程特性被移除了），但是增加了渲染提示（hints）以提升低解析度渲染效果。開始的時候，Adobe 並沒有公開渲染提示方案的細節，用一種簡單的加密方案將 Type 1 輪廓數據和渲染提示保護了起來，加密也延續至今（儘管加密方案和密鑰早已被 Adobe 公開）。但這一加密方案很快被業界同行的反向工程所破解。雖然如此，Adobe 仍要求 Type 1 字型技術的使用者需要許可證授權。許可證的要價在當時看來是頗高的，Adobe 的堅守讓價格居高不下。正因如此，蘋果公司於 1991 年決定開發自己的 TrueType 格式。TrueType 一經發布，Adobe 就公開了 Type 1 字型格式的定義和說明。

Type 3 字型支持 PostScript 語言的全部特性，但是沒有標準的渲染提示實現，也沒有加密方案。而 Type 2 字型成為了現代 OpenType 字型格式的基礎之一。

## 技術

字形（glyph）通過 PostScript（PS）語言用三階貝塞爾曲線（TrueType 使用二階貝塞爾曲線）描述，字形因此可以通過簡單的數學變換調整大小，然後被送到 PostScript 印表機中。因為 Type 1 數據描述的是字形的輪廓而不是柵格化的圖像（即位圖），Type 1 字型通常被稱為「輪廓字型」，以和位圖字型（bitmap fonts）相對比。為了滿足需要在屏幕上預覽字體的用戶，利用渲染提示（hints）和抗鋸齒技術可以讓文字顯示效果變得平滑易認。有時也會加入相同字體的位圖版本優化屏幕顯示。Adobe Type Manager 實用程序可以顯示 Type 1 字型。

 

## 字型類型

### Type 0

根據《PostScript 語言參考手冊》（第二版），Type 0 是一個「複合」字體格式。主要用於 OCF 字型（如下述）。

### Type 1

Type 1（也稱為 PostScript Type 1、PS1、T1 或 Adobe Type 1）是用於 Adobe Type Manager 軟體和 PostScript 印表機的單字節數碼字型格式，支持渲染提示信息。最初為 Adobe 的專有規範，但後來 Adobe 將其公開。Mac OS X 和 Windows 2000 及更高版本通過 GDI API 原生支持 Type 1 字體。（但 Windows GDI+、WPF 或 DirectWrite API 不支持）

Adobe 已於 2021 年 1 月 27 日宣布將在 2023 年 1 月之後終止對 Adobe 產品中 Type 1 字體的支持 。Photoshop 中對 Type 1 字體的支持也於 2021 年結束。

### Type 2

Type 2 的本質是一個字符串格式，用於在輪廓字體文件中對字符描述過程進行更為緊湊的表現形式，目的是用在緊湊字體格式（CFF，Compact Font Format）中。它通過使用多參數的運算符、各種預定義的默認值、更有效的編碼值分配、字型間（一個字體家族內）共享子例程，它相較於 Type 1 可以占用更小的空間。 CFF/Type2 格式是 Type 1 OpenType 字體的基礎，所以所謂的 PostScript 或 Type 1 風格 OpenType 字體，亦稱為 OpenType CFF，在 CFF 表中寫入了字形輪廓和渲染提示。從 PDF 文件 1.2 開始，CFF 字體可以嵌入 PDF 文檔。

### Type 3

Type 3 字體（也稱為 PostScript Type 3 或 PS3、T3 或 Adobe Type 3）內含字形使用 PostScript 語言完整定義，而不是子集。 因此，Type 3 字體可以實現一些 Type 1 字體無法實現的效果，例如指定陰影、顏色和填充圖案。 但它不支持渲染提示。Adobe Type Manager 也不支持 Type 3 字體，並且沒有一個版本的 Mac OS 或 Windows 將其作為所見即所得字體進行支持。

### Type 4

Type 4 格式用於製作印表機字體盒的字型以及永久存儲在印表機硬碟上的字型，字符描述以 Type 1 格式表示。Adobe 對這此專有格式沒有公開文檔。

### Type 5

Type 5 類似於 Type 4 格式，用於存儲在 PostScript 印表機 ROM 中的字型，也被稱為 CROM（Compressed ROM）字體。

### Type 14

Type 14，即變色龍字體格式（Chameleon font format），用於在印表機 ROM 等少量存儲空間中能顯示大量字體。其核心集由一個主字體（Master Font）和一組字體描述符組成，這些描述符用來指定如何調整主字體以提供特定字體所需的字符形狀。Adobe 沒有公開 Type 14 格式的文檔。 它於 1997 年隨 PostScript 3 一起推出，後來隨著存儲成本的降低而不再受到重視。

### Type 32

Type 32 用於將位圖字體下載到版本號為 2016 或更高版本的 PostScript 解釋器。位圖字符直接傳輸到解釋器的字體緩存中，由此節省印表機內存空間。

### Type 42

Type 42 字體格式是針對 TrueType 字體的一個包裝器（wrapper），通過在 PostScript 的印表機中加入 TrueType 光柵化器（在 PostScript 解釋器版本 2010，最初只是選配功能，後來成為標準配備）讓其可以列印 TrueType 字體。 PostScript 的 2015 版中添加了對多字節中日韓 TrueType 字體的支持。之所以不按順序突然選用數字 42，據說是引用了《銀河系漫遊指南》中的玩笑。

## 文件格式

### OCF

OCF 即 Original Composite Font，是支持雙字節文種（比如中文、日文）的字體格式之一，這也是最早能支持東亞文字的 PostScript 字體。由於 Type 1 僅支持單字節（256 字），所以 OCF 通過將多個 Type 1 字體數據按照一定形式連接起來封裝成一個字體，用來支持雙字節（最多可存放 65,536 字），其輪廓信息表現方式和 Type1 字體相同一樣。由於一個字型要四個文件，所謂「複合」（composite）構造很複雜，不能用於 Mac OS X，柵格化費時、不能被輪廓化，也不能嵌入 PDF 文件。

### CID 字型

**CID 鍵字型**（亦稱 CID 字型、CID 基礎字型，CID-keyed font, CID font, CID-based font；其中 CID 是 Character Identifier Font 的縮寫，即「字符標識符字體」）原本是為 PostScript 開發的字體格式，設計用於製作字形數量龐大的字型。CID 字型開發用於支持東亞文字集。支持異體字、可以 PDF 嵌入，也可包含字偶距信息。先對各個文種的字形賦予 CID 編號，再映射到各個文種的編碼，這個映射關係存儲在 CMap（Character Map）數據文件中。一個字體文件里可以有多個 CMap 的映射，因此支持「字形與碼位」之間一對多、多對一的複雜關係。具體分為 sfn-CID 和 Naked-CID 兩種。與 CID 等同的結構被 TrueType、OpenType 繼承下來，但改稱為 GID（Glyph ID）。

### CFF

**緊湊字型格式**（Compact Font Format，亦稱為 Type 2 字型格式，或 CFF/Type2 字型格式）是使用了 Type 2 字符串、對 Type 1 無損壓縮的一種字型格式。通過使用多參數的運算符、各種預定義的默認值、更有效的編碼值分配、字型間（一個字體家族內）共享子例程，它相較於 Type 1 可以占用更小的空間。Type 1 字體可以無損地轉換為 CFF/Type 2 字型，反之亦然。

### Multiple Master

### OpenType

## 參考文獻

## 外部連結

### 字型格式定義

* Adobe Type 1 Font Format (PDF: 445 KB)（頁面存檔備份，存於網際網路檔案館）
* Adobe Technical Note #5015: Type 1 Font Format Supplement (PDF: 225 KB)（頁面存檔備份，存於網際網路檔案館）
* Adobe Technical Note #5176: The CFF (Compact Font Format) Specification, (PDF: 251 KB)（頁面存檔備份，存於網際網路檔案館）
* Adobe Technical Note #5177: Type 2 Charstring Format (PDF: 212 KB)（頁面存檔備份，存於網際網路檔案館）
* Adobe Technical Note #5012: The Type 42 Font Format Specification（頁面存檔備份，存於網際網路檔案館）
* Adobe Technical Note #5014: Adobe CMap and CIDFont Files Specification（頁面存檔備份，存於網際網路檔案館）
* Adobe Technical Note #5004: Adobe Font Metrics (AFM) File Format Specification（頁面存檔備份，存於網際網路檔案館）

### 關於字型

* Font Formats Q&A（頁面存檔備份，存於網際網路檔案館）
* Adobe font technical notes（頁面存檔備份，存於網際網路檔案館）
* Adobe CID fonts（頁面存檔備份，存於網際網路檔案館）
* Adobe Technical Note #5092: CID-Keyed Font Technology Overview（頁面存檔備份，存於網際網路檔案館）
* Adobe Technical Note #5178: Building PFM Files for PostScript-Language CJK Fonts（頁面存檔備份，存於網際網路檔案館）
* Adobe Technical Note #5641: Enabling PDF Font Embedding for CID-Keyed Fonts（頁面存檔備份，存於網際網路檔案館）

### 字符集信息

* Common Character Sets（頁面存檔備份，存於網際網路檔案館）
* Adobe Latin Character Sets（頁面存檔備份，存於網際網路檔案館）
* Adobe Greek Character Sets（頁面存檔備份，存於網際網路檔案館）
* Adobe Cyrillic Character Sets（頁面存檔備份，存於網際網路檔案館）
* Adobe Technical Note #5078: Adobe-Japan1-6 Character Collection for CID-Keyed Fonts（頁面存檔備份，存於網際網路檔案館）
* Adobe Technical Note #5079: The Adobe-GB1-5 Character Collection（頁面存檔備份，存於網際網路檔案館）
* Adobe Technical Note #5080: The Adobe-CNS1-6 Character Collection（頁面存檔備份，存於網際網路檔案館）
* Adobe Technical Note #5093: The Adobe-Korea1-2 Character Collection（頁面存檔備份，存於網際網路檔案館）
* Adobe Technical Note #5094: Adobe CJKV Character Collections and CMaps for CID-Keyed Fonts（頁面存檔備份，存於網際網路檔案館）
* Adobe Technical Note #5097: Adobe-Japan2-0 Character Collection for CID-Keyed Fonts（頁面存檔備份，存於網際網路檔案館）

### 關於核心字型

* PostScript Type 1 fonts（頁面存檔備份，存於網際網路檔案館）
* Adobe Technical Note #5609: PostScript 3 Core Font Set Overview（頁面存檔備份，存於網際網路檔案館）
* The Adobe PostScript 3 Font Set（頁面存檔備份，存於網際網路檔案館）
* Apache FOP: fonts（頁面存檔備份，存於網際網路檔案館）

### 雜項

* comp.fonts FAQ: OS/2 2.1 and beyond（頁面存檔備份，存於網際網路檔案館）
* comp.lang.postscript FAQ
* About Fonts
* Fonts, Fonts, and more Fonts!