替代字符的随机选择如何在 OpenType 字体中起作用?

平面设计 排版 开放式
2022-01-11 23:43:53

我有一个类似于“使用字符变体书写文本”的问题:我想创建一种随意的手写风格字体,它可以再现手写文本中相同字形出现之间的自然变化。上下文替代方案很好,但据我了解,它们最适合连接在一起的字母,而不是所有字母都由空格分隔的脚本。

上述链接问题的答案之一是(重点是我的):

虽然您通常只有几个字母和上下文替代,但理论上每个字母可以有几种形式。但我不相信你可以真正随机化它们的外观,只能循环它们(所以,如果你有三种形式的 'a',它们会按顺序使用并开始重复'the black cat sat on the mat' )

好吧,这似乎不是真的,因为我发现一些关于 OpenType 功能的提及randomize,它显然可以做到这一点。例如,在这个TeX 包网页上:

Knuth 的原始字体随机生成不同的形状。这在 OpenType 字体中实际上是不可能的。相反,字体包含每个字形的多个变体,并使用 OpenType randomize 函数为每个调用选择一个变体

那么:OpenType 中是否有随机选择字形变体的机制,它是如何工作的?指向适当的在线文档或规范引用的链接将是非常宝贵的。另外:你认为这个目标有意义吗,即它会大大提高排版文本的质量以包含多个随机选择的字形变体?

2个回答

我相信您所描述的是 opentype 的上下文替代功能。( http://msdn.microsoft.com/en-us/library/ms745109.aspx )

Nick Shinn 有一篇非常有趣的文章,介绍了使用上下文替代的许多可用功能,以及他如何在他设计的五种字体中使用它。特别是 Duffy Script 以您描述的方式使用。http://ilovetypography.com/2011/04/01/engaging-contextuality/

更深入地看,我发现这篇文章描述了如何在后续使用中旋转你的字形(通常会出现随机):http ://forums.adobe.com/message/1785905#1785905

这直接进入了中间。如果您想了解更多信息以帮助您入门,或者我误解了您的初始要求,我可以进一步了解。

我没有玩过 randomize 函数,但我通过大量使用连字获得了一些不错的结果。

大多数手写体的变化都与上下文有关:这跟随那个,跟随这个,这是单词的结尾,等等。如果你愿意很好地计划,OpenType 连字可以适应很多变化。

还有传说中的Beowolf 字体存档副本)由 LettError。这种编程不适合普通类型的开发人员。

** 更新 **

还是没有答案?我认为一些聪明的程序员现在会为你解决这个问题。好吧,让我在池中添加更多信息。

我所知道的唯一真正的随机化实验(如上面提到的 Beowolf)是使用 PostScript 完成的。如果您愿意离开 OpenType,Luc Devroye 撰写了一篇论文 (PDF),深入研究了 PostScript Type 3 解决方案在这个问题上的编程。他还有一份与随机字体问题相关的事情清单供参考。

与所有事物类型一样,一段时间前在 Typophile 上就这个话题进行了讨论。在 8 年前的那个帖子中,Thomas Phinney 发表了我认为仍然正确的声明(据我所知,OpenType 规范没有太大变化):

当然。假设您希望它在一些现有的应用程序中工作,那么您有一个令人兴奋的选择,因为每种方法的工作方式/工作地点都非常有限:

  • OpenType(上下文,所见即所得,目前仅支持 Adob​​e 的应用程序,任何输出设备,最容易编码,但不是很多,使用 FontLab 或 DTL FontMaster 来制作)

  • AAT(上下文,所见即所得,仅限 Mac,目前仅受少数应用程序支持,任何输出设备,难以编码上下文内容,使用 Apple 的命令行工具将功能编译成预先存在的字体)

  • 类型 1(真正的随机,非所见即所得,适用于许多应用程序,但不适用于最新的 Adob​​e 应用程序,仅适用于 PostScript 输出设备,您可能必须是程序员才能编写代码)