-
Notifications
You must be signed in to change notification settings - Fork 682
Description
After some discussion @behdad summed it up nicely:
So, if you have base1,mark1,base2,mark2, and you ligate base1,base2 you'd get lig,mark1,mark2 but HarfBuzz remembers that mark1 and mark2 belong to first and second components of the ligature respectively and does NOT apply mkmk between them.
Now, in your case, you are ligating a base with a mark.
With sequence base1,mark1,base2,mark2 that makes sense that the marks both apply to the resulting ligature of base1+base2. However, what we have here is base1,mark1,mark2,mark3. A ligature is formed from base1+mark2 and then mark1 should attach to that with mark feature and mark3 should then attach to mark1 with mkmk feature. This is probably an unusual situation, but in this case all marks are post-base marks. They are actually all Spacing Marks, but we can't classify them as bases in the GDEF because we need them to be marks to allow for other following marks (including Vedic marks). That puts us in this situation of relying on mark and mkmk attachment to place them appropriately.
Here's a little visual explanation showing what happens in various situations. The third one shows how the ligature stops the mkmk. The fourth shows what should happen. There mark2 doesn't ligate so it's showing base1, mark1 (post-base), mark2 (top), mark3 (mkmk attached to mark1).
