TrueType字体点和曲线的描述和解释

平面设计 adobe-illustrator 字体 向量 字体设计
2022-01-25 04:22:15

最近在另一个论坛上提出了一个问题,让我重新思考了我对矢量格式的理解。TrueType 字体是矢量格式,并且 - 我之前曾想过 - 如果矢量编辑器要显示它们以进行编辑,它只会显示原始字体形状中描述的点,如果有曲线,则仅显示适当的句柄那些点。

我看不到一个软件包(Glyphs)如何将 Arial 中的 a 解释20 点,而另一个(Illustrator)在转换为轮廓或展开时将其解释为 37 点。我手头没有Glyphs,但可以确认 Illustrator 在尝试自己时确实给出了 37 分。原始海报提供了两种结果的说明,如下所示:

来自 Arial in Glyphsa

Illustrator中相同字体的arial一词(关注字母a中的点与Glyphs中的相同):

我了解矢量图像文件的基本概念;数据是点的一系列坐标以及其他数学上详细说明点之间曲线(或缺少曲线)量的信息。我不明白的是两件事:

  1. TrueType 字体中的数据是否没有以这样的方式描述,以至于当它被概述时,它可以非常直接地翻译成 Illustrator 中的可编辑形状?为什么 Illustrator 增加了额外的点?还是根本没有使用点来描述 TrueType 格式(我不明白如何)?

  2. Glyphs似乎表明可以在有限的点数中描述某些曲线。为什么像Illustrator这样知名的软件需要更多的点来描述同一条曲线?我认为这是一个糟糕的翻译,我想大多数用户也会期待这一点。这与问题一有一点重叠,所以也许一个答案涵盖了两者。

3个回答

TrueType 使用二次贝塞尔曲线,而大多数其他矢量程序(包括 Glyphs 和 Illustrator)使用三次贝塞尔曲线。您可以看到您的 Glyphs 示例没有使用二次贝塞尔曲线,因为相邻锚点的手柄没有连接。

现在,二次贝塞尔曲线是三次贝塞尔曲线¹的一个特例,因此从前者到后者的转换很简单,我从你的例子中有根据的猜测是 Glyphs 使用了这种直接的转换。由于我无法理解的原因,Illustrator 以使用更多锚点²的不同方式将二次贝塞尔曲线转换为三次曲线。


¹正如每个正方形也是一个矩形,每个圆形都是一个椭圆,等等
²这里是德国论坛对同一现象的更详细观察

虽然我无法确认这一点(我查看了 Glyphs 手册和在线帮助/教程),但 Glyphs 应用程序似乎自动将 TrueType 轮廓转换为 PostScript 轮廓(请记住,TT 轮廓是 2 阶,PS 轮廓是 3 阶。另外, OTF 可以包含 TT 或 PS 大纲,而 TTF 可以包含 TT 大纲)。

如果您正在导入 Arial 字体(我几乎可以肯定它是一个 TTF 文件),这意味着您正在导入 TT Outlines,然后 Glyphs 将转换为 PS Outlines。因此,分数较少。这是在 FontLab VI(29 个节点)中转换为 PS Outlines 的 Arial.ttf:

宋体 PS 大纲

如果您打开保留 TT Outlines 的相同字体(在此示例中,在 FontLab Studio 5 中打开),您将获得 37 个节点(请记住,连续控制点之间存在隐含节点):

Arial TT 大纲

在 illustrator 中,类型很可能由保留轮廓格式的类型引擎处理,并且二次点只是在 Create Outline 命令上转换(尝试创建子弹的轮廓,一个圆圈:它将创建 8 个节点,与二次下方格式...)因此,创建了更多点。在这里,在 Illustrator cs6 中:

在此处输入图像描述

相同的 37 个节点。

编辑:顺便说一句,回答问题:Glyphs 使用Bezier Degree Elevation “简化” TT 曲线,即将 TT 轮廓转换为 PS。

可能会因侵犯版权而改变控制点的数量?如果它完全匹配点数,那么它是非法的吗?

我是 Illustrator 在美国的第 758 个注册副本 v1.0,当时它不能做轮廓字体。Adobe 发布的第一天售出不到 1000 份,第二天售出了大约 16,000 份。

只是我的输入,您始终可以简化添加或删除点的路径。

那时我还使用了 fontographer,制作一个包含所有字符的完美字体并不容易。我花了超过 45 天的时间才完成它,但它从来都不是完美的。