FontForge 与字体设计

介绍如何使用 FontForge 创造新字体的书

下载 [ePUB] | [MOBI] | [PDF]
View project onGitHub

术语表

A

Abjad

辅音音素文字(Abjad)是一个闪语族(Semitic)语言使用的书写系统类型(希伯来文、阿拉伯文等)的技术术语,有表示所有辅音的字形但是读者必须准备好猜测两个辅音之间添加什么元音。

希伯来文与阿拉伯文有可选的元音标记,被称作“不纯的”辅音因素文字。

参见:字母表,元音附标文字,音节字母和相关的维基百科条目(http://en.wikipedia.org/wiki/Abjad)。

Abugida

元音附标文字(Abugida)是字母表和音节字母之间的地方。印度语言书写系统可能是最著名的元音附标文字。

在大多数元音附标文字中有独立的辅音字形,每个辅音都隐含地后面跟着一个默认的元音发音。所有的元音除了默认的都将被标记变音符号或一些其他基本辅音的修改。

一个元音附标文字与音节字母区别在于代表以给定的辅音为开始的音节的图片(也就是辅音的字形)有一个共同主题,而音节字母中即使两个以共同辅音为开始的音节字母其音节也不同。

一个元音附标文字与辅音音素文字不同之处在于元音(除了默认的)必须标记在在元音附标文字上。

参见:字母表,辅音音素文字,音节文字和相关的维基百科条目(http://en.wikipedia.org/wiki/Abugida)。

Accent(重音)

参见变音符号

Advance Width(步进宽度)

当前字形的开始与下个字形的开始之间的距离。有时候被称作是字形的宽度。参见竖直步进宽度。

Alphabet

全音素文字(Alphabet)是一种拥有所有音素的字形书写系统——类似于辅音和元音——并且(无论如何在理论上)一个词中所有的音素会以一个适当的字形标记。

参见:辅音音素文字,元音附标文字,音节文字和相关的维基百科条目(http://en.wikipedia.org/wiki/Alphabet

Apple Advanced Typography

Apple对基本TrueType字体的扩展。包括上下文的替换,连字,字距紧缩等。也包括变形的字体。

Arm

字母悬挂离开右边的部分。

Ascender

升部(Ascender)是小写字母超出x高度的字干。“l”有一个升部。

参见x高度,大写高度,降部,上突,基线。

Anchor Class(锚类)

用来指定标识符到基本字形和手写体GPOS子表。

Ascent

在传统的排印中字体的顶部是从区块的顶到基线的距离。

在现代排印中得确切意义似乎在不同的定义者中会变化。

ATSUI

苹果的先进的排印系统。也称为Apple Advanced Typography。

B

Baseline

基线(Baseline)是字母(拉丁字母、希腊字母、西里尔字母)放置的水平线。基线在不同的书写字母中可能有不同的位置。在印度语书写字母中多数字母下降超过基线。在CJK书写字母中竖直基线通常在字形的中间。BASE与bsln表允许你指定不同书写字母的基线相对于其他应该如何对齐。

参见x高度,大写高度,顶部,底部,上突。

贝塞尔曲线或者贝塞尔样条曲线

贝塞尔(Bézier)曲线在手册主要部分的贝塞尔一章。

Bidi

双向字符集文本。这是包含从左到右和从右到左书写字母的文本区域。例如英文文本引用阿拉伯语。嵌套引用可能让事情更加复杂。Unicode标准包含了一个放置Bidi文本的算法。参见:Boustrophedon。

Black letter

黑体(Black letter)是基于中世纪手写的任何类型字体家族。

参见哥特体(gothic)。

BMP(Basic Multilingual Plane,基本多语种平面)

Unicode的前65536码点。它们包含了现代世界中大多数的普通字符。参见

  • SMP: Supplementary Multilingual Plane (0x10000-0x1FFFF)
  • SIP: Supplementary Ideographic Plane (0x20000-0x2FFFF)
  • SSP: Supplementary Special-purpose Plane (0xE0000-0xEFFFF)

Bold

粗体(Bold)是一个常见的字体样式。字形的字干比普通字体更宽,给字体以较暗的印象。粗体是几个容易地转换成其他书写字母的LGC样式中的一种。

Bowl

弧(Bowl)是字母的圆的部分。

Bopomofo

注音符号(Bopomofo)是一个(1911~现代)汉语(普通话)字母表,用来在字典中表示汉字的注音。

Boustrophedon

牛耕式转行书写法(Boustrophedon)指的是“像牛耕一样”书写,书写方向从左到右和从右到左交替。早期字母表(老迦南语和非常早的希腊语(和出人意料的fuþark))使用它。从右到左的字形常常是从左到右的字形的镜像。据我所知,没有现代书写系统使用这种方法(OpenType也对它没有任何支持)。参见Bidi。

C

Cap-height

大写高度(Cap-height)是一个大写字母在基线上的高度(一个顶部平的字母比如“I”与弯曲的字母比如“O”截然相反)。

参见X高度,顶部,底部,上突,基线。

CFF

紧凑字体格式(Compact Font Format)在OpenType postscript字体内使用最普遍,即使没有SFNT包装也是一个有效的字体格式。这是带有PostScript Type2 CharStrings的字体的原生字体格式。

Character

字符(Character)是柏拉图式的理想具体化到至少一个字形中。例如字母“s”是一个具体化到几种不同字形的字符,包括“S”,“s”,“s”,“ß”,长s等。需要注意的是这些字形可能看起来互相非常不同,但是尽管积分符号的字形可能与长s字形相同,但它们是不同的字符。

Character set

字符集(character set is)是字符的一个无序集合。

CID

字符识别符(Character Identifier),一个数字。在一些CJK PostScript字体中,字形并没有命名但是通过字符识别符数字来引用。

以CID为键的字体(CID-keyed font)中的字形通过CID而不是名称来索引。

CJK

中文,日文,韩文(Chinese,Japanese,Korean)。这三种语言的需要字体带有数量庞大字形。这三者使用了相同的基于汉字的书写系统(尽管它们在各自国家经历了分割演化,中国大陆的字体也确实与台湾和香港所使用的不同)。

日文和韩文也有语音音节表。日文有两个音节表,平假名和有约60个音节的片假名。韩文有一个音节表,有数万个音节的韩文(Hangul)。

CJKV

中文,日文,韩文,越南文(Chinese,Japanese,Korean,Vietnamese)。这四种语言需要字体有数量庞大的字形。

Condensed

紧缩(Condensed)字体的字形的字干之间的间距和字形之间的间距被缩减。

Conflicting hints

如果一个字形包含两个提示,其中一个的开始或者结束点在另一个的范围内,那么这两个提示冲突。它们可能不会同时有效。

Counter

一个字形的对立面(Counter)是字形中完全或部分闭合的白色部分。o和n都有对立面。i和l没有。e有对立面。B有两个对立面。

D

Descender

降部(Descender)是扩展到基线以下的小写字母的字干。“p”有一个降部。

参见x高度,大写高度,顶部,上突,基线。

Descent

在传统排印中字体的下降是从字体块的底部到基线的距离。

这意味着在现代排印中变得精确度更低。

Device Table

设备表(Device Table)是OpenType中的一个概念,允许您输入间距的调整以准备好栅格化到特定的像素尺寸。如果一个在大多数时间都有效的字距值在一个12像素字体的字形中排列起来很丑,那么你可以添加一个特别的 到只应用在12像素的间距上(另一个是14,18,或者你需要的任何大小)。类似的功能锚标记也需要。

Diacritics

许多语言采用了顶部或底部有标记字母,有时标记甚至穿过字母。这些标记被称作变音符号(Diacritics)。有时它们也被称作“重音(accents)”,尽管这是个不太准确的术语。这些字母的例子包括À à å Å Ü ü Ø ø Ç ç。

Didot point

迪罗磅(Didot point)是欧洲的一种磅。每23.566毫米是62 2/3磅(2.66磅/毫米或者67.55磅每英寸)。也有“公制”的迪罗磅:.4毫米。

Distortable font(变形字体)

参见多主字体。

E

em

一个线性单位,等于字体的磅值。在一个10磅的字体中,em将会是10磅。em-space是与磅值一样宽的空白空间。em-dash是一个与磅值一样宽的水平的条形。

em-square是一个每个边都是1em的正方形。在传统排印中(此时每个字母被铸造在金属上)字形必须绘制在em-square中。

em unit

在一个可伸缩的字体中,“em”细分到单位。在一个Postscript字体中通常em有1000个单位。在一个TrueType字体中em可能有512,1024或2048个单位。在一个Ikarus字体中有15000个单位。FontForge使用这些单位作为其坐标系统的基础。

en

“em”的一半

Encoding

编码(Encoding)是一个字节码集合到一个字符集之间的映射。它确定了什么字节串代表什么字符。名词“编码”和“字符集”经常作为同义词使用。ASCII规范同时指定了一个字符集和一个编码。但是CJK字符集经常会一个字符集有多个编码(并且一些编码有多个字符集)。

在更复杂的情况下,有可能有多个字形关联到每个字符(在阿拉伯文中大多数字符有至少4个不同的字形)并且客户端程序必须选取适合当前上下文字符的字形。

Eth – Edh

旧日尔曼语字母“ð”对应浊音的(英文的)“th”发音(“this”中的发音 — 大多数说英语的人甚至不知道英语中的“th”有两个发音关联到它,但它确实如此,参见Thorn)。

Even-Odd Fill rule

为了使用奇偶填充规则(Even-Odd Fill rule)确定一个像素是否应该填充,从一个点到无穷远(在任何方向上)绘制一条线,然后数轮廓穿过这条线的次数。如果数字是奇数,那么填充这个点,如果是偶数,那么不填充这个点。这个方法被2.0级别以后的Postscript栅格化用在字体上。参见Non-Zero Winding Number Fill。

Extended

一个扩展(Extended)字体是一种字形的字干之间的间距和字形之间的间距增加的字体。

Extremum (plural: Extrema )

极值(Extremum)是数学上的曲线上的一点,曲线在这点达到其最大值或最小值。在一个连续曲线上,这个点会出现在端点(是钝的)或者dx/dt=0或dy/dt=0处。

在字体设计中,字形的极值是轮廓的最高或最低点,也包括其最左点和最右点。确保一个字形所有极值处都有曲线上的点是重要的,因为在字体使用时它简化了文本渲染。

F

Features (OpenType)

创建用于复杂文字(或者比较不复杂的文字)的字体时各种各样的变换(如连字)必须在准备用于显示之前被应用到输入的字形。这些变换被定义为字体功能并以4个字母(OpenType当中)或2个字母(苹果当中)为标识打上标签。这意味着这些功能是由微软或者苹果预先定义的。FontForge允许你在创建时(或稍后)为每一个查询信息标以一个或几个功能。

Feature File

这是Adobe设计的用来描述OpenType功能的文本语法。他可以用来将功能和查询信息从一个字体移动到另一个。

Feature/Settings (Apple)

它们粗略地等于上面的OpenType的功能,它们是由苹果定义的。

Font

字形的一个集合,通常有至少一个字形关联到字体的字符集中的每个字符,通常还有带有编码。

一个字体包含将字节串转换成代表这些字节指定的字符的图片集所需的信息。

在传统的排字中,一个字体是小金属块的集合,每个上面都有雕刻字母的图像。传统上每个磅尺寸都有一个不同的字体。

Font Family, or Family

字体家族(Font Family,或者Family)是相关字体的集合。经常包含普通体,斜体和粗体样式。

FreeType

一个栅格化字体的库。在FontForge中广泛地用来理解TrueType字体的行为并能够比FontForge在不受帮助下完成的栅格化更好。

Fuþark (Futhark)

老日尔曼语的古代北欧书写字母。

G

Ghost Hint

有时指出水平边缘确实是水平的是重要的。但是边缘并没有制作普通的字干的相应的边缘。在这种情况下一个特殊的提示在-20(或-21)宽度下使用。一个幽灵提示(Ghost Hint)必须全部放置在一个字形总。如果它处在一个轮廓的顶部使用-20宽度,如果在底部则使用-21。幽灵提示也应该处在BlueZones中。

(这一规格也提到竖直的幽灵提示,但是由于没有竖直BlueZones,所以并不清楚它们是不是应该被使用)。

Glyph

一个字形是一张图片,通常关联到一个或多个字符。所以用来绘制“f”的字形关联到字符f,而连字“fi”的字形同时关联到f和i。在简单的拉丁字体中,关联关系通常是一对一(也就是一个字形恰好地关联到一个字符),而在更复杂的字体或手写中可能两个字形关联到每个字符(在文艺复兴时期的印刷中字母“s”与两个字形关联,一个是长s,用在开头和中间,另一个是短s,用在词的结尾)。在手写中一个字形关联到两个或更多字符。

字体是字形和一些从字符到字形的映射形式的集合。

Grid Fitting(网格适应)

在TrueType字形栅格化之前,它们要经过一个被称为网格适应的过程,会运行一个 很小的程序(关联到每个字形),这个程序将会移动字形轮廓周围的点直到它们更好地适应像素网格。

Gothic

德国僧侣在古腾堡生活的时代使用的一个黑体字书写样式,他在他的印刷字体样式中复制了它们的书写。意大利的字体设计者(在印刷术传播到南方以后)嘲笑这个样式,它们更喜欢罗马人留下的字体设计。它们使用表示轻蔑的哥特(Gothic)一词,帮助破坏罗马王朝的哥特人的样式。

Graphite tables

Graphite是TrueType的一个扩展,将几个表嵌入到一个字体中,包括上下文形状、连字、重排序、分割字形、双向、变音符号堆叠、复杂位置等的规则。

这听起来更像OpenType — 除了OpenType依赖于文本布局惯例来了解关于涉及字形的许多东西。这意味着OpenType字体在没有新版本操作系统推出的情况下不能设计用于一种新的语言或者手写。而Graphite表包含了所有这些隐藏的信息。

Apple Advanced Typography提供了更好的对比,但是Graphite表被认为更容易构建。

SIL International提供了一个自由的Graphite编译器。

Grotesque

参见sans-serif。

H

Han characters(汉字)

汉字,在中国、日本、韩国使用的表意文字(并且我认为在许多其他亚洲国家也是这样(越南?)),都基于在中国形成的书写系统。

Hangul

韩文音节表。基于一个字母表的唯一的音节表(无论如何我这么认为) — 字母表中的字母从不单独出现,只有两个或三个作为一组才能组成一个音节。

Hanja

汉字的韩文名称。

Hints

它们在手册主要部分详细描述了。它们帮助栅格化程序在小的磅值下绘制好字形。

Hint Masks

在轮廓上的任何给定点上提示(Hint)可能不会冲突。但是一个字形中不同点上可能有冲突的提示。因此偶尔一个轮廓可能改变那个提示是激活的。激活的提示的每个列表被称作提示遮罩(Hint Mask)。

Hiragana

两个日语音节表中的一个。平假名(Hiragana)和片假名(Katakana)有相同的发音。

I

Ideographic character

不必拼写出来就可以代表一个概念的单个字符。通常用来表示汉字。

Italic

斜体(Italic,也称意大利体)字体的一个倾斜的样式,用来表示强调。

斜体与倾斜(Oblique)不同之处在于从水平到倾斜形式所涉及的不仅仅是偏斜字体。通常小写的a修改为a,小写字母的衬线比如i(i)改变,并且字体通常获得更加流动的感觉。

J

Jamo

韩文字母表中的字母(Jamo)。它们几乎从不单独出现,通常作为Hangul音节的一部分以三个为一组出现。字母被分为三类(第一类和第三类有相当大的重叠),choseong — 初声,词首辅音,jungseong — 中声,中元音,jongseong — 终声,词尾辅音。一个音节通过将初声放在em-square的左上,中声放在右上,终声可选地放在下部来组成。

K

Kanji

汉字的日文名称。

Katakana

两个(现代)日文音节表之一。平假名(Hiragana)和片假名(Katakana)有相同的发音。

Kerning

当两个字形之间的默认间距不适合,字体可能包含额外信息来指出当一个给定的字形(比如“T”)后面跟着另一个字形(比如“o”)那么“T”的步进宽度应该调整一定数量来获得更加讨人喜欢的显示。这个过程就是字距紧缩(Kerning)。

在使用金属字体的时候,实际上不得不切削字体金属块上的金属来提供更整洁的适应。

Kern pair

字距紧缩信息所指定的一个字距紧缩对。

Kerning by classes

字体中的字形被分开到一些字形类别。有一张很大的表来指定列别之间所有可能的联合的字距紧缩。通常由于每个类别经常包含多个字形,所以这将会比设置字距紧缩对要小。

Knuth, Donald(高德纳)

他是一个数学家,对糟糕的排版感到如此厌倦以至于在二十世纪七八十年代创造了自己的字体设计系统排字布局程序,分别被称作MetaFont和TeX。

L

Left side bearing

左跨距(Left side bearing)从一个字形的原点到其最左扩展的水平距离。这可能是正数或负数。

Lemur

狐猴(Lemur)是原猴亚目的猴灵长类动物的一个单型属,目前只在马达加斯加发现,但是该科的正式成员(大约五千万年前)曾经更加广泛地传播。

Ligature

连字(Ligature)是由两个毗连的字形组成的单个字形。拉丁文手写中的一个常见的例子是“fi”连字比顺序排列感觉更好。

Linespace

行距是字体的连续的行之间的距离。

LGC

拉丁文,希腊文和西里尔文。这三个字母表在过去的几千年里一起进化。字母形式非常类似(一些字母是共享的)。许多概念比如“小写”,“斜体”可以应用在这三个字母表上而不能应用在任何其他上面(好吧,亚美尼亚语也有小写字母)。

M

Manyogana

一个早期的日语手写体,是平假名和片假名的祖先。万叶假名(Manyogana)使用汉字表示它们的发音,许多年后这些汉字简化为平假名和片假名。

Monospace

等宽字体(Monospace)是一种所有字形都有相同宽度的字体。它们有时也被称作是打字机字体。

Multi-layered fonts

多层字体是FontForge的自有术语。PostScript type3字体和SVG字体比普通字体拥有更多的绘制可能性。普通字体可能只能被来自图形环境的一种颜色填充。这两种字体可以被几种不同的颜色填充或描边,包括图片,渐变条虫等。FontForge可以配置为支持这些字体(由于需要占用更多的内存,它默认并不这么做)。

$ configure --with-type3
$ make
$ make install

Multiple Master Font

一个多主字体(Multiple Master Font)是一种定义了无穷的相关字体的一个PostScript字体模式。多主字体可以在沿着几个轴变化,例如你可能有一个定义了一个字体家族的不同粗细和不同宽度多主,它可以用来生成:细体,普通体,半粗体,粗体,紧缩字体,扩展字体,粗紧缩字体等。

Adobe不再开发这种格式。苹果有一种格式可以实现同样的效果但是不会产生许多例子。FontForge对两者都支持。

N

Namelist

名称表(Namelist)是Unicode码点到字形名称的一个映射。

Non-Zero Winding Number Fill rule

为了使用非零环绕数填充规则(Non-Zero Winding Number Fill rule)确定是否应该填充一个像素,从这点到无穷远绘制一条直线(沿任意方向)并计算轮廓穿过这条线的次数。如果轮廓沿着顺时针方向穿过这条线则加1,如果轮廓按逆时针方向穿过则减一。如果结果非零则填充像素。如果是零则留空。这个方法被TrueType和更老(版本2之前)的PostScript字体用来栅格化字体。

参见奇偶填充规则

O

Ogham

欧甘文(Ogham)是旧的凯尔特铭文手写体。

OpenType

字体的一个类型。是合并PostScript和TrueType字体到一个规范的一次尝试。

一个OpenType字体可能包含一个TrueType或者一个PostScript。

它包含了许多与TrueType相同的信息数据表,像编码。

令人困惑的是它也用来表示Adobe和微软(没有苹果)添加到TrueType中的先进的印刷表。这些包括上下文连字,上下文字距紧缩,字形替换等。

并且微软Windows使用它表示包含“DSIG”(Digital Signature)表的字体。

OpenType Tables

每个OpenType字体中都包含一系列的表(OpenType Table),每一个表分别包含某一特定类型的信息。

Oblique

字体的一个倾斜样式,通常用来表示强调。

伪斜体(Oblique)与斜体(意大利斜体)不同之处在于从水平到倾斜形式涉及到一个数学上或机械上的偏斜字母形式。

Overshoot

为了“O”的弧形与“I”的平坦顶部看起来高度一致,它倾向于“上凸(Overshoot)”大写高度(或者x高度),或者将基线下凸(undershoot)大约大写高度(或x高度)的3%。对于一个三角形(比如“A”)来说上突甚至更大,或许是5%。

这些指引基于我们眼睛的工作方式和其产生的视觉错觉,来自Peter Karow的Digital Formats for Typefaces,第26页。

上凸也依赖于一个字体的磅值,磅值越大上凸应该越小。通常现代字体将会用在多个磅值上,但是在一些字体家族中对不同的磅值有不同的字体样式,在这一情况下上凸将会依样式不同而变化。

参见X高度,大写高度,顶部,底部,基线

P

Panose

描述字体的一个系统。参见HP’s PANOSE classification metrics guide。也有一个扩展叫做Panose 2

FontForge只知道拉丁字体的分类方案。其他方案为其他手写体而存在。

PfaEdit

这是FontForge的早期名称。最初的设想是它应该只编辑type1 ASCII字体(因此得名),它迅速演化超过了这一点,但是重命名花掉了我三年时间。

Phantom points

在TrueType字体中有一些添加到每个字形上的点,它们并不被组成字形的轮廓所指定。它们被称作幽灵点(Phantom points)。这些点中的一个代表左跨距,另一个是字形的步进宽度。TrueType说明(提示,hints)允许移动这些点,就像其他任何可能被移动的点 — 从而改变左跨距或者步进宽度。TrueType的早期版本只提供这两种幽灵点,较新的版本也支持上跨距幽灵点和竖直步进宽度的幽灵点。

Pica

宽度的一个单位(至少在美国)定义为35/83cm(或者大约1/6英寸)。它用来测量文本行高(比如“30picas和4磅长”),但是不是用来测量字体高度。

在文艺复兴排印中,在有磅之前字体的尺寸有有名称,“pica”用在这种上下文环境中。比如:“Great Canon”,”Double Pica”,”Great Primer”,“English”,“Pica”,“Primer”,“Small Pica”,“Brevier”,“Nonpareil”和“Pearl”(每个名称代表一个渐进更小的字体尺寸)和参见Wikipedia上Caslon的字体范例表

Pica point

英美磅值。72.27磅美英寸(2.85磅/毫米)。

Point

磅是一个度量单位。在计算机诞生之前(至少)有三种不同的对“磅”的常用定义。一个用在Anglo-Saxon印刷世界的是72.27磅每英寸(2.85磅/毫米)的“pica point”,用在欧洲大陆的是62 2/3磅每23.566毫米的迪罗磅(2.66磅/毫米或者67.54磅/英寸),法国有时使用中值磅(Median point,72.78磅每英寸,2.86磅/毫米)。

迪罗磅和pica磅被安排成在两种系统下使用给定的磅值文本将会有近似相同的大写高度,迪罗磅将会在大写上有额外的空白来包含在大多数非英语拉丁文手写体中经常出现的重音。

这有有趣的副作用,为欧洲人使用而设计的字体的文本主体给出的竖直em应该有更小的比例。我认为计算机字体倾向于忽略这点,因此大概欧洲的打印机现在设置了更多行距。

如我可以告诉你的,计算机倾向于以pica磅的近似值工作(但是这可能是因为我在美国),PostScript使用1/72英寸的单位。

最初字体并不通过磅值来描述,而是通过名称。直到17世纪30年代Pierre Fournier创造了用于指定字体高度的磅系统。接下来这被François-Ambroise Didot改进(因此有了磅的名称)。在1878年芝加哥字体公司首先在美国使用磅系统。在1886年美国磅被标准化 — pica被定义为35/83厘米,pica磅被定义为它的1/12。

Point Size

在传统的排印中一个10磅的字体是每个字形的金属块都10磅高的字体。一个字体的磅值不插铅条的基线到基线的距离。

Point of inflection

曲线上的一个点,在此处它从下凹变为上凹(反之亦然)。或者在数学表示上(连续曲线上)d²y/dx²=0或无穷大处。

三次样条曲线可能包含拐点,二次样条曲线可能不包含。

PostScript

PostScript是许多打印机使用的页布局语言。语言包含集中不同字体格式的规范。手册主体(FontForge)有一节描述PostScript与TrueType如何不同。

  • Type 1:这是PostScript字体的一个旧的标准。这样的字体通常有.pfb(或.pfa)的扩展名。一个Type 1字体被限制为单字节编码(比如只有256个字形可能被编码)。
  • Type 2/CFF:这是一个OpenType字体内使用的格式。它几乎与Type 1相同,但是有一些扩展和一个更紧凑的格式。它通常处于OpenType字体经常包含的CFF包装内。同样CFF字体格式只允许单字节编码,但是OpenType包装扩展它来提供更复杂的编码字体。
  • Type 3:这个格式在字体内完整支持PostScript,但是这意味着不允许有任何提示,因此这些字体在小的磅值下看起来不好。同时大多数(屏幕)栅格花程序并不能处理他们。一个Type 3字体被限制为单字节拜纳姆(比如只有256个字形可能被编码)。
  • Type 0:这个格式用来将许多(Type 1,2或3的)子字体用多字节编码收集到一个大的字体中,用于CJK或Unicode字体。
  • Type 42:一个包装在PostScript中的TrueType字体。某种程度上是OpenType的对手。
  • CID:这个格式用于CJK字体,包含了大量的字形。字形本身被指定为Type 1或Type 2字形格式。CID字体本身没有编码,只是一个CID(一个数字)到字形的映射。一系列外部的CMAP文件用来提供所需的合适的编码。

Python

一种强调代码可读性的计算机编程语言。

R

Reference

一个引用(Reference)是在一个字形中保存另一个字形的一种方式(比如重音字形中的例子)。有时也被成为一个组件。

Right side bearing

右跨距(Right side bearing)是一个字形最右扩展到字形步进宽度的水平距离。它可能是正数或负数。

S

Sans Serif

参见Serif。

Script

文字(Script)是一个字符集和将字符放在一起的相关规则。拉丁文,阿拉伯文,片假名和朝鲜汉字都是文字。

Serif

回溯到两千年前罗马人在石碑上雕刻它们的字母的时候,它们发现可以通过在字形主干的结尾添加精细的线条来减少石头破裂的机会。

这些精细的线条被称作衬线(Serif),能够增加美的作用。早期的字体设计者将它添加到它们自己的字体是为了美观而不是功能性的原因。

在十九世纪末二十世纪初,字体设计者开始设计无衬线的字体。它们最初因为形式看起来如此奇怪而被称为畸形字体(grotesques),它们现在通常被成为无衬线字体。

其他书写系统(希伯来文算一个)有它们自己的衬线。希伯来文衬线与拉丁文(西里尔文或希腊文)衬线非常不同,我也不知道它们的历史。希伯来文衬线只出现在一个字形的顶部。

SFD

SplineFont Database。这些是FontForge自己的个人字体标示。文件是ASCII的并且含糊难读,这里描述格式。2008年5月14日格式在IANA注册为一个多用途互联网邮件扩展类型(MIME)类型: application/vnd.font-fontforge-sfd。

(不幸的是)其他人也使用首字母缩写“sfd”。

  • Digital PDP-10迷你电脑的Tops-10操作系统使用sfd来表示“子文件目录”。Tops-10在被称作“用户文件目录”的顶层(Home)目录和子目录之间加以区别。
  • TeX使用它来表示“子字体定义”,一个Tex的sfd文件包含如何为CJK或Unicode字体拆分成小的子字体的信息,每个都有Tex(或者旧版的Tex)需要的单字节编码。

SFNT

名称用来表示一般字体格式,包含TrueType、OpenType、苹果的位图、X11的位图、过时的“typ1”字体和Adobe的SING字体(毫无疑问还有其他)。SFNT格式描述字体表如何在一个文件中放置。每个上面格式都遵循这一一般想法但是包含了更多的具体要求(比如需要什么表和每个表的格式)。

SIP

Unicode的表意文字补充平面(Supplementary Ideographic Plane,0x20000-0x2FFFF)。用在罕见的汉字上(大多数平时不再使用)。参见

  • BMP: Basic Multilingual Plane (0x00000-0x0FFFF)
  • SMP: Supplementary Multilingual Plane (0x10000-0x1FFFF)
  • SSP: Supplementary Special-purpose Plane (0xE0000-0xEFFFF)

SMP

Unicode的多文种补充平面(Supplementary Multilingual Plane,0x10000-0x1FFFF)。用在古代人造的字母表和音节表 — 像Linear B,Gothic和Shavian。参见

  • BMP: Basic Multilingual Plane (0x00000-0x0FFFF)
  • SIP: Supplementary Ideographic Plane (0x20000-0x2FFFF)
  • SSP: Supplementary Special-purpose Plane (0xE0000-0xEFFFF)

Spline

样条曲线(Spline)是一条弯曲的线段。FontForge中使用的样条曲线都是第二类或第三类样条曲线(平方或立方)和Raph Levien的回旋样条曲线。

SSP

Unicode的特别用途补充平面(Supplementary Special-purpose Plane,0xE0000-0xEFFFF)。用得并不多。参见

  • BMP: Basic Multilingual Plane (0x00000-0x0FFFF)
  • SMP: Supplementary Multilingual Plane (0x10000-0x1FFFF)
  • SIP: Supplementary Ideographic Plane (0x20000-0x2FFFF)

State machine

状态机(State machine)就像是一个非常简单的小程序,它们用在mac上来执行上下文替换和字距紧缩。状态机对话框可以从Element->Font Info->Lookups打开。

“状态机”包含了一个状态表,每个状态依次包含了一系列依赖于输入的潜在转换(到相同或不同的状态)。在字体内的状态机中,机器从一个被称作起始状态的特殊状态开始,读取文本中的字形流。每个独立的字形将会导致一个状态转换的发生。机器中发生的转换也可能指定字形流的改变(条件替换或紧缩)。

Stem

字干(Stem)是字母中竖直的部分。I和l除了衬线外都是字干。H由两个字干和一个横梁组成。其他包含字干的字形有B b F f K k P p R r 1 4。

Strike

删除线(Strike)是一个字体的特殊实例。最常见的位图删除线是字体的一个特殊的像素尺寸。

Style

一个字体有多种常规的变形。大概在任何书写系统中字形的字干的厚度可能是变化的,被称作是字体的粗细(weight)。常见的粗细是普通体和粗体。

在LGC字母表中一个斜体出现并用来表示强调。

字体经常被压缩为一个紧缩的样式,或者扩展成为一个扩展样式。

各种其他系统偶尔用到:underline,overstrike,outline,shadow。

SVG

可缩放矢量图形(Scalable Vector Graphics)。一个用于绘制矢量图的XML格式。它包含了一个字体格式。

Syllabary

音节表(Syllabary)像字母表一样,是一个语音上的书写系统。与字母表不同,书写的发音单元是音节而不是音位。在日文片假名中“ka”音由一个字形来代表。音节表倾向于比字母表大(日文片假名需要大约60个不同的字符,而韩文Hangul需要几万个)。

参见:abjad,abugida,alphabet和相关维基百科条目

T

Terminal

一个字形的末端(Terminal)是末端的那部分。f的顶部有一个末端。s有两个末端。当一个字形有多个衬线时,衬线可能与衬线不同。因为如果f在一个衬线样式中那么底部将有一个衬线,那么不认为底部是一个末端。但是j和y的底部被认为是末端。同样3有两个末端,一个在顶部一个在底部。中部被认为是连接而不是末端。这些部分的分类可能更多地通过惯例来确定而非严格的逻辑。

TeX

一个文字排版程序包。

Thorn

用于不发音(英文的)“th”发音(正如单词“thorn”中)的德文字母“þ”,我认为这与希腊语Theta有相同的发音值。目前这个字形的损坏的版本存在于“the”中的“ye”。参见Eth。

True Type

苹果发明并分享给微软的一个字体。它用来指明轮廓的是二次(二次方)贝兹曲线,包含创新的提示控制和包含任何认为对字体重要的附加信息表的一个可扩展的系列。

苹果和Adobe/微软用不同的方式扩展这些表来包含非拉丁手写体(或复杂的拉丁手写体)所需要的先进的排字特性。参见Apple Advanced Typography和OpenType。

TrueType Tables

每个TrueType字体包含表的一个集合,每个表包含一些特定的信息。

Type 1

PostScript字体的一个类型。

Type 2

PostScript字体的一个类型,在OpenType字体包装中使用。

Type 3

PostScript字体的一个非常普通的类型。

Type 0

PostScript字体的一个类型。

Type High

在金属字体的年代,这是金属块的高度 — 印刷面到它所放置的平台的距离。

Typewriter

参见Monospace。

U

Unicode

一个字符集/编码,尝试包含当前世界上使用的所有字符,也包含许多历史上使用的。更多信息参见Unicode consortium

  • BMP: Basic Multilingual Plane (0x00000-0x0FFFF)
  • SMP: Supplementary Multilingual Plane (0x10000-0x1FFFF)
  • SIP: Supplementary Ideographic Plane (0x20000-0x2FFFF)
  • SSP: Supplementary Special-purpose Plane (0xE0000-0xEFFFF)

Undershoot

参见Overshoot。

UniqueID

这是PostScript字体使用的一个字段,以前作为唯一确认字体的机制,随后Adobe做出决定认为它不够好并创建了XUID(扩展的Unique ID)字段。Adobe现在决定不需要两者。

TrueType的“name”表中有一个非常类似的字段。

UseMyMetrics

这是一个TrueType的概念,强制一个复合字形(例如一个带重音的字母)的宽度与其组件相同(例如被添加重音的基本字母)。

V

Vertical Advance Width

CJK文本经常会按竖直方向书写(有时按水平方向),因此和水平步进一样,每个CJK字形有一个竖直步进。

W

Weight

一个字体的粗细是字形中字干的粗细程度。传统上粗细是被命名的,但是目前数字被应用在粗细上。

细体(Thin)
100

超轻体(Extra-Light)
200

轻体(Light)
300

常规体(Normal)
400

中等体(Medium)
500

半粗体(Demi-Bold)
600

粗体(Bold)
700

重体(Heavy)
800

黑体(Black)
900

Nord

Ultra

White space

字体设计的空白间距包括文本行的距离,字母间的距离,字距和字母内的距离。这是一个广泛的包罗万象的术语。

Width

这是一个轻微模糊的术语,又是用来表示步进宽度(从字形开始到下一个字形开始的距离),又是用来表示从左跨距到右跨距的距离。

X

X-height

基线上小写字母(顶部平坦的像“x”或“z”或“v”,相反的顶部弯曲的像“o”或者有顶部的像“l”)的高度。

参见大写高度,顶部,底部,上凸,基线。

XUID

PostScript字体的Extended Unique ID。现在有些过时。参见Unique ID。