Search code examples
qtgsubopentype

Which OpenType GSUB features does Qt 4.8 support?


Which glyph substitution features does the text rendering in Qt 4.8 support? I am hiring a font designer to create a font that requires OpenType glyph substitution (GSUB) and this guy would like to know which features he can use.

I am referring to features such as Standard Ligatures (liga), Discretionary Ligatures (dlig), All Alternates (aalt) and such. A full(?) list of GSUB features scan be found at the end of this article: http://ilovetypography.com/OpenType/opentype-features.html


Solution

  • I contacted the OpenType mailing list and one Qt developer (Jiang) and figure out the details:

    1. I can get extended OpenType features in Qt 5.3 by recompiling Qt with the "-qt-harfbuzz" configuration. This enables experimental Harfbuzz-NG support, which then covers the following GSUB features: CALT, CCMP, CLIG, CURS, KERN, LIGA, LOCL, MARK, MKMK, RLIG. The default build of Qt 5.3 only supports CCMP, LIGA and CLIG.

    2. Qt 4.8 on Windows and Linux still uses the old Harfbuzz with only a few GSUB features available (CCMP, LIGA, CLIG). There is no option for experimental Harfbuzz-NG in Qt 4.8. It might be possible to enable more features in the old Harfbuzz source code (part of Qt) and recompile Qt, but this is not verified. I am testing this at the moment.

    3. Qt on Mac is a different story. It by default supports more GSUB features both in Qt 4.8 and 5.3, including CALT. Here is the explanation from Jiang: "As far as I remember, Qt 4.8 Mac is the outlier here as it uses Core Text by default while on Linux and Windows use the old HarfBuzz. Core Text applies its own OpenType feature sets thus the result is different from where you get with the old HarfBuzz, which probably don't apply calt by default."