层叠样式表第2级 CSS2规范开发手册 - WEB前端开发 专注前端开发,关注用户体验

附录C. 字体的实现和性能的注解

目录

    该附录是提示性的,而不是规范性的。

C.1 字体术语表

DocLock™
Bitstream的DocLock™技术保证TrueDoc PFR只在它们发布的站点内得以适用。TrueDoc PFR移动到另一站点或被另一站点引用将无法工作。
数字签名
信任管理技术的一部分,用来提供关于一个资源的签名的断言。
字体缓存
字体缓存允许在客户系统上临时拷贝一个字体。通常它们存储在磁盘上,与其它缓存项目(例如UA特定的图形)共存。
字形
指定了一个字体的一个特定形状的“句柄”,不包含字体尺寸。
字体匹配
字体匹配是一个基于一个或多个主要字体的属性而选择类似字体的过程。通常的属性有衬线,重量,大写高度,x高度,间隔,语种以及姿势等。字体匹配取决于具体的算法以及可供挑选的字体。
轮廓呈现子集化
轮廓呈现子集化是这样一个过程:不需要的轮廓呈现(以及它们对应的边角方位、字距信息)从主要字体中被删除,从而得到一个较小的字体子集,可以适用于一个或一组特定的文档。对于表意语言来说,这是很特别的成就,因为表意语言的基本字体轮廓集通常都非常非常大。轮廓呈现子集化对于使用连字语种的文档(如阿拉伯文)会很困难,如果不知道最终显示系统的连字格式规则的话。
Intellifont
Intellifont技术由Agfa开发,是HP和其它适用PCL5语言打印机的自然格式。它也是Amiga计算机上的自然字体格式。
Infinifont
一种字体合成技术。给出一个Panose-1数字(以及可选的额外字体描述数据),可以产生一个人工字体而不需要从单一主外形外插或在两个或多个外形间内插得到(参见[INFINIFONT])。
斜体
拉丁语言的一类字母格式,比罗马字母更草书化,但比手写体不那么草书化。通常,会设计一对连用的字体;一个是衬线罗马字母,而另一个是斜体。其它用来描述这一类字母格式的术语包括:草书,以及西里尔字符中的kursiv。对于无衬线字体,其对应字体通常是一个倾斜的变种,而不是另一类字母格式。

Italic forms   [D]

字距
改变选择的轮廓呈现间的距离,从而获得更平滑的印刷效果,否则字符会过于接近或过于分开。

Illustration of kerning   [D]

多个主字体
多个主字体包含两个主字体,与特别的渲染软件连用,提供内插结果。Adobe Systems提供一种机制允许使用参数来控制输出或经内插得到的字体。这些参数通常描述了原始字体的一些特性,而得到的字体被称为“合成字体”。
Open Type
Open Type是TrueType字体格式的扩展,包含了一些额外信息,以扩充字体性能以支持高端国际化印刷。Open Type能够将单一字符与多个外廓呈现关联,或者字符组合与一个外廓呈现关联(连字格式)。 Open Type包括两维信息以支持复杂定位及外廓附加等性能。TrueType Open和OpenType包含显式的文本和语种信息,因此文本处理应用能相应调整其行为(参见[OPENTYPE])。
服务器字体
服务器字体是定位在WEB服务器上的字体资源,可以由WebFont定义引用。用户端可以用该资源来渲染页面。
Speedo
Speedo字体即使由Bitstream开发并且是Atari ST和Falcon计算机上的自然字体格式。运行X窗口系统的计算机也使用它。
TrueDoc
TrueDoc技术由Bitstream开发,用来创建、传输以及图形化WEB上的与平台无关的可缩放字体对象。字体对象的创建由TrueDoc字符形状记录器(CSR)完成,而字体对象的渲染由TrueDoc字符形状播放器(CSP)完成。该技术定位于WEB浏览和印刷。
TrueDoc便携字体资源
TrueDoc便携字体资源(或称为PFR)是平关无关的向量字体对象,并由CSP产生。输入可以是Windows/Max/Unix中的TrueType或Type 1。TrueDoc的PFR提供很好的压缩比,与平台无关。由于它们不是一种自然字体格式(而TrueType或Type 1是),它们的安装不那么容易。
TrueType
TrueType字体格式由Apple开发并授权给Microsoft。TrueType是Windows和Macintosh操作系统的自然字体格式。TrueType包含一个各种表格及外廓呈现的继承集。字符提示可以基于每字符及点阵数进行,从而在屏幕分辨率下得到质量非常好的结果。Windows和Mac的TrueType字体很少有不同,尽管本来它们的不同可以大到禁止跨平台使用。
TrueType集合
TrueType集合(或TTC)是TrueType格式的扩展,包含了一些表格允许多个TrueType字体包含在一个TrueType字体文件中。TrueType集合文件目前还比较少见。
TrueType GX字体
TrueType GX字体包含标准TrueType格式的扩展,以允许变异字体(类似多个主字体)。有若干个变异轴,如:种粮,高度以及倾斜。这些轴的取值可以定义而获得几乎任何效果。TrueType GX同时能支持替换外廓呈现来显示连字,语境形状,分数等。至今,TrueType GX只在Mac中使用(参见[TRUETYPEGX])。
Type 1字体
Type 1字体,由Adobe Systems开发,是最早出现的向量字体之一。Type 1字体通常包含228个字符,其外廓呈现用3次贝塞尔曲线描述。Mac,Windows以及X都相近但独立的格式;Adobe为这三个平台提供Adobe Type Manager。Type1c是最近发展的Type 1外廓呈现的无损压缩存储格式。
URI绑定
为一个给定的WEB站点锁定一个特定字体资源的过程。通过在字体资源中嵌入加密的URI或数字签名的使用断言而实现。

C.2 获取字体

    不同的平台使用各种不同的字体格式。要选择一个优先的字体格式,使用的是透明内容沟通方式(参见[NEGOT])。它总能指出字体何时不再被引用,因为URI嵌入在字体描述之中。某个特定的实现会知道它支持哪些可下载字体格式,从而使用格式提示而避免下载它不支持的格式中的字体。

C.3 Panose数字的含义

Illustration of Panose-1   [D]

    Family,Serif Style和Proportion选项由Windows 95系统用来进行字体选择和匹配。

    这十个选项的含义以及可以取的值(括号中给出)在下面列出。这些是最通常的情形,其“family”为2,Text and Display。(如果这第一个数字取值不同,那么剩余九个数字的含义也随之不同)。关于Panose-1的更多细节,参见[PANOSE]

Family
Serif Style
Weight
Proportion
Contrast
Stroke Variation
Arm Style
Letterform
Midline
XHeight

    Panose-2(参见[PANOSE2])是一个字体分类和匹配技术更复杂的规范。例如,拉丁字体的衬线特性可以和日文字母的终止笔划进行比较。

Illustration of Panose-2

    Panose-2数值不存储于任何已知的字体格式中,但是可以测量。

C.4 对TrueType字体缩减Unicode范围

    该信息可以通过观察OS/2表(如果有)中的ulUnicodeRange位得到,它保存了集合中的一个位表示。该表格在微软的TrueType规范版本1.66中定义。如果将这个信息考虑成一个集合,每个元素对应Unicode 1.1字符块,集合中出现该元素表示该字体有一个或多个外廓呈现来代表该块中的至少一个字符。 该集合有128个元素,描述如下表。次序一般按照Unicode 1.1标准中的次序。它可以用来转换TrueType字体中的信息到CSS的'unicode-range'描述子。

块名 Unicode范围

01Basic LatinU+0-7F
12Latin-1 SupplementU+80-FF
24Latin-1 Extended-AU+100-17F
38Latin Extended-BU+180-24F

41IPA ExtensionsU+250-2AF
52Spacing Modifier LettersU+2B0-2FF
64Combining Diacritical MarksU+300-36F
78GreekU+370-3CF

81Greek Symbols and CopticU+3D0-3EF
92CyrillicU+400-4FF
104ArmenianU+530-58F
118HebrewU+590-5FF

121Hebrew Extended-A
Hebrew Extended-B
?? what ranges ??
132ArabicU+600-69F
144Arabic ExtendedU+670-6FF
158DevanagariU+900-97F

161BengaliU+980-9FF
172GurmukhiU+A00-A7F
184GujaratiU+A80-AFF
198OriyaU+B00-B7F

201TamilU+B80-BFF
212TeluguU+C00-C7F
224KannadaU+C80-CFF
238MalayalamU+D00-D7F

241ThaiU+E00-E7F
252LaoU+E80-EFF
264GeorgianU+10A0-10EF
278Georgian ExtendedU+10F0-10FF ??

281Hangul JamoU+1100-11FF
292Latin Extended Additional-
304Greek ExtendedU+1F00-1FFF
318General PunctuationU+2000-206F

321Superscripts and Subscripts-
332Currency SymbolsU+20A0-20CF
344Combining Marks for SymbolsU+20D0-20FF
358Letterlike SymbolsU+2100-214F

361Number FormsU+2150-218F
372ArrowsU+2190-21FF
384Mathematical OperatorsU+2200-22FF
398Miscellaneous TechnicalU+2300-23FF

401Control PicturesU+2400-243F
412Optical Character RecognitionU+2440-245F
424Enclosed AlphanumericsU+2460-24FF
438Box DrawingU+2500-257F

441Block ElementsU+2580-259F
452Geometric ShapesU+25A0-25FF
464Miscellaneous SymbolsU+2600-26FF
478DingbatsU+2700-27BF

481CJK Symbols and PunctuationU+3000-303F
492HiraganaU+3040-309F
504KatakanaU+30A0-30FF
518BopomofoU+3100-312F

521Hangul Compatibility JamoU+3130-318F
532CJK Miscellaneous??
544Enclosed CJK Letters and MonthsU+3200-32FF
558CJK compatibilityU+3300-33FF

561HangulU+AC00-D7FF
598CJK Unified IdeographsU+4E00-9FFF

601Private Use AreaU+E000-F8FF
612CJK Compatibility IdeographsU+F900-FAFF
624Alphabetic Presentation FormsU+FB00-FB4F
638Arabic Presentation Forms-AU+FB50-FDFF

641Combining Half MarksU+FE20-FE2F
652CJK compatibility FormsU+FE30-FE4F
664Small Form VariantsU+FE50-FE6F
678Arabic Presentation Forms-BU+FE70-FEFF

681Halfwidth and Fullwidth FormsU+FF00-FFEF
692SpecialsU+FFF0-FFFD

    TrueType位系统的问题是,它绑定于Unicode 1.1,因而不能和Unicode扩展协同,例如它无法表示藏文,或者其它在Unicode 2.0或更晚版本中引进的语种。

C.5 描述子自动生成

    编辑工具应该允许样式表作者增加及修改字体描述子。然而在某些情况下,编辑工具可以通过本地安装的字体帮助自动生成样式表中引用到的字体的描述子。对于那些子集化或转换字体以供动态下载的工具而言也是它的功能。

    对于一般字体格式,下表给出了去哪里找这些信息的建议。

描述子 Type 1 TrueType和OpenType TrueType GX [TRUETYPEGX]
'ascent' AFM/PFM文件中的'Ascender' 'hhea'表中的'Ascender'或(偏好)'OS/2'表中的'sTypoAscender' 'fmtx'表里的'horizontalBefore'
'baseline' bsln表,参见注解
'bbox' FontBBox,字体字典 'head'表的'xMin','xMax','yMin'和'yMax'项
'cap-height' AFM/PFM文件中的CapHeight
'descent' AFM/PFM文件中的'Descender'
'mathline' bsln table
'font-family' FamilyName,fontinfo字典 名称表
'stemh' StdHW,AFM/PFM文件中的私有字典
'stemv' /StdVW,私有字典 cvt表格
'topline' bsln
'unicode-range' cmap文件 OS/2表,参见附录C
'units-per-em' FontMatrix,字体字典 unitsPerEm,头表格
'widths' hmtx表格