I am aware that this thread has evolved from support on compound glyphs (as it turned out) to support on other complex OTF features. I hope that this is OK as I am learning a lot from it, and appreciate it greatly.
Bhikkhu Pesala wrote:Will your font allow users to type the Bass Clef, or will they have to select it from a character map?
The user uses a menu, to enter a bass clef. The clef is stored in the file as an abstract quantity, but when the program comes to draw it, it knows it must use character U+E015 in the font and constructs a "text string" with this (followed by U+0000 which indicates the end of a string in C/C++). Then it uses standard windows UTF-16 text-drawing APIs to "write the string", ie "draw the clef".
Now in music there are two very different styles of bass clef, but my program and font only know about one of them at the moment. If I am to give an option, there will be a global flag in the program, indicating that it should draw one or the other. It would be easy to put the other one at another code point and just tell it to use that if the flag is set. But as they are two variants of the same symbol, it feels more elegant to use a substitution. So maybe, for the second kind, I could define a string "* U+E015 U+0000" and have the font make the substitution "* U+E015" goes to the variant clef glyph.
Anyway, following your encouragement, I am starting to try and make ligatures work in one of my fonts starting with i j -> ij and I think it's working in the test window!
But I may be managing to run before I've learned to walk! I've added "Δ7" as a kerning pair (to bring them slightly closer together so the top of the 7 overlaps the foot of the delta) but I'm not seeing this at all in the test window (though it does appear in the preview toolbar). Is that normal?
I've checked that the Windows APIs I'm using to draw text *do* appear to support ligatures, so I'm hoping they'll support kerning too.