Open adamiturabi opened 3 years ago
This is possible, although the double-width combining marks in Unicode are a hassle to implement in a way that accomodates varying letter width.
Spec'd for 2.20
Implemented in Text fonts for v2.20. Implementation includes GSUB contextual substitutions of variant double-letter ties based on letter widths, and GPOS contextual vertical adjustments to accommodate different letter heights. The ties have anchors for above or below marks as appropriate, but will have limited interaction with other marks, e.g. if a tie is applied between a pair of letters one or both of which also carry a combining mark, the tie may collide with the mark.
NOTE: text sequences involving the double-width ties with other marks may include U+034F COMBINING GRAPHEME JOINER (CGJ) to prevent reordering of marks during Unicode normalisation. I need to figure out an appropriate way to manage the presence of this character in glyph processing, so that it doesn’t prevent correct mark positioning. Currently thinking I will need to add an empty glyph for the CGJ and then filter it out of the anchor pos lookup for these sequences.
Added support to handle presence of CGJ in mark sequences. This is done by adding U+034F character to Text fonts (empty zero width glyph), classifying it as a mark in the GDEF table, and then excluding it from the mark filter set from all mark positioning lookups. Re-test in v2.20 when released.
Updated sources and fonts delivered to STI Pub for testing. Issue reopened pending public release.
I would like to suggest implementation of U+035F (Combining double macron below). When adding, it will be nice if it can support stacking diacritics thus:
(Input sequence: d, U+035F, U+0323, h)