本地化你的字体:加泰罗尼亚语的 Punt Volat

教程
作者:Rainer Erich Scheichelbauer
en fr zh

12 九月 2017 发布日期: 3 十月 2012

In Catalonia, you will sometimes see a dot in mid air between two L’s. Here is why, and how to implement it in your font.

加泰罗尼亚人键入 L periodcentered L 来输入两个 L 之间的 punt volat(间隔圆点),用以指示这是一个 ela geminada,而非双 L,两者的发音不同。

在字体排印中,要考虑两件事情。首先,这两个 L/l 之间是没有词间空格的,也就是说,看上去仍然需要是一个单词,而非两个。因此,插入间隔点后造成的额外距离一定不能太大。其次,圆点需要出现在两个 L/l 之间的视觉中心。

字偶距解决方案

字体设计师为此问题使用不同的解决方案。为此,你可以简单地为 L-periodcentered-L 调节字偶距:在你的编辑标签页中键入加泰罗尼亚语单词如 COL·LEGIparal·lel,然后调节其字偶距直到你满意为止。你也可以考虑上下文字偶距

好消息是,这种方法可以在与语言无关的排版环境中使用,例如 Apple 的 “文本编辑” 和大多数其他 Cocoa 应用程序。Mac 的文本引擎不允许指定语言,因此会忽略 locl 特性。

不过这种方法有几个问题。当停用了字偶距或字体在不支持字偶距的环境下使用时,就会不起作用。而且,你也可能会将 periodcentered 用于其他目的,例如在字典中指示音节,这时你就可能在某些单词中遇到问题,比如 “col·li·sion”。

字间距解决方案

于是,这就需要一种应用 locl 特性的解决方案。为此,你要在你的默认 periodcentered 旁创建一个 periodcentered.loclCAT,然后把它放在两个 l 之间调节其字间距。对于大写 L,你可以使用 periodcentered.loclCAT.case。同样,不要忘记你的小型大写字母,如果你的字体中有的话:对于它们,你可以创建 periodcentered.loclCAT.sc

“这些后缀是什么意思?” 我听见你这样问了。简单,.case 代表 “区分大小写形式”,一种 OpenType 特性,用于 “将标点符号 […] 上移至更适合全大写序列或齐行数字集的位置”;而 locl 是 “本地化形式” 特性的四字代码,用于使用 “本地化变体造型” 替换默认字符形。而 CAT 部分是加泰罗尼亚语的语言系统标签

如果你用好这个后缀,Glyphs 可以自动将本地化的间隔点添加进 locl 特性。在 Glyphs 2 以上的版本中,locl 条目更加符合上下文:

language CAT;
sub l periodcentered' l by periodcentered.loclCAT;
sub L periodcentered' L by periodcentered.loclCAT.case;

这意味着,只有当 (a) 语言被设置为加泰罗尼亚语,且 (b) periodcentered 出现在两个 l 字符形之间,它才会被替换为加泰罗尼亚语 periodcentered.loclCAT,以及在两个大写 L 之间替换为 periodcentered.loclCAT.case

为了实现自动特性生成,你只需要前往 “字体信息”(Cmd-I)并点击左下角的 “刷新” 按钮(带有圆形箭头的那个)。Glyphs 会为你做剩下的事,包括在 Languagesystems 部分添加相应的一行。

很多字体设计师认为这个是最好的解决方案,主要是因为它能够应对整体字距的增大,尽管点和周边两个小写 l 之间的距离增大不应该和两个字母之间的距离增大这样多。这种方法也可以在没有字偶距的场合起作用。考虑到默认状况下,Microsoft Word 中的字偶距是关闭的。

缺点之一是它要求用户设置文本的语言。另一个缺点是它在无关语言的环境中会失效。但是,如果你觉得可以忽略上述的字典情形,那么可以将字偶距和字间距两种解决方案结合起来。

合字解决方案

如果,在 Llperiodcentered 旁边,再在你的字体里添加两个合字 L_periodcentered_L.loclCATl_periodcentered_l.loclCAT。当然了,如果你有小型大写的话,再加上 l_periodcentered_l.loclCAT.sc。Glyphs 会自动生成下列 locl 代码:

language CAT;
sub l periodcentered l by l_periodcentered_l.loclCAT;
sub L periodcentered L by L_periodcentered_L.loclCAT;

现在,你可以说出它的优缺点了。正面的,我们可以获得对 ela geminada 的完美控制。但是它在无关语言的环境中没有效果,并且在字距增大的时候也不能很好地工作。

Ldot 解决方案

或者,特别是你很关注向后兼容性,我们实际上可以构建旧版的 Ldotldot 并将它们设计成后接 Ll 时看观感很好的样子。

等一下:为什么是 “旧版的”?

在一套来自 80 年代的编码中,曾有一个独立的 Ldotldot。它们至今仍然存活,成为 Unicode 中的 U+013F LATIN CAPITAL LETTER L WITH MIDDLE DOTU+0140 LATIN SMALL LETTER L WITH MIDDLE DOT。它们已经不应该再使用了,因为它们只是兼容性字符。但是呢,这只是在说使用字符生产文本的人。我们是做字体的人,我们在字符形层面上工作,只要它看上去不错,我们可以想怎么做就怎么做。所以我们开始:

当你创建 Ldotldot 时,Glyphs 会给你一个带有 Ll 部件和 periodcentered 的字符形。当然,如果你想创建自己的 punt volat,你可以删除、替换或释放 periodcentered 部件。

如果 Glyphs 在你的字体里找到了 LdotldotLl,它会自动为你构建这个 locl 特性:

language CAT;
sub  l' periodcentered' l by ldot;
sub  L' periodcentered' L by Ldot;

很多字体设计师并不喜欢这个解决方案,因为当字距增大的时候,它看起来真的很蠢。嗬。

双下划线技巧

通常而言,小写 l 的侧边距颇窄,也就是说没有足够空间放得下一个圆点。因此你会想要调整 ldot 的宽度,来为 punt volat 腾出地方。但是 Glyphs 认为 ldot 是一个变音符字母,会保持它的量度和 l 同步。要解决这个问题,只需选中 ldot 中的 l 部件并右击,在上下文菜单中选择 “停用自动对齐”,你就可以自由调整宽度了:

或者,不将 periodcentered 作为部件放入 ldot,而是复制 periodcentered,将其命名为 __periodcentered,将其作为部件放入 ldot__periodcentered.case 放入大写 Ldot)。

主题字符形名称前面是两个下划线。当你在字符形中放两个下划线的时候,Glyphs 会在保持自动对齐的同时将其宽度增加到右侧边距中。这样,你可以通过调节控制 __periodcentered 的字间距来控制 Ldotldot 的宽度。如果喜欢的话你甚至还可以使用锚点,比如在 Ll 中添加 puntvolat,在标符字符形中添加相应的 _puntvolat。很酷。

结合多种解决方案

将无关语言的解决方案和 locl 解决方案结合应该很简单。所以,你可以让它在大多数情况下都起作用。

但如果你有多个 locl 解决方案,自动特性生成器会选择哪个呢?这个,在 Glyphs 2 以上的版本中,periodcentered.loclCAT 会优先于 L_periodcentered_L.loclCAT,合字会优先于 Ldot

如果你不满意自动生成,或是不满意上述优先顺序,请随意停用 locl 特性的自动生成,自己来录入代码。

那么嗒哒:现在,你的字体可以用于加泰罗尼亚语了!


2014-12-01 更新:添加了字间距和合字解决方案、双下划线技巧和结合解决方案;若干微小优化。
2016-02-19 更新:更新了 Glyphs 2 的截图。
2016-10-16 更新:更正了长期存在的录入错误 “ela geminada”(感谢 Joan Montané)。
2017-09-12 更新:更正录入错误。
2019-10-25 更新:更正录入错误。

Chinese translation by Willie Liu (刘育黎) from 3type (三言).