重现 IBM Selectric Composer 字体(2023) --- 在寻找比普通打字机字体更精致的字体时,我发现自己深入研究了 IBM Selectric Composer 的历史——这是一台 20 世纪 60 年代末至 70 年代的排版机器,凭借其精良的字体和比例间距功能,曾广泛用于专业出版领域。 ## 背景 IBM Selectric Composer 是 IBM Selectric 打字机系列的一个特殊变体,专为专业排版而设计。它使用可互换的"字球"(typeball,也称为"golf ball"),能够产生比普通打字机更接近专业印刷品质的输出效果。这台机器支持多种字体和字号,并具备比例间距功能,使其输出的文档看起来更接近专业排版。 ## 字体特点 Selectric Composer 的字体具有以下几个显著特点: - **比例间距**:不同字符占用不同宽度,而非等宽 - **多种字号**:支持从 7 到 12 点不等的字号 - **多种字体风格**:包括衬线体、无衬线体等多种风格 - **专业品质**:输出质量介于普通打字机和专业照相排版之间 ## 数字化复原工作 复原这些字体的过程涉及以下几个步骤: 1. **收集样本**:从历史文档、用户手册和档案资料中收集原始字体样本 2. **扫描与清理**:对样本进行高分辨率扫描,并清理图像中的噪点和瑕疵 3. **矢量化**:将光栅图像转换为矢量轮廓 4. **调整与优化**:对字符进行细致的调整,确保一致性和可用性 5. **添加元数据**:为字体文件添加适当的元数据和字距调整信息 ## 技术挑战 复原过程中遇到了几个主要的技术挑战: - 原始样本质量参差不齐,许多文档经过多次复印,质量有所降低 - 比例间距信息需要从原始文档中重新推算 - 某些字符(尤其是标点符号和特殊字符)的样本极为稀少 - 需要在忠实还原原始设计与提高现代可用性之间取得平衡 ## 成果 经过数月的工作,成功复原了多款 Selectric Composer 字体的数字版本,这些字体现已可供免费下载使用。这些字体为设计师和排版爱好者提供了一种独特的历史风格选择,同时也为保存这段印刷史上的重要遗产做出了贡献。 ## 结语 这个项目不仅是一次技术练习,更是对印刷历史的一次致敬。IBM Selectric Composer 在专业出版领域扮演了重要角色,帮助无数人制作出超越普通打字机水平的专业文档。通过将这些字体数字化,我们得以将这段历史延续下去,让现代设计师也能感受到那个时代独特的排版美学。
摘要
设计师 Jens Kutilek 记录了复刻 IBM Selectric Composer 字体背后的数学与历史研究,深入探讨了这款标志性 1960 年代打字机所采用的单位间距系统及其工程设计约束。该项目涉及对 IBM 9 单位字形宽度系统的逆向工程——这一系统被 Selectric Composer 的可更换"高尔夫球"字球所采用。
暂无内容
查看缓存全文
缓存时间: 2026/05/09 12:35
# 复活 Selectric Composer 字体
来源:https://www.kutilek.de/selectric/
*TL;DR:在开始绘制任何机械系统字体的复刻版之前,你需要先做好数学计算。*
以下文章以"Selectric UN 11 Medium"排版,由 Jens Kutilek 于 2022 年末至 2023 年初根据 IBM 字体样式目录绘制。
### 一种新型打字机
一台磨损严重的早期 Selectric Composer。
来源:Peter Häll/Tekniska museet (https://digitaltmuseum.org/021026358890/composer-mekanisk),CC-BY
1964 年,IBM 着手研发一种新型打字机。
在此之前,除极少数机型外,所有打字机均使用等宽字体,即每个字形占据相同的水平宽度。i、I 和 l 不得不通过添加横线来人为加宽;而 M、m、W、w 等宽字母则不得不被水平压缩。
新款 Selectric Composer 允许将字母分配到七个间距组之一,宽度范围从每字距三到九个单位不等。
字体 Selectric UN 中字形 a、i、m、n、o、w、H、T、W 的左对齐叠加图,附有宽度指示线。
来源:Jens Kutilek
不同的字体大小和样式可通过将基础单位缩放至三种不同尺寸之一来适配。
每个字模上的色码指示了每种字体样式与公称字号组合所需的缩放设置。
| 色码 | 每派卡单位数 | 1 单位宽度 |
|------|-------------|-----------|
| 红色 | 12 | 0.3527 mm |
| 黄色 | 14 | 0.3024 mm |
| 蓝色 | 16 | 0.2645 mm |
一个排版点的大小为 0.35277 mm(1/72 英寸);1 派卡 = 12 点。
这些字模被昵称为"高尔夫球",堪称工程上的奇迹。它们由镀镍塑料制成,重 9 克,制造精度极高。
字模,字体样式为 Selectric UN-11-M(Univers 11 Medium),德语布局。
来源:Jens Kutilek
在字体样式目录中,每个字模的色码和大写字母高度均有标注。例如,"Century"字体样式的参数如下:
| 字体 | 字号 | 颜色 | 大写字母高度 |
|------|------|------|-------------|
| Century | 6 pt | 蓝色 | 5.0 pt |
| Century | 8 pt | 黄色 | 6.0 pt |
| Century | 9 pt | 黄色 | 6.5 pt |
| Century | 10 pt | 红色 | 7.0 pt |
| Century | 11 pt | 红色 | 8.0 pt |
如你所见,8/9 pt 和 10/11 pt 字体共享相同的单位设置,因此它们的字宽实际上是相同的。字母仅以不同高度绘制,以给人造成不同字号的印象。
8pt(上)与 9pt(下)的 Century。注意两种字号完全相同的字宽。
来源:Stephen Coles (https://flickr.com/photos/stewf/38848723502),CC-BY-NC-SA
### 单位化字形宽度的趣味
单位系统在各类排版机器中十分普遍。Lumitype 照相排版机——Univers 字体家族最初正是为其设计——可将任意字形置于 36 种不同宽度之一。Monotype 铸排机则只有 18 个单位。
当前计算机字体通常基于每字距 1000 至 4096 单位的网格,相对于字体大小。
瑞士排版师、IBM 顾问 Max Caflisch 受托为新机器筛选字体。IBM 联系 Adrian Frutiger,询问他是否愿意将其 Univers 字体家族适配到新机器及其 9 单位系统。Frutiger 谈妥了授权条款,并开始将八种样式适配为 7 至 12 点之间的尺寸。
此时,一个问题浮出水面。IBM 的工程师决定,每个字形的单位分配对所有 Composer 字体均保持一致。他们的参照字体只有一种:"Times"——一款具有古典比例的巴洛克式衬线体,其字母(尤其是大写字母)的宽度差异明显。E 的宽度大约是以正方形为基础的 O 和 M 的一半。而 1950/60 年代的流行趋势,恰恰是在视觉上均衡不同字母的宽度差异。
德语布局的单位表如下:
| 单位 | 字符 |
|------|------|
| 3 | i j l . , ' ' - ; |
| 4 | I f r s t ( ) / : ! |
| 5 | J a c e g v z ä ü |
| 6 | P S b d h k n o p q u x y ö ß § * + = 0 1 2 3 4 5 6 7 8 9 |
| 7 | B C E F L T Z |
| 8 | A D G H K N O Q R U V X Y Ä Ö Ü w & % – ? |
| 9 | M W m |
Frutiger 分析了他所能获取的所有字体的字母宽度,并计算了平均值。他将结果呈交给 IBM 工程师,但那时已无法做任何改动了。
其他问题涉及机械零件的精度。某些字形印出来总是过轻或过重;对此的解决方式是修改字形的图稿。
高尔夫球需要在两个维度上旋转,才能让正确的字形面向纸张。某些字形总是偏左或偏右、偏上或偏下。Frutiger 建议可以通过将字形在球上朝相反方向移动来预先补偿,但工程师拒绝了。在他们看来,此类问题应通过机械手段解决,而不是靠"折腾"字形排布来处理。
固定单位系统对 Univers 来说总体尚可,但也有一些奇特之处:
- g 的宽度是根据经典的双环 g 分配的,这种 g 相当窄。然而,Univers 的 g 属于 bdpqg 形状组,具有相同的"肚子"。由于单位固定,g 现在只能被画得更窄。(读者,你到目前为止注意到了吗?)
- 字模上可容纳的字符数量是固定的,选字最初是针对美国市场需求定制的。为了加入德语变音符字母和 ß,必须删去其他字形,但每个位置的预定义宽度仍须沿用。因此,ü 不得不比 u 更窄。
- s 也太窄了。它本应获得 5 个单位而非 4 个,但这不可能实现。
- 另一方面,T 和 F 则不得不被画得比实际需要宽得多。
这些独特之处使得识别 Selectric Composer 排出的文字变得轻而易举。
### Composer 留下了什么
即便 IBM 试图如此呈现:Selectric Composer 在与真正的金属活字或照相排版的比较中仍难以占优。然而在那个年代,它远超普通打字机排版水平,能够填补打字排版不够用而照相排版又过于昂贵之间的空缺。
Selectric Composer 排出的文字出现在 1970 至 80 年代的德国漫画书中,如迪士尼的 [Lustige Taschenbücher](https://en.wikipedia.org/wiki/Donald_Duck_pocket_books),以及小型杂志、企业公文、使用手册和小型印刷店的产品中。
自 1990 年代初起,这台机器迅速被桌面出版的能力所淘汰。
## 字体数字化
### 确定正确的比例
IBM Selectric Composer 的字形宽度基于每字距 9 单位的网格。我认为绘制 OpenType 字体最合适的网格设置是 900 upm,这样 1 个 Composer 单位就对应 100 个字体单位。
以 900 每字距单位绘制字体完全可行。它接近通用的 1000 upm——大概 99% 的 OpenType CFF 字体都使用这个值。
但为了让字形以正确的大小输出,我们需要验证比例是否正确。
如果我们告诉排版软件给我们一个 10 点的字体,那么 900 个字体单位会被缩放到 10 点用于显示,即:
900 个字体单位 → 10 pt = 3.5277 mm
除以 9,得到:
100 个字体单位 → 1.1111 pt = 0.3919666667 mm
请记住,100 个字体单位是我们字体内部绘制用途中的 1 个 Composer 单位。
在红色设置下,1 个 Composer 单位等于 0.3527 mm,但计算表明我们的 100 个字体单位对应 0.3919666667 mm。为了在 10 pt 字号下获得正确的输出,我们可以在导出时调整每字距单位数来补偿差异。
我们需要用 0.3919666667 mm 除以 0.3527 mm 来计算修正系数,得到 1.1113316323。为了让字体变小,每字距单位数设置必须变大,因此得到 900 × 1.1113316323 = 1000(恰好是标准的 upm 设置)。
验证一下数学是否成立:
1000 个字体单位 → 10 pt = 3.5277 mm
除以 10,显而易见:
100 个字体单位 → 1 pt = 0.3527 mm
完全正确!
如果 10 pt 改用黄色设置,例如 Univers 10 pt 字体那样,我们将用 0.3919666667 mm 除以 0.3024 mm 得到修正系数 1.2961860671。为了让字体变小,每字距单位数设置必须变大,因此得到 900 × 1.2961860671 = 1166.57。
由此得出不同字号对应的参数:
对于 9 pt:
900 个字体单位 → 9 pt = 3.17493 mm | ÷ 9 → 100 个字体单位 → 1 pt = 0.35277 mm
对于黄色设置,1 个 Composer 单位应为 0.3024 mm,因此修正系数为 0.35277 mm / 0.3024 mm = 1.1665674603。正确的每字距单位数设置为 900 × 1.1665674603 = 1050。
对于 8 pt:
900 个字体单位 → 8 pt = 2.82216 mm | ÷ 9 → 100 个字体单位 → 0.8889 pt = 0.313573 mm
由于 8 pt 字体同样使用黄色设置,1 个 Composer 单位应再次为 0.3024 mm,修正系数为 0.313573 mm / 0.3024 mm = 1.0369477513。为了让字体变小,每字距单位数设置必须变大,因此得到 900 × 1.0369477513 = 933。
对于 11 pt:
900 个字体单位 → 11 pt = 3.88047 mm | ÷ 9 → 100 个字体单位 → 1.222222 pt = 0.431163 mm
由于 11 pt 字体与 10 pt 字体同样使用红色设置,1 个 Composer 单位应再次为 0.3527 mm,修正系数为 0.431163 mm / 0.3527 mm = 1.2224638503。为了让字体变小,每字距单位数设置必须变大,因此得到 900 × 1.2224638503 = 1100。
### 大写字母高度
由于 Composer 手册提供了每种字体和字号的大写字母高度,我们现在可以计算出每个字号的内部字体单位大写字母高度:
```
1100 / 11 * 8 = 800 (11 pt,大写字母高度 8 pt)
1000 / 10 * 7 = 700 (10 pt,大写字母高度 7 pt)
1050 / 9 * 6.5 = 758 (9 pt,大写字母高度 6.5 pt)
933 / 8 * 6 = 700 (8 pt,大写字母高度 6 pt)
```
这应该能给我们一个缩放扫描图的参考。不过手册中的数值需持保留态度——它们似乎被四舍五入到了半点,实际情况更为精细。
### 可缩放字体?
可缩放字体,算了吧!我们可能需要为每个字号单独绘制。
幸运的是,老 Adrian 是个注重数字的人,因此至少 Univers 的图稿在不同尺寸之间尽可能只做了缩放,而没有进一步调整。其他字体,如 Century 样式,在不同字号之间似乎有更多的视觉调整。
Selectric Univers 在字身上显得相当"小"(业内术语),因此我从 11 pt 字体入手,它的尺寸适合通用排版。
我发现一个很好的视觉缩放扫描图的方法:在字体编辑器(本项目我使用了 [Glyphs](https://www.glyphsapp.com/))中打出(仍然空白的)字母,用空格隔开,就像 Selectric 目录中展示的那样。这些字母已经正确设置了它们的单位宽度。我在每个字形的左侧添加了一条细竖线,以使其宽度可见。
下图中,背景扫描图被置于字母 E 中。然后不断调整缩放比例,直到其他字母落入其指定的槽位。
字体编辑器中放置的扫描图。所有字形已分配了计算好的宽度,例如在我们 900 单位绘图网格上,E 为 700 个字体单位。
来源:Jens Kutilek
我将扫描图切成较小的部分,以便在字体编辑器中更轻松地处理缩放后的图像。图像的最终缩放比例可从信息框中读取,并应用于扫描图的其他部分。
### 那你到底什么时候开始实际绘制字母的?
快了。Composer 目录说明,字体样本均为 Composer 原始排版的胶印成品。因此它们可能在复制过程中有所损耗。我们必须运用自己的知识和感知,从那些略显模糊(尽管扫描质量尚可)的字母中还原出 Univers 字体。
你可以在这时对字形进行自动描摹,但那有什么乐趣呢?(何况结果也不太好用。)开始落点,移动那些曲线。就这样不断在扫描图上描绘,直到满意为止。
在扫描图上绘制 F。
来源:Jens Kutilek
为了在新的数字媒介中保持字体友好、略带圆润的印象,我选择在后期处理中应用半径为 14 个字体单位的圆角滤镜。"后期处理"的意思是,我以尖角绘制所有内容,滤镜在 Glyphs 导出最终字体时才被应用。
绘制 e。未显示圆角效果。
来源:Jens Kutilek
当对什么是 Univers 之所以是 Univers 感到疑惑时,我参考了其他数字化版本,例如我 1992 年实际装在 3.5 寸软盘上的 Linotype Univers PostScript Type 1 字体——结果发现,至少这些版本,乃至其他许多旧版本,绘制质量都相当糟糕。它们的轮廓和间距因从早期技术适配而来而有所妥协,引入的错误从未被后续纠正。但那是另一个故事,改日再说。如今的绘制标准要高得多。
应用圆角后的最终导出效果。
来源:Jens Kutilek
当年的字符集相当有限,所以我想整个工作大概花了不超过两个工作日,加上几轮细化。
字距调整(特定字母对间距的修正)在当时并不存在,所以我们可以跳过这整个步骤。不过我确实为字体添加了 TrueType 指令,做了些屏幕显示优化。
当前字符集。
来源:Jens Kutilek
整篇文章均以我的"Selectric UN 11 Medium"字体排版。为了撰写本文,我甚至不得不添加一些原始字符集中没有的字形,例如除号和右箭头。我还从 Century 样式中借用了 @(它在美国字符集中有,但德国字符集中没有)。
我也开始对多个字号的 Century 字体样式进行数字化,这种字体实际上更像"Century Schoolbook"而非单纯的"Century"。为此我没有扫描字母,而是用 USB 显微镜拍摄。但那也是另一个待讲述的故事。
进行中:我对 Selectric Composer 中 Century 10 pt 字体样式的诠释。
来源:Jens Kutilek
## 参考资料
- *Adrian Frutiger Schriften. Das Gesamtwerk.* – Heidrun Osterer & Philipp Stamm,Birkhäuser,2009。
- *IBM Composer Schriftmusterbuch*,无日期。
相似文章
C64 Dead Test 字体
对 C64 Dead Test 诊断卡中使用的独特字体的详细探索,包括其字符集、一个彩蛋以及可下载的字符 ROM。
逆境中的优秀字体
一篇探讨意外字体现象与工艺的文章,包括显示屏上的卷帘快门效应以及对字体局限性的创造性应用。
曼哈顿最勤恳的字体(2025)
深入探讨 Gorton——一种用于键盘及纽约市各处、默默无闻的字体,探索其独特之处、历史与无处不在的身影。
为业余无线电重振图文电视
本文详细介绍了一个项目,旨在将模拟图文电视系统重新用于业余无线电,利用现代技术和开源字体,为业余无线电爱好者重现经典的图文电视体验。
TypeStax:一款带有复古音频硬件界面的字体缩放生成器
TypeStax 是一款字体缩放生成器,它将实用的设计工具包裹在复古音频硬件风格的界面中,让字体排版缩放变得富有触感和趣味性。