[HarfBuzz] Possible failed positioning in Harfbuzz - and Uniscribe

tom.programs at gmail.com tom.programs at gmail.com
Sun Oct 6 16:13:42 PDT 2013


I am just beginning to try Harfbuzz, but I am writing to you because I think that I might have found incorrect behavior when I have both a contextual chained substitution and a contextual chained positioning.

The problems occur when I have the following two rules:
1 Substitute ["e"] with ["o" "e"] when preceded by an "a" (context: { ["a"]  |  } )
2 Position the mark ["gravecomb"] anchoring it to the ["e"] when the mark is followed by an "i" (context: {  | "i"  } )

What I think I should see when I type ["a" "e" "gravecomb" "i" "e" "gravecomb" "i" ] should be something like [aoèièi] 
What I see is more like [aoeˋièi] (the first "gravecomb" is not anchored to the "e")
I used the characters "a", "e", "i", "o", "gravecomb" (U+0300) but the problem is not specific to those characters and persists even in right to left scripts. I found while examining the font SBLHebrew and the string "קוָ֣".

I built a very minimal font that reproduces this problem with the latin characters I used for the example. I put online the Fontforge source <https://www.dropbox.com/s/a78cypqv3jgmaex/prova.sfd> and the ttf <https://www.dropbox.com/s/5hq1c5mdg4isvzo/minimal.ttf>

However, the fact that the problem is reproduced almost exactly on Uniscribe, and even in the Proofing tool of MS VOLT makes me wonder if it is a bug or not. The problem is not present on the shaping system of ConTeXt Mark IV and on Apple's TextEdit, so it is even more mysterious for me.

I also put the link of the (IMHO correct) rendering of Fontforge <http://s23.postimg.org/8w44n9b3v/Screenshot_from_2013_10_07_00_55_45.png> and of the rendering of hb-view <http://s14.postimg.org/p02lzc29t/Screenshot_from_2013_10_07_00_58_32.png> (in order to render it with "hb-view --language=dflt --features="calt,kern" '/home/mint/Desktop/minimal.ttf' aèièi", be aware that the è is composed of two characters,  U+0065 and U+0300, because the software tends to convert this sequence to the single U+00E8 character). The problem is not with the spacing (in my font the "gravecomb" has nonzero width, but it's a mark, so its width is somewhat undefined) but with the fact that the first accent is not attached to the first "e".

--
Tom


More information about the HarfBuzz mailing list