本地化你的字体:加泰罗尼亚语的 Punt Volat
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·LEGI
和 paral·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 中的字偶距是关闭的。
缺点之一是它要求用户设置文本的语言。另一个缺点是它在无关语言的环境中会失效。但是,如果你觉得可以忽略上述的字典情形,那么可以将字偶距和字间距两种解决方案结合起来。
合字解决方案
如果,在 L
、l
和 periodcentered
旁边,再在你的字体里添加两个合字 L_periodcentered_L.loclCAT
和 l_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 解决方案
或者,特别是你很关注向后兼容性,我们实际上可以构建旧版的 Ldot
和 ldot
并将它们设计成后接 L
或 l
时看观感很好的样子。
等一下:为什么是 “旧版的”?
在一套来自 80 年代的编码中,曾有一个独立的 Ldot
和 ldot
。它们至今仍然存活,成为 Unicode 中的 U+013F LATIN CAPITAL LETTER L WITH MIDDLE DOT
和 U+0140 LATIN SMALL LETTER L WITH MIDDLE DOT
。它们已经不应该再使用了,因为它们只是兼容性字符。但是呢,这只是在说使用字符生产文本的人。我们是做字体的人,我们在字符形层面上工作,只要它看上去不错,我们可以想怎么做就怎么做。所以我们开始:

当你创建 Ldot
和 ldot
时,Glyphs 会给你一个带有 L
或 l
部件和 periodcentered
的字符形。当然,如果你想创建自己的 punt volat,你可以删除、替换或释放 periodcentered
部件。
如果 Glyphs 在你的字体里找到了 Ldot
、ldot
、L
和 l
,它会自动为你构建这个 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
的字间距来控制 Ldot
和 ldot
的宽度。如果喜欢的话你甚至还可以使用锚点,比如在 L
和 l
中添加 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 (三言).