[HarfBuzz] USE and zeroing marks

Behdad Esfahbod behdad.esfahbod at gmail.com
Thu Nov 12 02:48:46 PST 2015


On 15-11-11 07:19 PM, Martin Hosken wrote:
> Dear Behdad,
> 
> I see from the code that the USE shaper doesn't zero marks. But that the USE spec implies that they are:

Yes, this is something that was brought to my attention recently.  USE was
changed to zero mark advances, for backward compatibility with existing fonts
for scripts that were routed to go through USE (ie. Tibetan).


> the width of the base character must be added back using the <dist> feature. This is necessary because OT processing cancels the width associated with a mark. It is necessary to cancel the width of a non-spacing mark because it is not clear where to apply the width of a non-spacing mark during OpenType processing.

Note that HarfBuzz cancels the width of any mark when it's attached to a base
anyway.  So this only affects marks that are left unattached.


> I'm hoping that the spacing marks proposal will answer that final question. But it does imply that marks need to have their advances zeroed.
> 
> I don't quite follow how not zeroing marks works. If I attach acute with advance of 100 to an a with advance 200, I assume I end up with a total advance of 300? I think the spacing mark proposal helps sort out the overlap problem which is really tricky to resolve otherwise even for those shapers that don't zero their marks.

No.  See above.


Cheers,

behdad


More information about the HarfBuzz mailing list