Filter: UnnestComponents problem


I used Filter:UnnestComponents in every instance on my Exports settings and usually everything goes fine but working with another file I get messages with problem removing overlaps in several glyphs.

I saw almost all my composite glyphs had their automatic alignment disabled, and Preview Panel looked like this:

Deleting the Filter seems to work and I can export again.

BTW: Why is so important to avoid nested components?

This can lead to issues in TrueType fonts. Alignments can suddenly jump, components can be misaligned, long story short, nested components are big no-no.

Can you show the glyph in which you experience an issue with removing overlap?

What kind of nesting do you have. I usually set up my composites in a way that there is no nesting in the first place.

The problematic glyph is IJacute, so it has two components (Iacute, Jacute), wich are made of components themselves.

Is there a way to set up this composite apart from decompose Iacute and Jacute?
EDITED: Silly me. Just I+acute+J+acute

And today I applied the Filter again and it works OK :crazy_face:

I’ve been asking for real world examples and never got any.

What? I’ve encountered this countless times. You can check some of my commit histories of font renderings :wink:

Only if you had transformed components and hinting at the same time, no?

That’s another issue, indeed, but nested components have definitely already resulted in alignments that flew me around the ears. much more than transformed components with hinting.

As in, components would suddenly be positioned hundreds of units elswewhere.
I’ll keep an eye out.

I can confirm that it lead to troubles without transforming and hinting, I think it was when dotaccentcomb was used as a component for Resulting accents were all over the place, but only in variable, static fonts were fine.

I’ve been asking for real world examples and never got any.

Somewhat late response, but here’s documentation of real-world issues I ran into, both with transformed components and nested components. Perhaps TTF autohinting had something to do with it, as well.

As a specific example, this /f_i ligature was using /i as a component, which in turn used the /idotless and /dotabovecmb, if I remember correctly: