No, I mainly want to change it such that it works in as many environments as possible, even in cases which I have not tested. The Gentium approach seams more stable in that regard.
This works! As I understand it, the right edge of the edit-glyph becomes the center of the export-glyph. That leaves me with the left half of the glyph to double-click in the edit view, which is enough for me.
My understanding was that double-width marks don’t get anchors or mark code, they just float between letters. @GeorgSeifert I think we discussed this fairly recently, wasn’t the idea to put a non-exporting #collapse anchor in there to tell Glyphs where to collapse the sidebearings?
I see! This allows its width to be distributed proportionally between the t and s. What happens in cases with a wide first letter and a narrow second letter, or two wide letters, does it still work well?
I just realised that there is a special anchor that does something very similar: “*origin”. It is meant for components that are used as pieces to build glyphs (stems, serifs …). I added support of it in the component alignment code.
The double combining marks are not meant to go into mark/mkmk, hence the mark attachment anchor is a bad idea. I would add contextual positioning features which raise the glyph accordingly. Typically you’ll be able to define two, maybe three default heights to which you will be able to raise the mark, with e.g. a simple <0 200 0 0> for raising by 200 units.
And you also can move horizontally. If a wide letter is on the right, move it a few units to the right. With a small letter, move it the other way. And as the movements are incremental, both sides will push or pull a bit.
Three glyphs are redundant (SM–MS, SL–LS, ML–LM) and could be simulated by horizontal kerning. Removing this redundancy would probably make the feature code more complex, but the exported files would be cleaner and smaller. I will look into it.
(All 9 glyphs use a single _part glyph, which makes managing them a joy.)