字的概念
研究字的細節之前首先需要明確一些名詞的定義以及英文描述:
字 character
是語言學中語意的最基本單位,任何一個完整的漢字是字,英文中的字母(Letter)也是字。
字形 glyph
一個可以辨認的抽象的圖形符號,它不依賴於任何特定的設計。(中華人民共和國國家標准GB/T 16964《信息技術·字型信息交換》)
同一字可以有不同的字形,而不影響其表達的意思,其中不同字形的概念包括不同字體、不同書寫方式(簡體和繁體、手寫體和打印體)。
注意:字形指的是單個字的圖形符號而非集合
字型 font
某一整套具有同樣樣式、字重和尺碼的字形,是印刷行業的概念,強調尺寸、字重、傾斜、寬度一致。
如,5號SimSun和7號SimSun屬於不同字型。
字體 typeface 或 font family
是由一個或多個字型組成的集合,每個字型由具有共同設計特征的字形組成,強調設計特征一致。
如,SimSun和SimFang屬於不同字體,而前文提到的5號SimSun和7號SimSun屬於同一字體
字體風格
漢字字體可以按照其字的樣式形態分成幾個不同的風格,日常所說的宋體、楷體等並不能說是一種字體(typeface),而應該被稱為字體風格,比如宋體(Simsun)和新宋體(NSimsun)都是宋體這一字體風格,但屬於不同字體
字體文件
傳統字體文件
字體構成非常復雜,以下的信息如有錯漏,敬請指正。
字體文件主要由輪廓格式、封裝格式、編碼方式
Postscript字體
Postscript是一種由Adobe System為印刷圖形和文字而設計的編程語言。Postscript字體則是一組由Adobe System開發的輪廓字體文件標准,其中的輪廓格式由Postscript描述。Postscript字體主要包括Type0、Type1、Type2等類型,其中區別暫不做深究。需要指出的是,由於使用Postscript描述輪廓,故描述輪廓使用的是三次貝塞爾曲線(區別於TrueType使用的二次貝塞爾曲線)
TrueType
TrueType是由Apple開發的,對標Type1的輪廓字體文件標准。如上文所述,TrueType使用二次貝塞爾曲線描述字形輪廓,故顯示效果不如Postscript描述的字體。此外,TrueType使用的是sfnt格式。
sfnt
sfnt是一種基於表格的字體數據結構格式,是Apple為TrueType開發的。詳見:
OpenType
OpenType是由Microsoft和Adobe合作,兼容TrueType和Postscript描述方法的字體文件標准(”TrueType“在這里指TrueType文件標准中的字形輪廓描述方式)。同TrueType一樣,OpenType使用的也是sfnt格式。
OpenType字體中的字形(glyph)、輪廓數據可以在兩種格式中任選其一:一個是在'glyf'表中TrueType格式輪廓,另一個是在'CFF '表中的CFF(壓縮字體格式,Compact Font Format)格式輪廓。CFF輪廓數據是基於Type 2字體格式(表格名'CFF '長度為四個字符,並且以一個空格字符結尾)。
在某些語境下,OpenType中使用Postscript描述的字體文件被稱為”OpenType“,以.otf為文件后綴名;OpenType中使用TrueType描述的字體文件被稱為"TrueType",以.ttf為文件后綴名
網絡字體 Web Font
區別於傳統字體文件主要在本地使用,網絡字體標准的出現是考慮到了傳輸效率以及版權保護等方面的問題,在此不作深入。詳見:
https://creativemarket.com/blog/the-missing-guide-to-font-formats
WOFF
Web Open Font Format,是對TTF/OTF的壓縮。該標准還有下一代名為WOFF2。
EOT
Embedded Open Type, 同樣是對TTF/OTF的壓縮。相比WOFF,EOT提供了一些保護功能,如加密等。另外,EOT只被IE瀏覽器支持。
SVG
Scalable Vector Graphics font,不同於前兩者,SVG字體中字體輪廓以標准SVG元素保存。
擴展
一段摘自https://zh.wikipedia.org/wiki/PostScript的話,描述了Hints的作用。
字體處理中一個問題是字體在小尺寸的時候實際上並不是進行線性縮放,如果那樣的話字體的某些部分就會不成比例地過大或者過小從而字體看起來不太正確。PostScript使用與字形曲線保存在一起的隱含信息(Hints)避免了這個問題的發生,它們基本上是水平或者豎直方向條帶上一些附加信息,用以標識光柵圖像生成器需要維護的字體中的重要特征。甚至在很低的分辨率的時候字體也是非常好看;通稱為Adobe的Type 1 Font。Type 1是一個高效的僅僅用來保存字形信息的簡化PS系統,而不是一個完善的語言,PDF也是一種類似的情況。Adobe向那些打算在自己的字體中添加隱含信息的廠商征收高額的Type 1技術授權使用費用。那些不願意使用隱含信息或者不願支付費用的用戶只能使用Type 3 Font。Type 3字體允許使用除了標准的隱含信息之外的PostScript語言的所有復雜特性,后來又添加了一些其他的不同特點。
參考
https://blog.justfont.com/2013/02/some_nouns/
https://www.zhihu.com/question/20366900/answer/14917441
https://creativemarket.com/blog/the-missing-guide-to-font-formats
https://zh.wikipedia.org/wiki/PostScript
https://en.wikipedia.org/wiki/PostScript_fonts
https://en.wikipedia.org/wiki/OpenType