I'm currently designing a custom font that includes a large number of ligatures using FontForge. While nearly all the defined ligatures function, there's one class that doesn't render as expected in Chrome (or any other tested browser) despite functioning correctly in the Metrics preview in Fortforge. The font is compiled in the WOFF2 format.

The non-functioning ligatures are those between the greek character θ and latin vowels. In these cases, the characters will always render separately rather than as a ligature, whereas all other ligatures render as expected. The only difference I've been able to determine is that every other ligature is between characters defined as the latin character set.

The ligatures are defined in the GSUB table with feature 'liga' and scripts "DFLT{dflt} latn{dflt} grek{dflt}".

If I do nothing other than change the character θ to a latin character, the ligatures function as expected, so the issue is definitely very specific to the chosen character (θ). Is there any reason that greek characters wouldn't be expected to form ligatures, and are there any changes I can make that would affect this?

  • I am curious: What would you need this for?
    – Wrzlprmft
    Commented Apr 5, 2022 at 13:32
  • The project is to develop a font for an abugida that can be written using the IPA. Since, in an abugida, consonant and vowel combinations are generally written as a combined single character, it ideally would be possible to form ligatures between all IPA characters. I've found there are several proposals that would add a latin theta to the unicode standard, but none have reached the stage of adoption yet.
    – Revenantus
    Commented Apr 7, 2022 at 8:40

1 Answer 1


Having spoken to one of the developers at HarfBuzz, it turns out that this simply can't be done in Chrome because the text from different scripts will be separated into different runs before being passed to HB for rendering and thus such a ligature will never be triggered.

The solution for now will be to use T instead of θ.

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.