Combining Diacritics Positioning

Whats the correct/best positioning strategy for zero width combining diacritics? I've been just making them so that the anchor sits at x=0, but I've heard today from @Frode Bo Helland (inactive) the they align so that it is on the left side of the sidebearing so that it can sit over the center over the "o" (i.e. likely all in the negative).


  • Using a negative positioning so they sit over the ‘o’ seems like a better strategy. Remember that not all applications support mark-positioning, so it’s best to position them in a way that works best (even if imperfectly) with the lowest common denominator.
  • John HudsonJohn Hudson Posts: 1,343
    We've typically set combining marks offset to the left (or right for RTL scripts) to provide reasonable fallback in situations where GPOS mark positioning either isn't supported in the font or isn't supported in the display environment. The latter situation is now a lot less rare than it used to be, and the advent of using anchor positioning in font tools makes it easy to generate GPOS data (although contextual and mkmk positioning can still require additional work). So if you're making a font that includes GPOS mark positioning, I think today you can reasonably choose to forego that fallback mechanism.
  • Wei HuangWei Huang Posts: 77
    Thank you @John Hudson, that's exactly what I wanted to know. Typically what rare situations nowadays would you expect that fallback to be still necessary?
  • Georg SeifertGeorg Seifert Posts: 502
    An opposite placement cold help with the debugging of the font. Then, if the mark positioning doesn't work, you will easily see it.
    (In, if you give the marks a width, then it will do what John said automatically.)
  • John HudsonJohn Hudson Posts: 1,343
    (In, if you give the marks a width, then it will do what John said automatically.)

    You mean you collapse the width on export but keep the offset position from the new 0 coordinate based on text character direction?
Sign In or Register to comment.