Nukta and GlyphApp's autogenerated OpenType

Nukta (nukt) is one of the very first tables called by the shaping engine. In most fonts, the nukta forms are created here. Glyphs however, breaks the glyphs with nuktas (like qa-deva to ka-deva nukta-deva) and lets GPOS position the nuktas later. So, when akhn and cjct tables are called, the bases are still separated from their nuktas. A sequence like क ् ष ़ (u0915 u094d u0937 093C) ends up as ka_ssa-deva nukta-deva, which, I understand, is incorrect. The correct sequence should be k-deva ssa-deva nukta-deva (since ssa with a nukta is not a ssa). Likewise for all other conjuncts.

This could have been prevented if a nukta-ed ssa-deva (ssa.nukta-deva) was formed in the nukt table or the akhn and cjct tables are made aware of the presence of a nukta.

Makes sense?

2 Likes

While I believe it’s arguable whether <क KA, ् VIRAMA, ष SSA, ़ NUKTA> should be formed as <क्ष kssa ़ nukta> or <क्‍ष halfka ssa ़ nukta>, I can see this behavior is largely unintentional and thus an oversight (or, better put, a marginal case that is out of scope of the intended usage and does not get a designed fallback) of shaping logics that rely on GPOS for nukta shaping.

Yes, the nukt feature is there to allow a font to simplify subsequent shaping rules as in this way all nukta-ed letters can be treated as atomic letters. When early ligations for nukta don’t happen, and nukta-ed letters are expected to behave differently from nukta-less letters, all subsequent contextual rules must be written in a way that they are actively aware (not just benefited from the nukta character’s ability of automatically disturbs some contexts) of a potential nukta following pretty much any character (because at least there are minor orthographies that use nukta on vowel signs).

But I also find it’s probably not very practical to recommend that fonts should treat all nukta-ed characters differently. Because that would mean, any nukta-ed character that is actually expected to behave in the same way of the nukta-less counterpart needs to be recognized on an opt-in basis. Mmm … or, that is exactly what we should promote?

1 Like

The follow up question to this will be: which letters behave differently when nukta-ed and in which languages? If all letters are given a nukta-ed form as well as a nukta-ed half-form we’ve pretty much covered half-form based conjuncts (or linear conjuncts in Glyphs terminology?). What is left will then be the ‘non-linear’ conjuncts like kssa and jnya.