Fonts in XFree86 : Appendix: background and terminology
Previous: Additional notes about TrueType support
Next: References

6. 附录: 背景和术语

6.1. 字符和图元

一个计算机文本处理系统输入击键输出图元(glyph),图元是在纸张或计算机屏幕上被组合的小图片。击键和图元一般不一致: 例如,如果系统能生成连体字(ligature),则典型的两个击键 <f><i> 将对应一个单一的图元。类似的,系统形状阿拉伯图元如果在合理的方式下(in a reasonable manner),则多个不同的图元可以相应于一个单一击键。

通过中介的字符,从击键到图元的复杂转换规则通常被因素化为两个简单的转化。你可以把字符想象为存储的数据的基本单元,比如在你的文本编辑器的缓冲区中。而字符的定义是内在的特定于应用程序的,已经定义了许多标准化了的字符的总集(collection)。

一个编码的字符集是一个字符的集合,它与从叫做代码点(codepoint)的一个整数代码到字符的一个映射在一起。编码的字符集的例子包括 US-ASCII、ISO 8859-1、KOI8-R 和 JIS X 0208(1990)。

一个编码的字符集需要使用 8 位的整数来索引字符。许多早期的主机使用 6 位字符集,而对表意的书写系统则需要 16 位(或更多)字符集。

6.2. 字体文件, 字体, 和 XLFD

传统上,印刷者使用名词字型(typeface)和 fount。字型是特定的式样或设计,比如 Times Italic,而 fount 是给定大小的一个给定字型的铅铸的化身(incarnation)。

译注:fount - 英国人称一种尺寸字种包含大小写文字、数字、符号与该粗、斜等的整套字体。

数码字体存在于(come in)字体文件中。一个字体文件包含对生成给定字型的图元必须的所有信息,并且应用程序使用字体文件可以按任意次序访问图元信息。

数码字体可以由位图数据组成,在这种情况下它们被称为位图字体。它们也可以由对图元形状的数学描述组成,在着中情况下它们被称为可缩放字体。可缩放字体文件的公用格式有 Type 1 (有时错误的叫做 ATM 字体或 PostScript 字体)、Speedo 和 TrueType。

在数码字体中的图元数据需要以某种方式被索引。如何索引依赖于字体文件格式。在 Type 1 字体的情况下,图元用图元名字来标识。在 TrueType 字体的情况下,图元用对应于某个索引方案(通常是 Unicode --- 见后)的一个整数来索引。

X11 系统使用字体文件中的数据来生成字体实例,它是依据给定编码索引的给定大小的图元的总集。

X11 字体实例通常用叫做 X 逻辑字体描述(X Logical Font Description - XLFD)的表示法来指定。XLFD 开始于一个横杠‘-’,并由用横杠分隔的十四个字段组成,例如:

-adobe-courier-medium-r-normal--0-0-0-0-m-0-iso8859-1
有特殊意义的是最后两个字段‘iso8859-1’,它指定字体实例的编码。

译者按:余补充的 XLFD 的更详细的描述

X11 字体实例还可以用短名字来指定。不象 XLFD,短名字没有结构而是给字体实例的一个方便的名字。 由两个短名字有特殊的意义,它们被服务器特殊处理,并且如果它们叫这些名字的字体实例不能打开则服务器将不启动。它们是‘fixed’,它指定在要求的字体不能打开的时候使用的替代(fallback)字体,和‘cursor’,它指定用做鼠标指针的图元集合。

短名字通常实现为给 XLFD 的别名;‘fixed’和‘cursor’别名定义在

/usr/X11R6/lib/X11/font/misc/fonts.alias

6.3. Unicode

Unicode (http://www.unicode.org) 是一个编码的字符集,它的目标是为所有的文稿(script),目前的和历史上的,唯一的标识所有的字符。尽管 Unicode 明显的不是被设计为一个图元编码方案,它通常被用做编码方案。

Unicode 是一个开放字符集,这意味着在任何时候都可以把代码点分配添加到 Unicode 中(但是一旦指定了一个分配则永不能变更)。故此,Unicode 字体将是稀疏的(sparse),并且只为 Unicode 的字符注册的一个子集定义了图元。

Unicode 标准与国际标准 ISO 10646 是平行定义的。在两个标准中的分配总是等同的,这个文档中使用的术语 Unicode 和 ISO 10646 是可互换的。

在用于 X11 的时候,Unicode 编码的字体应当把它的 XLFD 的最后两个字段设置为‘iso10646-1’。


Fonts in XFree86 : Appendix: background and terminology
Previous: Additional notes about TrueType support
Next: References