I wonder if there is any OT-feature, that can fill a certain glyph between two others. This would be something like that if one types »AB« the feature makes »A*B« of it. (while * is the certain extra glyph).
From my point of knowledge one can only sub the same number of glyphs. My weird problem would add something in between though. Is this possible at all?
We had a discussion about something similar some time ago. In a nutshell, you cannot directly insert, but you can do a one-to-many substitution first:
sub A by A zerowidthspace;
sub B by B zerowidthspace;
sub C by C zerowidthspace; etc.
… and then do a contextual substitution afterwards:
sub [A C] zerowidthspace’ [B D] by asterisk;
And in the brackets, you’ll just add all the glyphs between which the asterisk should appear. Perhaps you will need to put those two parts in separate lookups:
lookup FIRST {
sub A by A zerowidthspace;
sub B by B zerowidthspace;
sub C by C zerowidthspace;
} FIRST;
lookup SECOND {
sub [A C] zerowidthspace’ [B D] by asterisk;
} SECOND;
But in your case, wouldn’t a simple A_B.liga ligature (showing the asterisk in the middle) be the better substitution?
mekkablue, you code-wizard ( ), this looks really delicious at first glance. i will check this afterwards. thank you in advance!
you are generally right with the ligature. but i actually abstracted my certain problem a bit. it is much more confusing and does not work with ligatures.