*DrawBot bug alert*:

While running out extensive proofing texts, I realized that GSUB and GPOS are not being applied to FormattedString() if it runs to more than three pages.

OTFeatures and, most importantly, *kerning* only get applied to the last few pages, and not the initial pages.

Issue filed and confirmed: https://github.com/typemytype/drawbot/issues/585

@justvanrossum identified the bug as part of CoreText.

FormattedString(openTypeFeatures) not applied consistently · Issue #585 · typemytype/drawbot

If I have a text that lays out on three pages or less, then the OT Features (ex. {liga}) get applied throughout. If the text is longer than three pages, then only the last three pages have features...

GitHub
@kentlew This needs to be said, too: thank you for reporting this so thoroughly, Kent!

@justvanrossum @jmsole Glad to help. In my case, it was easy to rule out font & code because I was reading in several text files and some runs featured ligs while others did not.

First I thought there might be some control char gremlin in affected text. Then I noticed inconsistency within a single text. I made up the repetitive control text, and noticed the break point kept shifting as I changed length. That’s how I narrowed down.

I was bouncing off @djrrb. He urged me to file the issue. 👍

@kentlew @jmsole @djrrb issues with data and code to reproduce are incredibly useful!