-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Anchor propagation differences between ufo2ft and Glyphs #802
Comments
(Tagging @schriftgestalt because the second example is also, arguably, a Glyphs bug.) |
The anchor propagation stops when it finds any underscore-anchor. Because it is not clear what anchors are stil valid. When you would use a component to "rcomb", then you can’t use any of the existing anchors. So the "rbelowcomb" needs a "_below" and a "below" anchor to properly support mkmk. |
OK, I suppose that's a reasonable position to take; the only alternative is to get into weird heuristics to determine whether a mark-to-mark anchor should be propagated (i.e. if your glyph has I guess we should probably do the same thing. Thoughts, @anthrotype? |
composite glyph anchor propagation is just a mess, it's entirely undocumented, we have three implementations of it (one in ufo2ft, another in glypshLib, plus of course Glyphs.app's own black box) and nobody except Georg seems to be confident about how exactly it is supposed to work, considering all the various edge cases and hacks accummulated over the years. |
ok apologies for the rant.
I read this post several times, and I am still not sure what "the same thing" actually means. If you send a PR maybe it's easier to understand what exactly you mean. Just a reminder, that the ufo2ft propagateAnchors filter is not normally used by fontmake, unless one is building a DS+UFO set of sources ahd has explicitly opted in via the filters lib key; when you build from a .glyphs source it is actually the glyphsLib anchor_propagation.py module that is being used, so the current issue might be misplaced. |
I believe @schriftgestalt once confirmed this in another thread googlefonts/glyphsLib#368 (comment)
... but it looks like we never actually fixed our implementation(s) to match that. We should |
That's what I mean - "we should do the same" as Glyphs does in not propagating anchors in the mark-to-mark case. |
This is meant to match Glyphs.app's logic, see #802 (A similar fix should be added to glyphsLib's anchor_propagation.py until the latter is superseded by the ufo2ft filter)
This is meant to match Glyphs.app's logic, see #802 (A similar fix should be added to glyphsLib's anchor_propagation.py until the latter is superseded by the ufo2ft filter)
This is meant to match Glyphs.app's logic, see #802 (A similar fix should be added to glyphsLib's anchor_propagation.py until the latter is superseded by the ufo2ft filter)
This is meant to match Glyphs.app's logic, see #802 (A similar fix should be added to glyphsLib's anchor_propagation.py until the latter is superseded by the ufo2ft filter)
Rendering the sequence H᷊́Hͬ͏̗ in Noto Sans, as compiled by Glyphs, looks like this:
Fontmake, on the other hand, does this, which is wrong:
This is because
rcombbelow
is made up of a componentr
plus a_below
anchor, and ufo2ft propagates all anchors of ther
component (i.e.above
andbelow
) so the resultingrcombbelow
glyph has anabove
mark-to-mark anchor.However! The sequence H᷊᷊ looks like this in Glyphs:
It feels like Glyphs just doesn't propagate any anchors to mark glyphs. Fontmake, on the other hand, gets it right:
I don't know if there's a good solution here, but the results should at least be consistent.
The text was updated successfully, but these errors were encountered: