Localize Your Font: Catalan 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.
Catalans type L
periodcentered
L
when they mean to type a punt volat between two L in order to indicate that it is an ela geminada
, and not a double L, which is pronounced differently.
Typographically, there are two things to consider. Firstly, there is no word space between the two L/l. In other words, it should still look like one word, not two. So, the extra distance caused by the insertion of the middot must not be too much. Secondly, the dot needs to appear in the optical center between the two L/l.

The Kerning Solution
Type designers employ different solutions for this problem. Some prefer a pure kerning solution. For this, you’d simply kern L-periodcentered-L
: Type Catalan words like COL·LEGI
and paral·lel
in your Edit tab, and kern it until you’re satisfied. You may also consider contextual kerning.
The good thing is that this works in language-agnostic typesetting environments, like Apple’s TextEdit and most other Cocoa apps. The Mac text engine does not allow specifying the language and thus ignores the locl
feature.
There are a few problems with this approach though. It doesn’t work when kerning is disabled or if the font is used in an environment where there is no kerning available. Also, you may want to use periodcentered
for other purposes as well, e.g. to indicate syllables in a dictionary, and then you may run into problems with a word like ‘col·li·sion’.
The Spacing Solution
So, this calls for a solution involving the locl
feature. For this, you create a periodcentered.loclCAT
next to your default periodcentered
, and you space it between two l
. For the uppercase L
, you can use periodcentered.loclCAT.case
. Also, don’t forget your small caps if you have them in your font: For those, you can create periodcentered.loclCAT.sc
.
‘What do those suffixes mean?’, I hear you ask. Easy, .case
stands for Case-Sensitive Forms, an OpenType feature for shifting ‘punctuation marks […] up to a position that works better with all-capital sequences or sets of lining figures’, whereas locl
is the four-letter code for the Localized Forms feature, which is intended to substitute default glyphs with ‘localized variant forms’. And the CAT
part is the Language System Tag for Catalan.
And if you make use of this suffix, Glyphs can automatically add the localized mid dots to the locl
feature. In version 2 and above, the locl
feature entry is even contextual:
language CAT;
sub l periodcentered' l by periodcentered.loclCAT;
sub L periodcentered' L by periodcentered.loclCAT.case;
Which means that, only when (a) the language is set to Catalan, and (b) the periodcentered
appears between two l
glyphs, it will be replaced by the Catalan periodcentered.loclCAT
. And by periodcentered.loclCAT.case
between two uppercase L.
All you have to do for the automatic feature generation to happen, is to go into the Features tab of your Font Info (Cmd-I) and click on the Refresh button in the bottom left corner (the one sporting the circled arrow). And Glyphs does the rest for you, including adding a corresponding line to the Languagesystems
section.
Many type designers consider this the best solution, mostly because it survives increased tracking, even though the space between the dot and the surrounding lowercase l’s should not increase as much as space between two letters. And it also works in environments where there is no kerning. Consider that, by default, kerning is off in Microsoft Word.
One downside is that it requires the users to set the language of the text. And another is that it will fail in language-agnostic environments. But if you feel like you can ignore the dictionary case mentioned above, you can combine the kerning and spacing solution.
The Ligature Solution
If, next to L
, l
, and periodcentered
, you add the two ligatures L_periodcentered_L.loclCAT
and l_periodcentered_l.loclCAT
to your font. And, of course, l_periodcentered_l.loclCAT.sc
if you have small caps. Glyphs will auto-generate the following locl
code:
language CAT;
sub l periodcentered l by l_periodcentered_l.loclCAT;
sub L periodcentered L by L_periodcentered_L.loclCAT;
By now, you can tell the pros and cons. On the plus side, we have perfect control of our ela geminada. But it will fail in language-agnostic environments, and it will not work well with increased tracking.
The Ldot solution
Or, and especially if you care a lot about backwards compatibility, we can actually build the legacy Ldot
and ldot
and design them in such a way that they look great with a following L
or l
.
Wait a minute: why ‘legacy’?
In an old 8-bit encoding from the eighties, there used to be a separate Ldot
and ldot
. They survive to this day as U+013F LATIN CAPITAL LETTER L WITH MIDDLE DOT
and U+0140 LATIN SMALL LETTER L WITH MIDDLE DOT
in Unicode. They are not supposed to be used anymore, because they are mere compatibility characters. But hey, this only applies to people who produce texts with characters. We’re the font-making people, and on the glyph level, we can do what we want, as long as it looks good. So here we go:

When you create Ldot
and ldot
, Glyphs gives you a glyph with an L
or l
component and a periodcentered
. Of course you can delete, replace or decompose the periodcentered
component if you want to roll your own punt volat.
If Glyphs finds an Ldot
, an ldot
, an L
and an l
in your font, it will build this locl
feature automatically for you:
language CAT;
sub l' periodcentered' l by ldot;
sub L' periodcentered' L by Ldot;
Many type designers are not really happy with this solution, because it looks really stupid with increased tracking. Duh.
The Double Underscore Hack
Usually, the lowercase l
has pretty tight sidebearings, i.e. not enough space for a dot. So you may want to adjust the width of the ldot
in order to make room for the punt volat. But Glyphs thinks ldot
is a diacritic and keeps its metrics synchronized with the l
. To remedy this, just select and right-click the l
component in your ldot
and choose Disable Automatic Alignment from the context menu, and you can adjust the width freely:

Or, instead of placing periodcentered
as a component in ldot
, you may want to make a copy of periodcentered
, and call it __periodcentered
, and place that glyph as a component in ldot
(__periodcentered.case
for the uppercase Ldot
).
Note the double underscore at the beginning of the glyph name. When you place a double underscore mark in a glyph, Glyphs will add
its width to the right sidebearing while still maintaining automatic alignment. That way, you can control the width of the Ldot
and ldot
by spacing the __periodcentered
. You can even use anchors if you like, e.g. puntvolat
in L
and l
, and a corresponding _puntvolat
in the mark glyph. Cool.
Combining Multiple Solutions
It should be easy to combine the language-agnostic solutions with the locl
solutions. So, you can make it work in most environments.
But if you have multiple locl
solutions, which one will the automatic feature generator pick? Well, in version 2 and above periodcentered.loclCAT
will take precedence over L_periodcentered_L.loclCAT
, and the ligature will take precedence over Ldot
.
If you are not happy with the automatism or the precedence order, please feel free to disable the automatic generation for the locl
feature, and type your own code.
And ta-daaa: Now, your font is ready for Catalan!
Update 2014-12-01: Added Spacing and Ligature solutions, double underscore hack, and combining solutions; many small improvements.
Update 2016-02-19: Updated screenshots for Glyphs 2.
Update 2016-10-16: Corrected long-standing typo in ela geminada (thx Joan Montané).
Update 2017-09-12: Fixed typo.
Update 2019-10-25: Fixed typos.