Basically, each tone marks ( such as maiEk-thai, maiChattawa-thai, maiTho-thai, maiTri-thai, and thanthakhat-thai) are comprised of 4 position. (low, low right, high, and high right)
But the software provides only two position such as maiEk-thai and maiEk-thai.small
The base glyph (e.g. thoThahan-thai) has a top anchor. first mark (e.g. saraIi-thai) has a _top (somewhere below the outline) anchor to attach to the top anchor of the base glyph. But, it also has a top anchor (above the outline) itself. The second mark (e.g. maiEk-thai) again has a _top anchor. So it attaches to the top anchor in the saraIi.
So the base glyph does not need to know about the second mark glyph.
because the two marks on top of each other are quite high. So one would use maiEk-thai.small instead of the maiEk-thai. The glyphs are exchanged in the ccmp feature.
nothing special, just the top anchor in the thoThahan-thai and the _top anchor in the maiEk-thai
The same as above, just move the top anchor a bit to the left:

Same as thoThahan-thai
Same as poPla-thai. The maiEk-thai attaches to the saraIi-thai so you dot need to think about it.
And did you generate the features in Font Info > Features? Hit the arrow button in the lower left.
Add an glyph named loChula-thai.short. It will get a top anchor. Or, if you do not what to add it, just add a top anchor (context menu > Add anchor, change name to âtopâ)
and it helps if you put the top anchor in the âregularâ base glyphs centered above the right stem. Then move the _top anchor in the mark glyphs to the right, too. (Select two nodes of the stem and an the anchor and hit cmd+shift+A.) That way the _top anchor in the maiEk-thai is centered, too.
And put them on the x-height line (for the regular glyphs).
I forgot to mention that you have to enable the âWorld Ready composerâ in Indesign, too. Follow the instructions in the site I send earlier.
If that does not help, could you send me the .glyphs file and the generated .otf?
Hello @zood and @GeorgSeifert,
I followed the conversation carefully because i have almost the same problem with Thai -Glyphs and the correct placing of _top and _bottom accents on the first and second level.
All accents that Glyphs offers have been created, but somehow there seems to be no difference in choosing for instance maiEk-thai and maiEk-thai.small.
Iâm not clear what the difficulty is here, but Iâll try to be clear and simple about what needs to be done.
All tone marks (both upstairs and downstairs versions) need â_topâ anchors.
Above-base vowel marks need â_topâ anchors, and consonants need âtopâ anchors, so that these vowels will sit in the right place.
Above-base vowel marks also need âtopâ anchors, so that any upstairs tone marks can sit in the right place.
If youâve used the Glyphs naming convention, your upstairs tone marks will be called maiEk-thai.small, maiTho-thai.small etc. In your OpenType features panel (cmd+I>Features), you will then add a âcaltâ feature for contextual alternates and click to auto-generate the code (or write it yourself if you like). This will tell the font to switch downstairs tone marks to upstairs versions when following an above-base vowel.
(For Thai, you will also need the ccmp feature to decompose sara Am into nikkahit and sara Aa.)
I missed to thank you for your reply @Bendy, sorry for the delay!
The âtopâ and "_top" anchors seem to work somehow. A year later i still have not figured out how the above-base vowel marks turn into upstairs tone marks, or second level to first level.
Another thing is that glyphs wonât let me create the âcaltâ feature for contextual alternates. On click to auto-generate the code the feature disappears.
I created all glyphs for Thai â any accents .small (e.g. maiEk-thai.small) are existing, but not used somehow.
This problem is something most Thai-fonts donât solve, although some System-fonts seem to manage. I am really stuck here, thanks again for your help.
I think youâre thinking of things in the same way many of the older Thai fonts did things. Nowadays we donât ever need to switch second level to first level. Default is in the right place above the consonant (not flying away), and only when thereâs a vowel like Sara I does the tone mark move upstairs.
@GeorgSeifert or @mekkablue perhaps we need to write a Thai tutorial? It seems like the process isnât as intuitive as weâd like (I havenât tried the auto-generate calt feature for Thai, shouldnât it work comprehensively if the glyph names are following Glyphsâ convention? Why is the feature disappearing when clicking auto-generate?)
Iâm not sure why youâre lowering it in that example. After Mai Hanakat, any tone mark should be the upstairs version, and if the anchors are in the correct places the marks will not crash.
Hereâs an example. Default Mai Ek is shown on Ko Kai and Po Pla. Anchors can be repositioned if youâd prefer to have the Mai Ek above the stem of Po Pla. Adding in a topvowel makes Mai Ek switch to the upstairs (calt) version. Again, anchors can be repositioned to put the marks exactly where you want them, but there should be no need to switch an upstairs glyph for a default one.
In my example above maiEk-thai is somehow used on both glyphs. There seems no choice to either lower it on one and lift it up on the other glyph, like the anchors offer as an individual positioning.
In your screenshot that works exactly how i wanted it, but i cannot find the mistake in my setup. This might be connected to the missing calt feature, but the glyphs preview doesnât look right in the first place.