Does anybody know if Adobe’s World Ready Composer is supposed to replace <consonant> + <ೊ> with <consonant><ೆ><ೂ>? For example, I have:
sub knDA knmE by knDE;
sub knDA knmO by knDO;
in a font, with knDA being ದ, knmE being ೆ, knmO being ೊ and knDO being ದೊ. If I input ದ+ೊ Indesign gives me ದೆ + ೂ instead of the knDO glyph that I want. I’m sure this is hard-coded into Indesign, because it happens if the font contains no OpenType features. au, u, e, and uu don’t work this way. Is this normal behavior for a Kannada shaping engine?
Comments
Let me know if I understand you correctly. I assume you have a non-unicode glyph 'knDO' in your font that you want to activate when the input sequence is 'knDa' + 'knVowelO'. I would suggest you use the 'post' (Post-Base Substitutions) feature and simply substitute:
From Microsoft's 'latest' spec (http://www.microsoft.com/typography/OpenTypeDev/kannada/intro.htm#features):
What you describe as InDesign's output is indeed the correct shaping behavior, except it isn't giving you ದೆ + ೂ but really ದ + ೊ (this obviously depends on the input character sequence). You can test this by copy/pasting the cluster into Richard Ishida's useful UniView web tool (http://r12a.github.io/uniview/). Paste into the 'Edit Buffer' field and click on the downward facing arrow.
I hope what I'm saying makes sense
Edit: Spelling and case.
This will not work (at leat not in Indesign) as the knVowelO is not there any more at this point.
You have to to do it like this:
(sorry, I don't know the proper names in your naming but you should get the point)
Thanks for that! It’s a useful tool.
I figured it out from looking at ITF’s template code. The code that gets my stuff working is:
I don't understand what you mean here. The 'knVowelO' (Kannada Vowel Sign O 0CCA) is a an encoded character, and thus can be combined with a preceding base consonant to access a consonant-vowel mark ligature glyph using the 'post' feature.
Unrelated: Are you working on a Glyphs version for the iPad Pro?
U+0CCA has a canonical decomposition to 0CC6 + 0CC2. As with other two-part vowel signs in Unicode, you can expect the layout engine to decompose at the character level, long before one gets to the glyph processing of features such as 'psts'* (which is processed relatively late in the shaping, after reordering).
* NB, the Post Base Substitutions feature tag is 'psts', not 'post'.
As the current Kannada specification** notes:
So Georg is almost right to say that by the time the 'psts' feature is processed the Kannada vowel sign O glyph is no longer in the glyph stream: in fact, it was never there at all because the character has been decomposed even before the layout engine gets the glyphs from the cmap table.
** Note that Adobe's World Ready Composer implements the old XP 'knda' shaping model, not the current 'knd2' shaping. The older specifications are no longer available on the MS site, but I don't recall the behaviour differing with regard to two-part vowel signs.
In my Kannada fonts, I have typically already performed the substitution
early in the 'psts' lookups; so then perform the substitution
Of course, you could do it various other ways, e.g. performing
before performing
Keeping in mind that some Microsoft products may use different versions of Uniscribe. Office still, so far as I know, ships with its own version, which may differ from that which comes with Windows (this allows for compatibility within a given version of Office apps, regardless of which version of the OS they are running on).
To test the OS version of Uniscribe, I use Wordpad most of the time, but if I want to be sure to avoid anything coming between the font and OTLS — e.g. RichEdit — than I use NotePad.