[mpeg-OTspec] Interaction between kern table and GPOS table

Sairus Patel sppatel at adobe.com
Wed Jan 13 04:03:37 CET 2010


[actually cc'ing opentype-migration-list at indx.co.uk this time instead of listmaster at indx.co.uk.]

Hello Behdad,

> Doesn't this belong to the OpenType list though?

I was hesitant to send it to both lists: I thought/hoped there would be sufficient overlap by now, and didn't want to clog folks' Inboxes with duplicates. But I'm happy to cc the OT list on this thread now, and perhaps in the future err on the side of clogging Inboxes rather than leaving some folks out of the discussion.

> I'm leaning towards not applying 'kern' if the font has any 'GPOS' table though.

Reasons not to do as you suggest:
1. We've seen fonts with "stub" or empty GPOS tables, I believe produced by VOLT. If we do not apply the kern table in this case, no kerning would occur in OT layout.
2. MS had revised Arial and Times New Roman in Vista to add a GPOS table with only non-kern features in it; the kern table remained. If we do not apply the kern table in this case, no kerning would occur in OT layout.

Best,
Sairus


-----Original Message-----
From: Behdad Esfahbod [mailto:behdad.esfahbod at gmail.com] On Behalf Of Behdad Esfahbod
Sent: Tuesday, January 12, 2010 3:49 PM
To: Sairus Patel
Cc: mpeg-OTspec at yahoogroups.com
Subject: Re: [mpeg-OTspec] Interaction between kern table and GPOS table

Hi Sairus,

Thanks for bringing this up.  Doesn't this belong to the OpenType list though?

I'm leaning towards not applying 'kern' if the font has any 'GPOS' table though.

That said, from a technical point of view, it's also worth noting that GPOS is
applied on the logical glyph string while 'kern' is applied on the visual
string (ie. after reversing for RTL runs).

behdad

On 01/12/2010 06:31 PM, Sairus Patel wrote:
>  
> 
> Reason:
> 
> Sometimes a font can have both a kern table and a GPOS table, and the
> GPOS may or may not have a kern feature for some scripts and language
> systems. How is an OFF layout engine to decide which source of kern
> data, if any, to apply? This proposal specifies this. Question: It is
> proposed to be in the Recommendations section; is there a better place
> in the specification for something like this?
> 
> Proposal:
> 
> ADD the following paragraphs to the end of the 'kern' Table sub-section
> in the Recommendations section:
> 
> When a kern table and GPOS table are both present in a font, and an OFF
> layout engine is requested to apply kerning to a run of text of a
> particular script and language system: (a) If the number of kern feature
> lookups in the resolved language system in the GPOS table is zero, then
> the kern table must be applied, followed by any remaining GPOS features
> requested. (b) If the number of kern feature lookups in the resolved
> language system in the GPOS table is non-zero, then all GPOS lookups,
> including the kern lookups, must be applied in the usual way and the
> kern table data ignored.
> 
> If a kern table but no GPOS table is present in the font, then an OFF
> layout engine must apply the kern table to the text, regardless of the
> resolved language system of the text.
> 
> If compatibility with legacy environments is not a concern, vendors are
> encouraged to use the GPOS table, and not the kern table, for kerning.
> 
> Sairus
> 
> 


More information about the mpeg-otspec mailing list