字体设计者的努力

I Love Typography 上最新一篇文章 Making Fonts: Proza Libre 介绍了该文章作者在制作 Proza 对应的开源的、屏幕显示版本 Proza Libre 的过程。

字体制作的完整流程对我而言一直是一个几乎无法想像的的存在,尤其当进入到在后续精确调整的时候。要想象这个过程的复杂在于,这个调整的自由度实在太高,如何拿捏调整的尺度,使得字体本身利于显示,达到最优的可视度,又不损失字体的风格与骨架。尤其当涉及到 hinting 的时候,相当于在每个字符对数个曲线锚点的调节的自由度之外又增加了字号这个自由度、并加上了栅格网格的限制。考虑到字符的数量、要对不同字号下分别做出的调整的次数,字体工程师实在是一个让人仰望的专业。

Making Fonts: Proza Libre 这篇文章的可贵之处在于,作者难得地以一个视频的形式展示了自己在 hinting 信息制作过程中的工作流程。

观看这个构建的过程在两个方面给我留下了深刻的印象。

多自由度、搜索、作坊式的工作方式

其一是,整个调整的过程与我们所想象的自动化、能够整体性地进行描述不同,实际的修改过程是充满作坊味的:尽管借助了 ttfautohint 的辅助,整个过程实际充斥着大量的对于特例的修改,这包括对不同字号每个锚点转化为位图时位置所需要进行的像素级的移动。

虽说 hinting 的意义就在于对于特例的修正,但对于一个被显示在屏幕上的似乎以精确著称的图形是经过这样过程调整而形成,多少令人不适。

这样说来可能比较难懂,但我实在觉得,若是以一个怀疑论的视角去审视这个过程,多少会让人觉得,后序调整对前序调整实际是有很大的依赖性。这种依赖性会导致移动路径太多,而我们不断进行单次调整最终只能达到一个较优解,而较优解的不唯一性导致这样的的调整过程实际是不可重复的。

用一个图形化的表述可能就是,当我们做一个调整时,我们实际是被限制在一个维度上的。当我们在这个维度内我们实际期望能达到最优解(即图中的最小值)。但在这一维度中我们实际只能了解到一个点附近的斜率,因此若想达到最优点,就需要增大「搜索范围」,或对多个「自由度」同时进行搜索,但这一点实际上是很难做不到的(在实际处理之下自由度数达到十几或几十)。这有点类似于化学上增大激活能或改变反应路径的思路。

当我们想要达到一个最低点的时候,我们往往只能达到一个局域的极小值。
当我们想要达到一个最低点的时候,我们往往只能达到一个局域的极小值。

通过原文作者对于 hinting 过程的描述,实际每一个字符的「搜索过程」实际上是各不相同的,这也就意味着即便是同一个人进行两次调整,也会得到不一样的结果。这样不可重复的结果会让人觉得非常难受。但实际科学研究也是如此。这样说来,字体制作的调整步骤与科学研究的共通性令人印象深刻。

参数化与自动化构建

另一个给我印象深刻的原因是,文章作者使用了一系列分立的工具,而要完成每一次刷新,要经历数个步骤,包括:

  1. 修改配置文件
  2. 使用 ttfautohint 编译为 ttf
  3. 将编译结果上传到某网站自动生成网页字体及相对应的 CSS 文件
  4. 将网页字体 woff 等拷贝到 Dreamweaver 工作目录
  5. 等待 Dreamweaver 完成上传
  6. 在浏览器测试网站完成截图的生成,等待
  7. 截图另存为本地,选择文件名
  8. 与上一次测试结果进行比较

这样一个工作流程对我来说基本已经是难以接受了。单论每次将截图保存的步骤,就会令我费一番脑筋。这样的工作与我绘制实验图像的过程极为相似。我无法接受多次修改试验数据源得到最优,每一次都要在 Origin 这样的绘图软件中重新打开,绘制,调整一系列参数,保存导出,并插入到文档中,而期望通过一个工具链系列自动化地完成这些步骤(通过 Python 完成处理,并通过编译文档自动更新图片)。

目前这样一套「自动化」的构建思路在建筑行业开始流行,建筑领域对它的称呼为参数化设计(parametric design),似乎会是短时间内工业设计、艺术与科技结合的设计短时间内热门的方向。在字体制作过程领域,采用类似方案而获得了较高自动化程度的例子 Belleve Invis 构建 Iosevka 字体的的过程。但由于一整套工具链都是 belleve 自己从头开发的,可见实际大部分字体的构建都不是这种参数化的思路。

这种参数化的思路不是一个彻底的自动化方案,但在短时间内似乎会减少(我认为可能存在的)微调期间的痛苦,尤其是在调整过程中减少精力的分散(完成构建过程)。不过就从身边人对 Word 等所见即所得的编辑软件的热衷来看,这种强迫症患者自我安慰式的解决方案所存在的必要性实际是存疑的。

总的来讲,Making Fonts: Proza Libre 这样一篇文章是一篇有趣的文章,让我们得以一窥字体工程师的工作过程,总体而言是令人耳目一新的。了解了这样的流程,也就对这一行业有了更深层次的理解,似乎就是许多人挤破头而想要进行的实习工作的意义所在吧,不同的是,这样的过程实际在屏幕跟前,就是可以完成的。不知道其他行业是否能有效地进行这一类型的展示呢?

字体的美与实用

许翰文先生在自己的博客《為了解決實際問題而生的字型的》短文系列的开篇 Swift — 為了解決實際問題而生的字型(一)中开宗明义:

字體最引人入勝的地方,是它之於平面上多了一份實用性。

这关于字体(字型)的美的描述真是既简洁又准确。在有限资源的条件下,追求美的不懈努力总是无比动人。

关于字体字型的内容本博客之前涉及的不多,那么后面会尝试着写几篇。可能还是会从构成的方面为主谈谈?唉,这种时候只能感叹此话题可讨论的方面实在太多,而自己的知识储备又实在太不充足。

以上。