OpenType

**OpenType**，是一種可縮放字型（scalable font）電腦字型類型，採用 PostScript 格式，是美國微軟公司與 Adobe 公司聯合開發，用來替代 TrueType 字型的新字型。這類字型的副檔名有 `.otf`、`.ttf`、`.ttc`，類型代碼是 `OTTO`，現行標準為 OpenType 1.9。

OpenType 最初發表於 1996 年，並在 2000 年之後出現大量字型。它源於微軟公司的 TrueType Open 字型，TrueType Open 字型又源於 TrueType 字型。OpenType font 包括了 Adobe CID-Keyed font 技術。Adobe 公司已經在 2002 年末將其字型庫全部改用 OpenType 格式。到 2005 年大概有一萬多種 OpenType 字型，Adobe 產品占了三分之一。

## 歷史

OpenType 之前的主流是蘋果公司和微軟開發的 TrueType 類型，還有 Adobe 公司開發的 Type 1（PostScript）字型類型。微軟在 1994 年獨自開發了「TrueType Open」類型，之後 1996 年 Adobe 加入開發，增加了其在 Type 1 字型中使用的對字型輪廓的支援，OpenType 這個名字於是便用來稱呼合併之後的技術。

在後來的十幾年中，Adobe 和微軟繼續開發改進 OpenType 格式，在 2005 年末，OpenType 開始申請成為國際標準組織（ISO）的公開標準。這個新標準已經升級到 OpenType 1.4，以適應 ISO 語言標準的一些變化，之後其被稱為「開放字型類型（Open Font Format）」。這個標準在 2007 年 3 月以 ISO/IEC 14496-22 發布。

OpenType 於 2016 年發布了 1.8 版規範，引入了「可變字型」的功能。支援透過調節一定的參數來自由改變文字的形狀。

在 OpenType1.9 中，引入了 COLR 表的第二個版本，它增加了額外的圖形功能。增強版最初由 Google 提出並與微軟聯合開發。增強的圖形功能包括對三種類型的漸變、仿射變換、合成和混合模式的支援，以及定義可重用組件的能力。這些增強功能為 COLR 表提供了「SVG」表的所有圖形功能，除了描邊之外，應用程式應該支援這些功能。它還添加了合成和混合模式，對「SVG」表的支援被認為是可選的（因為這些在 SVG 中作為濾鏡效果實現）。此外，COLR 表的增強功能與 OpenTypeFontVariations 整合在一起，而「SVG」表則無法做到這一點。自版本 98 起，Chromium 瀏覽器引擎支援增強的 COLR 表。

## 描述

OpenType 使用 TrueType 字型通用的 sfnt 架構，但其加入若干「智慧型字型」（smartfont）選項，可以加強字型的字形和語言支援能力。OpenType 字型中的字形（glyph）、輪廓資料可以在兩種格式中任選其一：一個是在 'glyf' 表中 TrueType 格式輪廓，另一個是在 'CFF ' 表中的 CFF（壓縮字型格式，Compact Font Format）格式輪廓。CFF 輪廓資料是基於 PostScript 語言 Type 2 字型格式。表格名 'CFF ' 長度為四個字元，並且以一個空格字元結尾。

在如版式等大多數情況下，輪廓資料格式是什麼類型並不重要，但這兩種格式的區別在圖元光柵化（rasterisation）的時候就有區別。而單從「OpenType」一詞中看不出來使用的是哪種資料格式，所以有時候使用 OpenType (PostScript flavor)、OpenType CFF、或者 OpenType (TrueType flavor) 等稱呼加以區別。

OpenType 的主要特徵有：

* 字型編碼基於萬國碼（Unicode），可以支援任何文字，或者同時支援多種文字。
* 一個 OpenType 字型可以帶有最多 65,536 個字形。對於中文字庫而言，最基本的字彙應該包含 Big5 的 13,060 個漢字或是 GB2312-80 標準的 6763 個常用字型，這些字應該能滿足一般使用者的使用，對於戶籍管理、銀行系統和出版社等使用者而言需要 2 萬多字甚至 7 萬多字的支援。
* 字型有進階字形功能，可以進行對複雜文字進行充分的字形處理，並能透過更簡單的文字施加更複雜的字形效果，比如用羅馬字母指令碼書寫英文。
* 字型檔案可以拓展到跨平台，能夠在 Mac OS，Windows 和一些 Unix 系統中進行設定。
* 若不含變體字等拓展字形和拓展文字效能，OpenType CFF 字型比 Type 1 要小

## 與其他類型比較

與蘋果公司的 Apple Advanced Typography（簡稱 AAT，舊名 GX Typography）比較，OpenType 在字形選項上更不靈活，但是在語言相關的選項和支援略勝一籌。OpenType 比 AAT 更為成功，它現在有大量的字型和支援的應用程式，使 AAT 成為過時的技術。AAT 的單平台效能使其缺乏蘋果以外的大廠商的支援。

從開發者的角度來說，在一般情況下 OpenType 比 AAT 更容易開發。首先，簡單聲明替換和 OpenType 的定位比 AAT 的狀態表更簡單易懂。其次，Adobe 的認證策略不需要改變原始碼，執行第三方字型編輯應用程式，如 FontLab、FontMaster 去添加有關效能支援。雖然 Adobe 的文字驅動代碼支援不如微軟的單獨開發工具更為直觀，但是它的 VOLT（視覺開放字型版式工具，Visual OpenType Layout Tool），一個製作字型的工具整合軟體還是比較受歡迎的。

另一個區別是，OpenType 支援 framework（如微軟的 Uniscribe），若要處理阿拉伯語等語言的時候只需要提供一些特殊的語言處理知識。而在 AAT 中，ATT 字型開發者需要對該語言字型的全面認識。這意味著 AAT 可以處理任何特殊語言，但是需要字型開發者的相當高度的語言知識。另外，OpenType 字型更容易製作，但只能支援應用程式和作業系統能夠辨識的複雜文字。
在支援 OpenType 之前，Adobe 針對進階文書處理中曾推出「multiple master fonts」，但其缺乏 OpenType 的異體字和語言控制，在字型形狀上有更多的控制參數。

## OpenType 支援

OpenType 支援有以下幾個方面：所有應用程式和多數作業系統能在使用舊字型的同時使用 OpenType 字型；特別要注意的是，萬國碼的拓展語言支援；支援阿拉伯語、印度語言等「複雜文字」；以及英語等拉丁文字的進階字形支援等。

在微軟的作業系統中，OpenType TT 字型（.TTF）能向下相容，因此其支援所有 Windows 系統。OpenType PS 字型（.OTF）支援 Windows 2000 或以後的版本。在 Windows 95／98／NT／Me 系統中需要安裝 Adobe Type Manager 才能使用基本的羅馬字元支援。

透過萬國碼（Unicode）的拓展語言，可以在大多數的視窗應用程式中同時對 OpenType 和 TrueType 支援，包括 Publisher，大多數的 Adobe 應用程式，微軟 Office 2003（但 Word 2002 不行），以及多數的 Mac OS 應用程式，包括蘋果自己開發的 TextEdit 和 Keynote。在 Mac OS X 中，透過文書處理 Mellel，OpenType 得到了全面支援。

OpenType 透過微軟的 Office 和 Publisher 等軟體支援複雜書寫文字，Adobe InDesign 也提供日文的拓展 OpenType 功能，但是不直接支援中東和印度文字 ——Adobe 為支援阿拉伯語、希伯來語等中東語言，單獨發行另外的 InDesign 版本。

拉丁語言文字的進階字形支援主要是透過 Adobe 的應用程式，如 Adobe InDesign、Adobe Photoshop 和 Adobe Illustrator 來支援。QuarkXPress 6.5 及其以下版本不支援萬國碼，因此含有 WinANSI/MacRoman 字元表外的文字在 OpenType 字型中將無法正常顯示（同理，在其他使用萬國碼的字型格式也不行）。Corel 公司的 CorelDRAW 不支援 OpenType 字形功能。儘管如此，Quark 公司在 2006 年 5 月發布的 QuarkXPress 7 中開始支援 OpenType，和 Adobe 程式達到類似的效果。

另外，Windows Presentation Foundation 管理代碼執行支援 OpenType CFF 字型和一些進階字形功能，如連寫、舊體數字、花體字形、拐點、超文字和次文字，小型大寫字母、字形替換、多重基線、前後／風格化字間距調整、行間調整、注釋字元等等。

Mac OS X v10.4 及其之後系統中的 Apple Advanced Typography 也支援 OpenType 拉丁文字語言的進階字形功能，如小型大寫字母，舊體數字和多種連寫。但是它不支援前後字母間距調整、定位格式、字形倒序等，因此 Mac OS X v10.4 不能透過 OpenType 支援阿拉伯語、印度的文字 —— 這些文字透過蘋果自己的 AAT 字型來支援。

在自由軟體環境，如 Linux 中，OpenType 支援是透過 FreeType 專案來支援的，包括自由執行 X Window System，如 Xorg。

### Mac OS X 系統支援的特性

在 Mac OS X v10.4（Tiger）中，蘋果公司開始在作業系統中支援 OpenType 功能，減輕了程式開發者的任務，但是仍有一些需要注意的地方：

* 在 Mac OS 10.4.0 到 10.4.3 中，若字型被辨識為具有 OpenType 表，任何 AAT 表值將被忽略（之後，AAT 功能優先於 OpenType 功能。）
* 只有以下的 GDEF/GPOS/GSUB 功能標籤被確認是支援的：
  * liga: Common ligatures 普通連寫
  * dlig: Discretionary ligatures
  * sups: Superior/superscript position
  * tnum: Tabular numerals 表用數字
  * pnum: Proportional numerals 比例數字
  * onum: Old style numerals 舊體數字
  * lnum: Lining numerals 線性數字
  * sinf: Scientific inferiors
  * zero: Slashed zero 斜線零
  * ital: Italics 斜體
  * trad: Traditional CJK forms 傳統 CJK 樣式
  * jp78: JIS 1978 CJK forms 日本 JIS1978CJK 樣式
  * jp83: JIS 1983 CJK forms 日本 JIS1983CJK 樣式
  * expt: Expert CJK forms 專家 CJK 樣式
  * nlck: NLC Kanji forms NLC 漢字格式
  * ruby: Ruby notation forms 注音字元樣式
  * pwid: Proportional CJK widths 比例 CJK 寬度
  * fwid: Full CJK widths 全形 CJK 寬度
  * hwid: Half CJK widths 半形 CJK 寬度
  * twid: Third CJK widths 三分之一 CJK 寬度
  * qwid: Quarter CJK widths 四分之一 CJK 寬度
  * palt: Alternate proportional CJK widths 變 C 比例 JK 寬度
  * halt: Alternate half CJK widths 變半形 CJK 寬度
  * vert or vrt2: Optimised kana vertical alternates
  * _本列表不完整_
* 以下功能是被確認**不**支援的：
  * mark: Mark‐to‐base positioning
  * mkmk: Mark‐to‐mark positioning
  * mset: Mark positioning via substitution
  * nukt: Nukta form
  * akhn: Akhand ligature
  * rphf: Reph form
  * blwf: Below-base form 底基線樣式
  * half: Half-form（pre-base form）
  * pstf: Post-base form
  * vatu: Vattu variants
  * pres: Pre-base substitution
  * blws: Below-base substitution
  * abvs: Above-base substitution
  * psts: Post-base substitution
  * haln: Halant form substitution
  * blwm: Below-base mark positioning
  * abvm: Above-base mark positioning
  * dist: Distances

## SING 外字解決方案

2005 年 Adobe 在其創意軟體套裝 Adobe Creative Suite 中發表了一個新的技術「外字」（Gaiji）解決方案。

所謂「外字」，源自日語的「表外漢字」（日語：表外漢字，hyōgai kanji）。與拉丁語言不同，在東亞表意文字系統如中文、日文中，沒有固定數量的字元集。一般字元集只含有 8,000 到 15,000 的常用字，另外數萬個非常用字、生僻字，往往沒有在各國的標準中給予編碼。另外一個情況是異體字：一個表意文字（漢字）在不同的歷史時期、地域產生了不同的字形，而一些地名人名等專有名字必須要使用傳統的寫法，需要使用這些冷僻字形，造成了生僻字問題，日語中稱為「外字」問題。

為了處理這些冷僻字，先前已經出現過很多方案，比如在萬國碼中的私用區域（Private use area）增加編碼等。這樣的處理方法無法在制定環境以外的地方使用，基於私用區域編碼的萬國碼製作的文件無法通用。另外一個辦法就是將其處理成圖像，這又導致文字排版的麻煩，因為版面指令無法作用於圖像，無法被當成文字搜尋，而且由於機器從字型描繪字形和描繪圖像的機制完全不同，這樣的處理導致插入的冷僻字看起來很突兀。

SING 技術是和 Adobe Creative Suite 2 一起發布的，它允許使用者建立新字形，每個新字形作為一個獨立的字型打包。這樣打包出來的字形稱為_字形包（glyphlet）_ 。這種格式透過 Adobe 公開的，且基於 OpenType。這個包的內容包括字形的 TrueType 或 CFF 輪廓樣式，標準 OpenType 表格，聲明字形的尺寸和組合行為，以及元資料，附加資訊，如字形包的認證、所屬，還有讀音或者部首分類等語言方面的分類等。SING 字形包也可以使用 Fontlab 公司的 SigMaker3 程式建立。

SING（Smart INdependent Glyphlets，智慧型獨立字形包）的規範允許字形包隨同檔案一起傳送，這樣包含 SING 字元的檔案也是可攜帶的，而又不會字元亂碼、異常顯示。由於字形包的基礎是 OpenType 字型，標準字型機制可以對其進行正常描畫。SING 規範也可以表述成 XML 格式，包括在二進位格式中重建字形的所有必要資料。一般情況下，一個字形包需要 1-2 kB 大小的容量。

## 版式標籤

OpenType 版式標籤含有 4 個字串，含有字型版式中文字，語言系統，功能和基線等資訊。微軟的版式標籤登陸中，包含了這些標籤的使用和命名方法。OpenType 特徵都是由這些標籤資訊來體現的，建立特徵文字來描述字元如何根據指令來排列。這些特徵文字還可以透過進階字型編輯器如 FontlabStudio 和 AsiaFont Studio 來制定。

**文字標籤**

文字標籤用來辨識 OpenType 字型中的文字類型。每個標籤對應 Unicode 中一個連續的字元區。每個字元標籤含有 4 個或更少的小寫字母。如，包含 arab 來辨識阿拉伯字母表，cyrl 對應西里爾字母表，latn 對應拉丁字母表，等等。

**語言標籤**

語言體統標籤辨識 OpenType 字型中支援的語言系統。如包含 ARA 對應阿拉伯語，ESP 對應西班牙語，HYE 對應亞美尼亞語等等。這個代碼類似於 ISO 639-2，但不盡相同。

**功能標籤**

功能標籤用來辨識字元的一些字形特徵和功能。

**基線標籤**

基線標籤包含橫、豎兩個書寫方向的資訊。

## 參考文獻

## 參見

* Uniscribe（Windows 多語種文字彩現引擎）
* Apple Type Services for Unicode Imaging（Macintosh 多語種文字彩現引擎）
* WorldScript（舊版 Macintosh 多語種文字彩現引擎）
* Pango（開源多語種文字彩現引擎）
* XeTeX 基於 TeX 與 Unicode 及 Mac OS X 字型技術的整合的自由排版系統
* International Components for Unicode（帶有字型輸出軟體庫的開源多語種架構）
* 嵌入式 OpenType
* 字型排印學
* FreeType
* WOFF（Web Open Font Format），包含帶元資料的 OpenType 字型的 web 字型格式
* 思源黑體
* Noto
* 蘋果高級排版（Apple Advanced Typography、AAT）
* 可變字型

## 外部連結

* OpenType 規範（微軟）（頁面存檔備份，存於網際網路檔案館）（英文）
* OpenType 字型功能（微軟）（頁面存檔備份，存於網際網路檔案館）
* Adobe – Fonts : OpenType（頁面存檔備份，存於網際網路檔案館）（英文）
* Typo.cz 上有關中歐字型排印及字型的資訊（頁面存檔備份，存於網際網路檔案館）（英文）
* Diacritics Project — All you need to design a font with correct accents（頁面存檔備份，存於網際網路檔案館）
* Bitstream Panorama: Line layout engine for worldwide text layout, multilanguage, multilingual fonts, and international complex scripts
* Adobe OpenType 字型開發工具（AFDKO）（頁面存檔備份，存於網際網路檔案館）（英文）
* 微軟 TrueType 和 OpenType 字型開發工具（頁面存檔備份，存於網際網路檔案館）（英文）
* HarfBuzz - 基於 FreeType 的 OpenType 輸出引擎（英文）
* 如何用 LaTeX 安裝 OpenType 字型（英文）
* D-Type Font Engine and Text Layout Module — Portable software components for OpenType font rasterization and text layout（頁面存檔備份，存於網際網路檔案館）（英文）
* Windows XP3 下 OTF 字型提示破損（Damaged）無法安裝的解決方法（頁面存檔備份，存於網際網路檔案館）