useless ligatures

Symn's picture

Hi everyone, I'm currently making a font with as many ligatures as possible, the combinations are endless, but I still want them to be usable.

So I was reading a very old topic about the 'ffj' ligature. And thought: That is completely useless.

Or is it?

Now I am really doubting to put in the 'ffj' ffb' 'ffk' 'ffh' in. They look nice, but:

- in what language are they actually used?
- in what fonts are these ligatures included? (and why)

Jonathan Clede's picture

In English, there's "offhand", and names like "Stiffkey".
I think "offbase" should be two words but I expect some people might write it as one.

And I could imagine people making up words or names like "scoffjaw", etc.

Ria Anderson's picture

Here are some more English words that use these:




Jackson's picture


Frode Bo Helland's picture

There are no ...ffjords in Norway.

Florian Hardwig's picture

As you are from the Netherlands, you might be familiar with ’t Moffje.

Nick Shinn's picture

In some fonts, pandering to discriminating typographers, I include the "extra" ligatures ff, ffi, ffl, fj, and ffj. However, I don't include ligatures for fb, ffb, fh, ffh, fk and ffk, because these lack typographic cachet.

Nonetheless, I do consider the possible collision of "f" with a following ascender, and design it, and the ascender, with that in mind.
Often, some positive kerning is required -- but that's not too heinous, because it occurs between syllables (as can be seen from the instances cited above).

In other fonts, rather than ligatures, I have made an alternate, overlapping form of "f" specifically to precede ascenders, this activated by a contextual OpenType substitution.

Symn's picture

can't believe I missed the double ff is so common in english!!!

Igor Freiberger's picture

Let me expand the original question: is there any ligature using the f with dot above (uni1E1F)?

This glyph is the only f+diacritic for Latin script languages and is used in Irish and Old Irish. But I have no idea if uni1E1F can be followed by f, i, l, h, b or other letters used in fn ligatures.

guifa's picture

Igor, you might be interested in a method that myself and others (I thought John Hudson was the one who introduced me to it) of contextual alternatives to fake ligatures:

This significantly reduces the number of characters in your font, and even allows for (depending on weight/design etc) a moderate degree of tracking. Not hard to add in the long-s and complete all of its ligatures as well.

Khaled Hosny's picture

In theory, one can build a font with no ligatures at all, only contextual substitutions (it can be still called liga, dlig etc. so to keep it controllable in the same expected way).

Igor Freiberger's picture

Matthew and Khaled, I surely have interest on this elegant solution. I can image how to code these ligatures throught contextual alternates: you create alternative glyphs and do substitutions.

But I cannot understand how it was made in Tasman to achieve the effect shown in its specimen PDF (the specimen says its ligatures are made from contextual alternates):

The first f does not seem to be the same glyph for –40 and +15 tracking as there is no enough room in second f stem to "hide" the arm. How to do this?

About uni1E1F, it seems it must be smaller in Irish typography to let dot accent align vertically with dots above b, d, s and r. So, it's not suitable for ligatures.

guifa's picture

It appears to be the same to me. But that you probably couldn't track much more in either direction. What if you manually insert those characters and track farther than InDesign will normally let you? (or use a program like Pages, which won't break them even at high tracking).

You can have contextual replacements ignore or pay attention to diacritics, so perhaps run the initial replacement, then do another one that is diacritic specific (if you're adjusting heights). But I would think any text that wants the lenition dot to be at the same height would have a t and f designed at x height (that's a radical sizing difference, I'd think, to do contextually based on the accent).

Igor Freiberger's picture

I don't have Tasman font, just the specimen. Anyway, a closer look indicates you're right, it's the same glyph.

How to set kerning for these ligatures? I suppose it demands specific kerning for each ligature.

About uni1E1F, it becomes strange if we adopt Irish typographic rules in Latin script. Maybe I will create alternates t and f with dotaccent and let user adopt it if he/she wants.

Thanks for the help.

Khaled Hosny's picture

I do it along these lines (though I'm doing Arabic fonts):
* make an alternate f and i glyphs (or any other ligature components) that to be combined together
* have single substitution table (not attached to any feature) that substitutes each component by its alternate glyph
* a calt lookup would then use the context [first group][second group] and apply the defined substitution lookup to each context position.
* if special glyph positioning is needed (moving glyphs closer, up or down) I use anchor positioning

j_p_giese's picture

There seems to be a very interesting difference between the English and the German language regarding the use of ligatures.

The German language is (in)famous for allowing the merging of any number of nouns (and other grammatical units) into compounds of theoretically infinite length like Rindfleischetikettierungsüberwachungsaufgabenübertragungsgesetz (beef labeling supervision duties delegation law). Hence many combinations of consonants are conceivable.

The English language, too, knows compounds (like the above mentioned cliffhanger), but they're neither arbitrarily combinable nor (usually?) made of more than two words.

Now, while in English, you would seemingly use the ffh ligature for the word cliffhanger, in German, you would not. Were cliffhanger a German word, we'd use the ff ligature for cliff, but we wouldn't ligate the cliff and the hanger. We'd use the st ligature in Muster (sample), but not in Mustopf (which could be written as Mus-Topf; a Topf for Mus = a jar for pulp or puree). It's not a Mu-Stopf or a Must-Opf, but a Mus-Topf. Not a clif fhanger or a cliffhan ger, but a cliff hanger. The omission of the ligature is supposed to mark the word joint.

Another example: the fl in Kaufläche (Kau-Fläche = chewing surface) can be ligated, the fl in Kaufleute (Kauf-Leute = merchants) can't.

The practise to ligate only within morphemes and not over grammatical joints is clearly of linguistic, not of aesthetic nature. Not ligating the ff and k in Suffkopp (bingehead) may make the compound of Suff and Kopp more easily recognizable as such (for what it's worth), but the resolution of the aesthetic problem of the f and k meeting by using a ligature is made impossible. I'm undecided about whether this rule is a good one or not, it's both beneficial and disadvantageous. I think it depends on whether you see the benefit of ligatures in making text more readable, more pleasurable to look at or more linguistically concise (although, of course, these aspects are intertwined).

An exeption from the rule are suffixes beginning with an i: we'd use the ffi ligature in fluffig (fluff-ig, fluff-y), whereas suffixes beginning with an l (like in stofflich, stoff-lich = materi-al) do not depart from the rule (i.e. no ffl ligature in stofflich). Don't ask me why; it doesn't seem to make sense to me. Nota bene: the ffl within a morpheme would be fully ligated.

This is also the reason why we don't need triple ligatures like fff or ppp or sss, although words (only compounds) with three following identical consonants exist (after the 1996 spelling reform). An example is Schifffahrt (Schiff-Fahrt, meaning shipping or boat cruise; formerly spelled with only two f, but hyphenated to Schiff-fahrt at linebreaks): the Schiff and the Fahrt aren't ligated, hence ff-f.

These rules are not absolutely binding; at least I don't know of any official reglement. They're what's considered good typesetting practise.

BTW, I have a very hard time thinking of a German word that contains ffj and is not a compound of two morphemes.

There are no such rules in the English language, right? Do similar rules exist in other languages?


dezcom's picture

I also use {calt} for ligature like situations. I set up classes that contain each category of glyph for substitution purposes and replace the regular f with one of the alternates.

sub f' @idicrt by f.alt.d;
sub f' @i_stem by f.alt.i;
sub f' @L_stem by f.alt.L;
sub f' @f_stem by f.alt.f;

guifa's picture

Jens: I would think the only real solution for German is to have zero-width joiners to break the ligatures/calt at that point, am I correct? Or how is it done in high quality German typography?

David Waschbüsch's picture

@guifa: By placing the ligatures manually where necessary (and sometimes disabling liga & dlig).

Syndicate content Syndicate content