How to place multiple marks in relation to base glyph

Hello!

I have run in to a diacritics issue which I do not know how to resolve. I want to be able to put one diacritic above a glyph and a second one below the same glyph using anchor points. Logically, the placement of both diacritics should be dictated by top and bottom anchor points of the base glyph. However, the second diacritic always ignores the anchor points of the base glyph and ends up in the wrong place. How do I fix this? Or am I doing it all wrong?

Which accents (sequence of Unicode values) and which app are we talking about? For the Unicode values, you can use one of the tools of the Unicode Checker app.

Are you sure you are consistently using combining (non-spacing) marks? Both in the font design and in the typed text?

This applies to all combining diacritical marks, for instance U+0301 (Combining acute accent) + U+0323 (Combining dot below). The second mark in order always ignores the anchors of the base glyph. I have tested this in Adobe Indesign and LibreOffice Writer. Others report the same issue in Firefox.

Does your aacute glyph has a bottom anchor? HarfBuzz (the OpenType engine used by both application) will apply Unicode normalization and use the composed font if the font supports it, so your a + acute + dot below will be aacute + dot below, and if if aacute does not have a bootom anchor then the dot below will be displaced.

If you build composite glyphs using references, Glyphs should take care of propagating the anchors, so you wouldn’t need to add the anchors manually to composite glyphs.

Khaled is likely spot on here. This usually happens because of anchor propagation, or the lack of it. The ‘stacking’ logic breaks because the software is looking at the wrong ‘parent’ glyph in the sequence.

For example, in a sequence like á + dot below, the engine looks for the bottom anchor on the á glyph, not the original a. If á lacks that anchor, the dot below snapping logic will fail. In my work on Pan-African Latin orthographies, I’m finding that mastering this recipe sequence and anchor mapping (top, _top, etc.) is absolutely crucial to do before even drawing components. This is often where anchor interference happens—if a component has its own anchors, they can conflict with the base glyph’s anchors if not handled correctly.

A few things I would check in Glyphs:

  • Automatic Alignment: Ensure your composite glyphs (like aacute) have Automatic Alignment enabled. This should automatically pull the bottom anchor from the base a into the aacute composite.

  • Anchor Overlap: Check if your mark glyphs contain anchors that are ‘fighting’ the base glyph. A mark should generally only have an underscore-prefixed anchor (e.g., _top or _bottom) to attach itself, unless you specifically intend to stack another mark on top of that accent.

  • Update Glyphs Info: Sometimes a quick Glyph > Update Glyph Info helps Glyphs reconsider and reset the inheritance chain for those anchors.

Thank you for helpful replies; I will investigate possible error sources. I do have marks that are supposed to be ‘stackable’ on top of other marks – for these I have included top and _top anchors in the marks. But I suppose it is probably better to have a unique anchor specifically for these?

Did you see this: Diacritics | Glyphs

send me the file for testing (e.g. in a private message on the forum)?