7

I am using two fonts, STSong and STHeiti. I want to know if these fonts support ligatures, such as f + i becoming one character, or at least having two characters nearby.

  • I made a ConTeXt document, but some words, such as "off" and "fish" are appearing like "of f" and "f ish". It is possible that my code is in error though.
  • I also tried viewing the fonts in OpenOffice.org, but this seems an unreliable way to check, because OpenOffice.org seems to use font-substitution whenever I type a Unicode character with a font that does not contain that character.

Is there a way to determine if these fonts contain ligatures?

1

2 Answers 2

5

For ligatures to be supported in an OpenType font, two things need to be there: the actual ligature glyphs (which you can check by scrolling through the glyph table with a symbol picker etc.) and a glyph substitution table that tells software to replace a sequence of characters by a ligature.

There’s a handy piece of software called DTL OTMaster Light (free, runs on Windows, Mac, Linux) that allows you to look at these things. Open the font file, then in the Tools menu, find the GPOS/GSUB table viewer. For “Layout Table” choose GSUB (GPOS is for kerning), for “Feature” pick “Standard Ligatures.” In a font like e.g. Minion, there’ll be a lot to see there!

Things to learn on the way: which ligatures are available in OpenType may depend on 1. the script (latin, cyrillic, etc.) 2. the language, 3. what “features” are selected, i.e. only standard ones, or all manner of fancy ligatures, and 4. the same glyph substitution mechanism is used in some fonts to replace standard digits by old-style, lower case by small caps, etc.

Oh: if your font has fi and fl, but no GSUB table, you can use a tool like FontForge to add them. Has a really weird user interface but lots of documentation online, so you’ll survive.

3

I did this in Word, but you should be able to do it in anything that has a glyph or symbol viewer.

Ligatures are unique characters that have to be created, so just view the glyphs and see if the characters are there! If so, then ligatures are supported for that font. Most fonts will have at least 'fi' and 'fl' glyphs; 'ff', 'ffi', and 'ffl' are common as well.

OpenType support can be dicey from program to program, though, so if the ligatures are there but not working in the software you're using, the issue might be there instead of with the font.

Symbols palette

1
  • 2
    I don’t think that’s quite right… Many fonts have fi and li glyphs. But many of those (in particular older) fonts don’t have the OpenType tables saying that f+i should be replaced by the fi glyph. Software that takes the OpenType spec literally won’t generate a ligature automatically. Now some software will do this replacement all the same, since so many legacy fonts lack the tables. ConTeXt, that Village is asking about, wont.
    – mabartibin
    Jun 24, 2016 at 8:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.