與音樂存儲技術近似,標準化字體之存儲和傳播的介質,也經歷過由模擬(analogue)向數字(digital)的轉變。如若密紋唱片可類比為鉛字,磁帶便相當於早期照相排印(Phototypesetting)所使用的字體膠片 1 。二十世紀七十年代,唱片業與印刷業都歷經了里程碑式的轉變,數字格式的唱片和數字格式的字體開始主導市場。
1970年代
一九七六年,索尼公司展示了光學存儲媒介的原型,同一年,Monotype 推出 Lasercomp,後來成為世界上第一台商業上成功的數字激光圖像排印設備,Linotype 則推出了 Typomatic 照排機,終結了 Linotype 九十年的鉛字製造史;一九七八年,Linotype 推出 Linotron 202 ,採用數字矢量字體 2 ,與此同時,計算機學界泰斗高德納(Donald Ervin Knuth)則因為照相排版質量的不堪,編寫着後來成為學術界出版之重要標準的排印語言TeX ,以及字體描述系統 Metafont。當印刷業跨入八十年代,數字矢量字體已是印刷廠排印時採用的主要形式。
PostSript 和 TrueType
而八十年代數字字體技術的發展同樣令人矚目。一九八二年,Adobe 公司創立,兩年後,Adobe 推出 PostScript 語言,能夠以矢量方式描述頁面。而史蒂夫·喬布斯參觀了他們的工作,建議他們將這一語言應用到打印機驅動上去。於是,一九八五年,內置 PostScript 解釋器的 Apple LaserWriter 誕生,從此掀起一場桌面出版業的革命。怎樣形容這一事件的偉大都不過分——排版這一工作從此走出印刷廠的車間,成為現在我們所熟悉的形式,而小批量的印刷也可以經由打印機來完成,並且有着可以媲美專業印刷機的質量。
PostScript 在處理字體時,採用內置的 Type 1 輪廓字體標準 3 ,字符可以自由縮放,並且不依賴於打印或者顯示介質的分辨率,相對於命令行計算機終端或者針式打印機所使用的點陣字符,這是一個非常大的進步,也是 PostScript 的主要賣點。技術上的先進性使得 PostScript 一直沿用至今,廣泛使用的 PDF 格式亦源自 PostScript 而來。PostScript 或者說 Type 1 的主要問題在於,它太貴了。早期的 Adobe 靠它賺得盆滿缽滿,顯然不願意免費授權給 Apple 使用。於是 Apple 選擇自立更生,由 Sampo Kaasila 開發了一種自己的全新字體格式。一九九一年,Mac OS System 7 發布,搭載了這一字體系統,它有個後來無比響亮的名字: TrueType 。System 7 以這一格式隨系統預裝了若干字體,其中包括 Times Roman,Courier,以及 Helvetica 。有趣的是,後來的 Microsoft 也多少重複了 Apple 的路,與 Adobe 協作開發了 OpenType 格式,這一格式基本上是基於 TrueType 的,在技術上更加優秀一些,比如使用 Unicode 編碼,更為靈活的排印支持,以及使用三次貝塞爾(Bézier)曲線取代 TrueType 的二次貝塞爾曲線 4 ,等等。
Web 字體
現在讓我們來看看八十年代末九十年代初的另一個意義更加深遠的歷史性事件:超文本(Hypertext)系統 ENQUIRE ,及其創始人 Tim Berners-Lee 以其為基礎所創建的萬維網在歐洲原子能中心誕生,並且在世界範圍上的迅速擴展。由此,Internet 上最為重要的應用之一得以確立,但是同時也產生了一個小小的問題:瀏覽器解析 HTML 的時候,應該採用什麼樣的字體?或者說,HTML 的書寫者該以何種方式指定瀏覽器所應使用的字體?
給定九十年代初 Internet 接入的平均帶寬及客戶端性能,這個問題的答案其實很簡單:運行瀏覽器的客戶端計算機上有什麼字體,就使用什麼字體渲染網頁,HTML 的書寫者沒有辦法指定採用何種字體(Fontface),最多只能指定字體的樣式(Style),如斜體或粗體 5 。這顯然非常不夠,於是其時尚佔據市場主導地位的 Netscape 公司在 Netscape Navigator 中加入了對 Font 標籤的支持。對此標籤的批評早在九十年代中期就已經出現 6 ,而在今天看來,這的確並不是個明智之舉:Font 標籤破壞了 HTML 原本所具有的語義特性,將對文檔的展現(presentation)夾雜在文檔的內容(content)之中。
以 Web Standard 的理念來看,如果說 Table 標籤的問題是它被誤用做布局,那麼 Font 標籤的問題就是其存在本身。值得注意的是,文檔的展現和文檔的內容應當被分離開來,可以改變其中之一而不影響另一個,並不僅僅是 CERN 里一群 nerd 想出來的點子,對於排印而言,這一點實際上同樣成立。排印的效果與文檔的實際內容事實上是分離的——排印工人們可以用 Lorem Ipsum 來試驗排印的效果,書籍的作者也可以用純文本方式寫作。排版工人們並不是根據文字的內容排版,而是根據文字的性質進行排印,比如看到「《哲學研究》」這幾個字,排字工人會因為這四個字是一個標題,而不是因為這四個字所具有的涵義,而將它用最大的字體印於封面上。同樣的道理,HTML 的標籤應該描述的是其所包圍的文字的性質,而不是它應該如何被顯示:<h1> 標籤所包圍的文字是頁面的標題,<ul> 標籤所包圍的是一系列無序列表的 <li> 項目,這些標籤的作用僅僅是指出文檔的語義結構。但是 Font 標籤破壞了這一點:<font> 標籤所包圍的內容並不是字體。
CSS 的出現
無論 Font 標籤如何地令人不堪,在 CSS 仍舊處於襁褓狀態的當時,它的確為頁面設計者們提供了一種改變字體的手段。這個標籤被到處使用,後來居上的 Microsoft Internet Explorer 也支持它,以至於 HTML 3.2 標準成形之時,它不得不被納入成為標準的一部分。人們對於在網頁上顯示不同字體的需求,由此可見一斑。隨着日後 CSS 的日漸成熟,以及 Netscape 化身 Mozilla,以 Firefox 的發布所展開的對 Internet Explorer 的反擊,乃至 Web Standard 運動的興起,雖然 Font 標籤被逐漸廢棄,合理的 CSS Font Stacks 也漸漸被人總結出來,渲染網頁時只能使用客戶端計算機上已經安裝的字體這一限制,卻始終未能有一個完美的解決方案。
事實上,早在一九九八年,CSS 2 標準實際上已經有了鏈接非客戶端字體的方法,其時已經如日中天的 Internet Explorer 和正在消亡的 Netscape Navigator 也都增加了相應的支持,但遺憾的是,這兩個主要的瀏覽器開發商都未能支持其時已經廣泛流行開來的 TrueType 格式,而是各自另起爐灶,對於 Internet Explorer 來說是 EOT 格式,對於 Netscape Navigator 來說是 TrueDoc 格式。因為使用上的繁瑣,加之九十年代末的網絡出版尚只是新鮮事物,人們對於字體排印的平均水準要求並不高,這一特徵幾乎沒有什麼實際應用。
進入二十一世紀,Internet 上的一件大事便是 Web 2.0 時代的來臨。用戶產生內容,網絡的去中心化,以及人們對於網絡出版質量要求日漸提高的趨勢越發明顯,對於網絡出版和用戶交互領域的研究也有比較成熟的理念出現。Web 設計師們需要更好的工具來滿足他們對於字體和排印的需求,一時間,各種各樣的臨時解決方法紛涌而至,手段主要是使用 Flash、 JS 等手段進行動態文字替換。不提這類方法所產生的額外技術依賴以及兼容性問題,它們實際上仍舊只是解決了字體問題,卻未能解決排印的問題。二零零七年,Web Font 這個詞又重新進入大家的視野 7 ,CSS 3 標準也將其納入草案,可以說,在瀏覽器原生支持外鏈 TrueType / OpenType 字體這一要求上,黎明已經到來,需要等待的只是其他瀏覽器廠商的呼應。
未來
鋪墊了這麼多歷史,終於要說到重點 8 。必須承認,設計師的理念和需求永遠超前於工程師的技術能力,因為後者無時無刻不面對着諸多實現細節的限制,總是要在理想和現實之間做出折衷,無論建築、電子電器還是傳統出版和網絡出版都莫不如是。從雕版、鉛字、膠片到數字矢量存儲、TrueType、OpenType,為實現理想排印的努力從未中斷過,而今年九月份發布的 Web Open Font Format (WOFF) 格式,便是這種嘗試的最新結果。簡單來說,相對於 TrueType 和 OpenType ,WOFF 是一種專門為了 Web 而設計的字體格式標準,它並不複雜,實際上只是對於 TrueType / OpenType 等字體格式的封裝,並針對網絡使用加以優化:每個字體文件中含有字體以及針對字體的元數據(Metadata),字體文件被壓縮,以便於網絡傳輸,並且不包含任何加密或者 DRM 措施。包括 Adobe、 Lino Type、Monotype 在內的幾乎所有主要的字體供應商都加入到支持 WOFF 的行列中來 9 ,十月二十日,Mozilla 也正式宣布對 WOFF 的支持,並且詳細解釋了 WOFF 的使用方法與實現細節。但是這一連串的業界新聞並不足以讓人明白,WOFF 到底有多麼好,直到十一月二日這篇詳細介紹 WOFF 的長文中出現的這段 Firefox 3.7 支持 WOFF 效果的演示視頻,人們才意識到,網頁的排印將迎接怎樣的未來:
從視頻中我們可以看到,結合 WOFF 的 Firefox 3.7 將 OpenType 的諸多高級排印技巧支持得非常全面,如連寫(ligature)、沖濺(Swash)、替代形式(alternate forms)、新舊數字形式、以及控制繁簡中文互換等等,全都可以通過 CSS 屬性操控。可以想象,配合高分辨率和便攜式、可彎折的顯示技術,以及未來網絡的接入能力,WOFF 將能夠使得基於瀏覽器的電子出版與閱讀領域的字體排印趕上乃至超越傳統印刷的水準,也提供給了網頁設計師們極為強大和簡便的排印工具。
注釋
- 儘管照相排印很早就涉及到計算機的使用,字體本身卻仍舊是通過字體膠片來存儲的。比較詳盡的介紹可參見 http://commfaculty.fullerton.edu/woverbeck/dtr5.htm ^
- 參見 Monotype : http://www.monotypeimaging.com/aboutus/MT1971_1981.aspx ,Linotype : http://www.linotype.com/49-14026/19731989.html ^
- 關於點陣(Bitmap)字體和矢量(Vector)字體,以及同樣作為矢量字體的輪廓字體(Outline fonts) 與筆畫字體(Stroke-based fonts)之定義和差別,可參見 維基上的相關條目 ^
- 對於貝塞爾曲線感興趣的讀者可參閱 http://www.ibiblio.org/e-notes/Splines/Bezier.htm ^
- 見 HTML 2.0,RFC 1866。規範中提到了 Style Sheet,但是 CSS 標準此時尚只有一個草案 ^
- What’s wrong with the FONT element?,成文於一九九六年,時至今日,其批評仍舊正確 ^
- 參見 A List Apart 的 CSS @ Ten: The Next Big Thing 及 Gecko 1.9.1 的相關文檔 ^
- 如果 Type is Beautiful 要評最羅嗦稿件獎,本文一定當仁不讓。 ^
- 詳細列表參見 http://typegirl.tumblr.com/post/142912558/most-of-the-important-foundries-are-supporting-webfont ^
6 個相關討論
未來還是很遙遠的,中文字體沒有任何一種可以便於網絡傳輸的形式,怎麼壓縮也是上M級的。國外的實現方案很少考慮這些,顯示器可用的拉丁文字體頂多100K甚至還不到,只相當於普通的圖片一張,js/flash的實現方案現在已經相當成熟了,不是“能不能做”,而是“做得更標準”的問題。但對於中文來講,任何一種方案都不可承受每個頁面有上M的單獨字體文件下載,不管它是EOT/TTF/OTF還是WOFF。除非新的WOFF能夠實現類似”嵌入”或者”按需下載”的功能,否則對於中文來說這一切都只是傳說。
另外,就算一切真的那樣美好,不要忘了,中國人永遠使用IE6,他們看到的都只是你設的fallback.
cheng 你好,
在本文的草稿中我本來對中文問題有所涉及,但是後來刪去了,因為畢竟這個 blog 的主旨是西文字體排印。不過既然你在這裡提到了中文的問題,我就來說說我的想法。我基本上同意你的看法,即短期之內中文字體網絡傳輸是無解的難題。依拙見這基本上是個帶寬問題,解決與否的根源在於互聯網硬件基礎建設,而這又涉及到 ISP 的利益乃至朝廷的意志。一言以蔽之,我朝不是發達國家,所以我們沒有資格讓未來不再遙遠。
只考慮技術層面的話,也許針對兆字節級別的字體,除去你所說的按需下載之外,也可以先使用本地字體佔位,待需要顯示的字符下載完畢再進行切換。不過相較於字體問題,我個人倒更關心中文豎排相關的排版問題,比如標點符號的自動切換等等。
“如果 Type is Beautiful 要評最羅嗦稿件獎,本文一定當仁不讓。”
呵呵~
目前中文字體應用於正文顯然是不可行的,字體文件大倒不是主要的原因,起碼服務器端按需發送在技術上是可行的,網上可以找到一些例子。
現在最大的問題在於終端的渲染技術,不同系統不同屏幕上看到的結果是不一樣的…
所以在很長的一段時間之內,想得到“漂亮”的中文字體只能使用圖片格式,中文web業界着力要解決的,只是如何載入這些圖片的問題,目前一些js的套件已經實現了基本的功能,比如cofun或typeface.js。
至於WOFF,只能期待在中文字體的實時嵌入技術上有大的突破。
hi Magic:
“起碼服務器端按需發送在技術上是可行的,網上可以找到一些例子” , 能不能發一個例子看一看。
非常感謝。
這篇文章寫的很好,多我了解woff很有幫助,謝謝。看得出作者是花 了很多心思的。
4 個Trackbacks
[…] 關於WOFF字體,推薦看一下這個介紹。另外,typekit開始支持WOFF字體了。 […]
[…] (Web Open Font Format) 字體格式的支持。關於這一字體格式的意義,本站之前的《字體數字化簡史與 WOFF》一文已有提及,而我們今天將簡單地演示 WOFF […]
[…] WOFF是Web Open Font Format的縮寫,作為從2009年才開始發展的網絡字體格式,現在就已經迅速被廣泛的支持。原因可能很簡單,WOFF更小,並且包含來源信息。雖然WOFF可以看做是 TrueType (TTF)以及 OpenType (OTF)的再包裝,但不同的是,WOFF是直接壓縮了的字體格式而無需服務器再做額外的壓縮,這使得相對於TTF格式,其體積通常要小40%以上。由於對於 WOFF、TrueType、OpenType 的由來說明超出了本文的討論範圍,推薦閱讀字體數字化簡史與 WOFF獲得完整的概念。 […]
[…] 推出 Linotron 202 ,採用數字矢量字體 2 ,與此同時,計算機學界泰斗高德納(Donald Ervin […]