字的研究(1) 字、字形、字型、字体风格和字体文件

字的概念

研究字的细节之前首先需要明确一些名词的定义以及英文描述:

字 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开发的。详见:

https://web.archive.org/web/20131023054643/https://developer.apple.com/fonts/tools/tooldir/TrueEdit/Documentation/TE/TE1sfnt.html

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

https://en.wikipedia.org/wiki/TrueType

https://web.archive.org/web/20131023054643/https://developer.apple.com/fonts/tools/tooldir/TrueEdit/Documentation/TE/TE1sfnt.html

posted @ 2022-01-20 18:23  鬼斯通  阅读(2050)  评论(1编辑  收藏  举报