Diacritic cloud and custom GlyphData.xml

We are having difficulty using the diacritic cloud with a custom GlyphData.xml. The script is Gunjala Gondi (ISO 15924 code is Gong). If we remove -gong from the XML file, then the glyph names match the project UFOs (that are converted to a Glyphs2 file for using with Glyphs), but the diacritic cloud does not work.

If the glyph names in the project are renamed to have -gong (so far, a test rename was done within Glyphs) then the diacritic cloud works.

Why do the glyph names need to have -gong at the end? I realise having the script specified is a Glyphs convention. However, why does this convention matter if the custom XML file (and the project UFOs) match (both don’t have -gong)?

The glyph names can be renamed, but this breaks the OpenType build, since I use a script to generate classes based on ligature glyph names, and while the script understands a name such as ya_aamatra to be the combination of ya and aamatra, the script does not know that ya_aamatra-gong is the combination of ya-gong and aamatra-gong.

Before improving the script, I was wondering if there is a way to change the XML file (such as using using altNames) to make the diacritic cloud work. Glyphs 3.2-3194 was used for testing, which includes fixes from Georg that he made after ATypI 2023.

The names in the xml do have the -gong suffix. The suffix is needed as there are to many scripts that have similar or equal glyph names. So if you plan to never have more than one Indic script in one project, you can remove the suffixes.

If the script can run inside Glyphs, you can try this:

info = Font.glyphsInfo().glyphInfoForName_("ya_aamatra-gong")
print(info.components)

And if you explain what feature are needed for Gunjala Gondi, I can add that to the automatic features. I had a look at the feature code in the .ufos you liked to. Most of the code is mark positioning that should be easily be posible to generate from anchors. And the bit GSUB could be regenerated with a few lines of code.

And for the .half glyphs:
I suspect the Indic shaping is not working for Gunjala Gondi, yet? So you put the substitutions into “rlig”?
For all other Indic scripts, the Halfform names are made by removing the “a” from the full form name: ya-gong > y-gong.

We did remove the suffixes as a test (this project does not plan on having other Indic scripts) but then the diacritic cloud does not work. This is the main issue we are facing.

The script does not run inside Glyphs, so no, I cannot use the function you suggest. This script is our FEAX pre-processor that is run for many of our fonts at build time.

Thank you for being willing to add Gunjala Gondi. I am puzzled how to respond. It seems to me that what OpenType lookups are needed depends on how the glyphs are designed. An example is we had a clash in some cases with the ee, ai, and au matras. The Noto font did not have the same clashes since the matras are higher in all cases (they are drawn differently). In Narnoor, we created ligature glyphs for the clashes and then modified the new ligatures to avoid the clash. As a result, those ligatures needed to be added to the OpenType code. For Noto, I suspect such ligatures would not have been needed, and therefore the OpenType code would have been different.
image

I am not sure what you mean by not working. The OpenType shaping works in several different applications (Word, Chrome, InDesign, etc.). Do you mean that the Gunjala Gondi script does not have its own Indic shaper (like Bengali and the other major Indic scripts do)? For Gunjala Gondi script the Universal Shaping Engine (or maybe the default shaping engine) is used, and seems to work well.

I had noticed this pattern in Glyphs. Unless I am using the not yet implemented automatic OpenType feature generation for this script, having the .half suffix, along with our FEAX pre-processor, generates helpful classes to refer to all the glyphs that have half forms that I can then use when writing the OpenType lookups.

Thank you for your help. I do realise that this project does not fit into the pattern that Glyphs uses (glyph naming conventions, OpenType code) so I am trying to figure out how much to adapt to in order to use the very nice diacritic cloud feature in Glyphs.

Is there a way to get the diacritic cloud to work with glyph names not having a suffix -gong? Should I be using altNames in the XML file?

You need to use the same names of the marks in you .glyphs file and in the marks/accents in the GlyphData.xml.