I think we may have discussed this before, but I can’t remember where.
If we don’t use a custom glyphOrder, the consonants get grouped by script. In the image here we can see Letter Thai, Letter Myanmar, Letter Khmer, Letter Lao — I don’t know what determines the order of scripts as Unicode would be Thai 0E00, Lao 0E80, Myanmar 1000, Khmer 1780. Note the marks all get bundled together (and this is only a fraction of the number of marks that a finished font will contain).
I really dislike the marks getting separated from the rest of the script, since it means scrolling quite a distance down, and then finding a particular Khmer or Burmese mark is really hard when they’re all jumbled together. Perhaps the default setup could have ‘Letter Thai’ followed by ‘Mark Thai’ then ‘Number Thai’ and ‘Punctuation Thai’ and the same for the other scripts?
Even when using a custom XML and explicitly setting the sortName so that they follow sequentially from the letters, the marks are still separated from the rest of their script.
So, the solution is to use a custom glyphOrder. Here’s a quick try:
This is definitely better, but we’ve lost a way to group the scripts into different sections. When many of the glyphs are empty like this, it’s not too much of a problem but when things start filling up, finding a particular letter in all of them will start to take a bit of time. Of course we could try colour-coding to distinguish the Burmese from the Khmer, but I prefer to use colours for different purposes. Ideally I’d like to have better control of the glyph sequence. Would it be possible to implement a syntax in the glyphOrder to have separators with titles? For example:
## Thai koKai-thai khoKhai-thai... ## Lao koKai-lao khoKhai-lao...
It could potentially have hierarchy too, following the h1, h2, h3 idea for subcategories within a script (letters, marks, etc).