OpenType

OpenType，是一種可縮放字型電腦字型型別，採用PostScript格式，是美國微軟公司與Adobe公司聯合開發，用來替代TrueType字型的新字型。這類字型的副檔名有codice_1、codice_2、codice_3，型別程式碼是codice_4，現行標準為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字型型別。微軟在1994年獨自開發了「TrueType Open」型別，之後1996年Adobe加入開發，增加了其在Type 1字型中使用的對字型輪廓的支援，OpenType這個名字於是便用來稱呼合併之後的技術。在後來的十幾年中，Adobe和微軟繼續開發改進OpenType格式，在2005年末，OpenType開始申請成為國際標準組織”。這個標準在2007年3月以ISO/IEC 14496-22釋出。OpenType於2016年釋出了1.8版規範，引入了“可變字型”的功能。支援透過調節一定的引數來自由改變文字的形狀。在OpenType1.9中，引入了COLR表的第二個版本，它增加了額外的圖形功能。增強版最初由谷歌提出並與微軟聯合開發。增強的圖形功能包括對三種類型的漸變、仿射變換、合成和混合模式的支援，以及定義可重用元件的能力。這些增強功能為COLR表提供了“SVG”表的所有圖形功能，除了描邊之外，應用程式應該支援這些功能。它還添加了合成和混合模式，對“SVG”表的支援被認為是可選的。此外，COLR表的增強功能與OpenTypeFontVariations整合在一起，而“SVG”表則無法做到這一點。自版本98起，Chromium瀏覽器引擎支援增強的COLR表。描述.OpenType使用TrueType字型通用的sfnt架構，但其加入若干“智慧字型”格式輪廓。CFF輪廓資料是基於PostScript語言Type 2字型格式。表格名'CFF '長度為四個字元，並且以一個空格字元結尾。在如版式等大多數情況下，輪廓資料格式是什麼型別並不重要，但這兩種格式的區別在圖元光柵化的時候就有區別。而單從「OpenType」一詞中看不出來使用的是哪種資料格式，所以有時候使用OpenType (PostScript flavor)、OpenType CFF、或者OpenType (TrueType flavor)等稱呼加以區別。OpenType的主要特徵有：與其他型別比較.與蘋果公司的Apple Advanced Typography比較，OpenType在字形選項上更不靈活，但是在語言相關的選項和支援略勝一籌。OpenType比AAT更為成功，它現在有大量的字型和支援的應用程式，使AAT成為過時的技術。AAT的單平臺效能使其缺乏蘋果以外的大廠商的支援。從開發者的角度來說，在一般情況下OpenType比AAT更容易開發。首先，簡單宣告替換和OpenType的定位比AAT的狀態表更簡單易懂。其次，Adobe的認證策略不需要改變原始碼，執行第三方字型編輯應用程式，如FontLab、FontMaster去新增有關效能支援。雖然Adobe的文字驅動程式碼支援不如微軟的單獨開發工具更為直觀，但是它的VOLT，一個製作字型的工具整合軟體還是比較受歡迎的。另一個區別是，OpenType支援framework，若要處理阿拉伯語等語言的時候只需要提供一些特殊的語言處理知識。而在AAT中，ATT字型開發者需要對該語言字型的全面認識。這意味著AAT可以處理任何特殊語言，但是需要字型開發者的相當高度的語言知識。另外，OpenType字型更容易製作，但-{只}-能支援應用程式和作業系統能夠識別的複雜文字。在支援OpenType之前，Adobe針對高階文字處理中曾推出“multiple master fonts”，但其缺乏OpenType的異體字和語言控制，在字型形狀上有更多的控制引數。OpenType支援.OpenType支援有以下幾個方面：所有應用程式和多數作業系統能在使用舊字型的同時使用OpenType字型；特別要注意的是，萬國碼的拓展語言支援；支援阿拉伯語、印度語言等“複雜文字”；以及英語等拉丁文字的高階字形支援等。在微軟的作業系統中，OpenType TT字型支援Windows 2000或以後的版本。在Windows 95／98／NT／Me系統中需要安裝Adobe Type Manager才能使用基本的羅馬字元支援。透過萬國碼，以及多數的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中，蘋果公司開始在作業系統中支援OpenType功能，減輕了程式開發者的任務，但是仍有一些需要注意的地方：SING外字解決方案.2005年Adobe在其創意軟體套裝Adobe Creative Suite中發表了一個新的技術“外字”解決方案。所謂“外字”，源自日語的“表外漢字”在不同的歷史時期、地域產生了不同的字形，而一些地名人名等專有名字必須要使用傳統的寫法，需要使用這些冷僻字形，造成了生僻字問題，日語中稱為“外字”問題。為了處理這些冷僻字，先前已經出現過很多方案，比如在萬國碼中的私用區域增加編碼等。這樣的處理方法無法在制定環境以外的地方使用，基於私用區域編碼的萬國碼製作的文件無法通用。另外一個辦法就是將其處理成影象，這又導致文字排版的麻煩，因為版面指令無法作用於影象，無法被當成文字搜尋，而且由於機器從字型描繪字形和描繪影象的機制完全不同，這樣的處理導致插入的冷僻字看起來很突兀。SING技術是和Adobe Creative Suite 2一起釋出的，它允許使用者建立新字形，每個新字形作為一個獨立的字型打包。這樣打包出來的字形稱為"字形包"。這種格式透過Adobe公開的，且基於OpenType。這個包的內容包括字形的TrueType或CFF輪廓樣式，標準OpenType表格，宣告字形的尺寸和組合行為，以及元資料，附加資訊，如字形包的認證、所屬，還有讀音或者部首分類等語言方面的分類等。SING字形包也可以使用Fontlab公司的SigMaker3程式建立。SING的規範允許字形包隨同檔案一起傳送，這樣包含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，但不盡相同。功能標籤用來識別字符的一些字形特徵和功能。基線標籤包含橫、豎兩個書寫方向的資訊。