Manually inserted glyphs in Adobe Illustrator are changed when glyphs are added/deleted in the Glyphs App

I have a font with hundreds of custom ligatures like L_m_e.liga and P_l_o.liga. I have used the font in Adobe Illustrator where I have placed multiple ligatures with the glyphs panel. When I remove glyphs from the font in the Glyphs app and export the file, the placed ligatures in Illustrator are replaced by ones near them in the glyphs panel.

I assume the glyphs panel in Illustrator is using some kind of sequenced number that is generated each time a file is exported from the Glyphs app. I’m wondering what that number field might be and if there is a way that I can make it static rather than auto-generated with each export in order to keep my glyphs from shifting in Illustrator.

Yes, inserting a glyph via the Glyph Palette references the glyph by its glyph id.

The glyph id is a number that is assigned automatically to each glyph on export, but you can also define the glyph ids manually by adding a glyphOrder custom parameter to the font.

Thank you. So if I add the custom parameter with glyphOrder, how would I edit that list when I remove a glyph so that the IDs will remain the same with the other glyphs?

So if part of the list was:
T_t.liga
T_t_a.liga
T_t_e.liga
T_t_h_a.liga

and I removed T_t_a.liga from my Glyph file, what would I do to the custom parameter list?

You can’t remove glyphs. You would need to add another (empty) glyphs.

Do you have feature code that would reach those ligatures? Because if you have, Indesign would not add them by glyph I’d but will add the base glyphs and apply the feature. Not sure if Illustrator is setup to do this, too?

For context, this is the situation I am trying to remedy:

The all-white text is how it appears when typed directly. Most of the tweaks are not direct replacements, so I can’t set them up as alternates. I have to use the glyphs panel to show the customization options.

But when I went and added a random glyph in the Glyphs App (A_A.liga) and exported, it changed all the glyphs I added from the glyphs panel.

Can you please further explain what you mean by “You would need to add another (empty) glyphs.”?

On export, glyphs are assigned their glyph ids in order of appearance in the glyphOrder list. This means that you cannot have a gap. So, if you previously exported a font with the following glyphOrder:

...
someGlyph
otherGlyph
someOtherGlyph
...

and then delete otherGlyph from the font and from the glyphOrder list, the list now looks like so:

...
someGlyph
someOtherGlyph
...

So, now someOtherGlyph is at the position on the glyphOrder where otherGlyph was previously. This means the someOtherGlyph now gets the glyph id that otherGlyph previously had.

If you want to make sure that the glyph ids don’t change like this, you could an ‘gap glyph’: a glyph that is empty (no paths) added to the purely to push the other glyphs back to their original glyph ids:

...
someGlyph
anEmptyGapGlyph
someOtherGlyph
...

You need to find a way to get the glyphs by Opentype features. Liga or calt come to mind.

Agree. Bad idea to find workarounds for managing glyph IDs in order to fix the bugs of a third-party application.

Most of the stuff you show could be contextual alternates.

Thank you all. I will work on the contextual alternate route.

1 Like