From Wiki
Revision as of 08:35, 28 September 2017 by Hraban (talk | contribs) (new)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Ligatures are combinations of letters that use different glyph shapes to avoid clashing of parts like i-dots and f-arcs. Many fonts contain at least fi and fl ligatures, well-furnished fonts have also ffl, ffi, fb, fh and maybe some traditional ones like ct, ch and combinations with long s – German ß was originally a long-s + end-s ligature (even if it looks like s+z and is called szlig).

While the use of ligatures is a feature of good typography, there are places where they don’t belong, namely at syllable seams where hyphenation can or should take place.

Some typical German examples are Auf-lage, auf-laden, auf-fallen, Zupf-instrument, Schiff-fahrt.

Traditional TeX methods to break ligatures

  • Auf\/lage – breaks the ligature, but also kills hyphenation and kerning
  • Auf{}lage – worked in pdfTeX (MkII), but not in modern TeX engines
  • For LaTeX, there’s the selnolig package.

Enabling Ligatures in fonts

Ligatures in OpenType fonts are defined via "features" that you can/must enable. Usual ligature features are liga and tlig, but some fonts my have others for more/exotic ligatures. Here’s an example for a good set of default features:


The other way round – if you don’t enable ligatures in your font features, you won’t get any; this might be desirable for mono width (typewriter) fonts.

Single places

If you only want to fix a few occurrences, you can use \noligature. Compare:

Auflage Zupfinstrument
Au\noligature{fl}age Zup\noligature{fi}nstrument


ConTeXt has a method of replacing words that you can use for ligature exception dictionaries:



Auflage Zupfinstrument

Auflage Zupfinstrument

Much better. The first parameter os {{cmd|replaceword} is a set (collection) keycode, i.e. you can define different sets of replacements and activate them with \setreplacements.

In current versions (after 2017-09-28) you may also define several exceptions at once, like

\replaceword [eg] [Au{fl}age Schiff{f}ahrt Zup{fi}nstrument]


You can also define blocking of ligatures as a font feature:


\definedfont[Serif*default:nolig] % no ligatures
fi ff fl Auflage Zupfinstrument

\definedfont[Serif*default] % yes ligatures
fi ff fl Auflage Zupfinstrument

While general blocking (\blockligatures[fi,fl]) works, the exception handling (\blockligatures[au:fl:age]) might depend on a version unpublished as of this writing (i.e. after 2017-09-28).