[mpeg-OTspec] Registering new GPOS features?

Ken Lunde lunde at adobe.com
Fri Sep 21 15:03:16 CEST 2018


Koji,

Your first post did go out, because I received it. No one has had time to respond. Keep in mind that UTC #157 took place this week, which kept many of us busy.

I am CCing both mailing lists for this reply.

Anyway, if we want to move forward with registering these two new GPOS features, we need to come to an understanding that it is possible for a font to include these two new features, along with the usual GPOS features that such fonts (Japanese) would include, such as 'kern', 'palt', 'vkrn', and 'vpal'. This is because these two sets of GPOS features serve completely different font consumers, and more importantly, would also specify completely different values for a non-trivial number of glyphs.

The four latter GPOS features, if enabled (they should be disabled by default), would continue to serve font consumers that perform some form of intelligent line layout, such as what is prescribed in JLREQ, and the adjustments that are specified in the latter four GPOS features could be applied to the results with no ill effect. Adobe InDesign is an example of such a font consumer.

The two new GPOS features are meant to be used by font consumers that effectively do not perform any form of meaningful line layout, such as adjustments to full-width punctuation and brackets, which would affect inter-character spacing. Examples of such font consumers include terminal emulators, simple text editors, and possibly UIs.

Because the same font could be used by both types of font consumers, we cannot repurpose the 'kern' and 'vkrn' GPOS features, because the values would conflict for a significant number of glyphs, and would be specified for unintended glyphs. In other words, neither type of font consumer would be served. It would be a mess.

To summarize:

1) Sophisticated font consumers, such as those that follow JLREQ, should continue to use the 'kern', 'palt', 'vkrn', and 'vpal' GPOS features.

2) Unsophisticated font consumers, such as those that perform no inter-character adjustments at all, should consider using the two proposed GPOS features.

To refresh our memories, please reference the following CJK Type Blog article that I published back in April that provides visuals:

https://blogs.adobe.com/CCJKType/2018/04/contextual-spacing.html

Based on the latest discussions, the following are the proposed names and tags:

Contextual Half-width Spacing: chws (or chsp)
Vertical Contextual Half-width Spacing: vchw (or vchs)

Regards…

-- Ken

From: Koji Ishii <kojii at google.com>
Date: Thursday, September 20, 2018 at 9:24 PM
To: Ken Lunde <lunde at adobe.com>, "petercon at microsoft.com" <petercon at microsoft.com>, Behdad Esfahbod <behdad at behdad.org>
Cc: <mpeg-OTspec at yahoogroups.com>, "opentype-list at indx.co.uk" <opentype-list at indx.co.uk>
Subject: Fwd: [mpeg-OTspec] Registering new GPOS features?

# It seems that my post didn't go out, re-trying. Please disregard if dup.
---
Hi all, first time to post here, please let me know if I'm not behaving good.

This discussion seems to have stalled, but I'm looking forward to this discussion to move forward. Ken seemed to have answered all the questions so far if I understand correctly, but if anything more, I'm more than happy to help the discussion.

One thing I noticed, from what Peter wrote:
> The Feature Interaction details say that other features that otherwise might be enabled by default — notably 'kern' — should be disabled when this is enabled.

Where was this stated? This does not seem correct. As Ken said, this feature should be turned on or off independently from other features such as 'kern', and that is why we would like this to be a separate feature. MS Word and Adobe InDesign have this spacing control, and both have a separate check box from the kerning check box.

I don't have preference for names and tags, whichever Ken, Peter, and people here can agree on look fine to me.

2018年5月18日(金) 4:43 Ken Lunde lunde at adobe.com<mailto:lunde at adobe.com> [mpeg-OTspec] <mpeg-OTspec-noreply at yahoogroups.com<mailto:mpeg-OTspec-noreply at yahoogroups.com>>:


Peter,

Sorry about that. That was during UTC #155, which kept me very busy, particularly because I was also performing meeting host duties. Thank you for the reminder.

About the features names and tags, what you suggested sound better. About the tags, I have a slight preference for 'chws' and 'vchw'.

The intent is to have a clean separation between these two features and other GPOS features, mainly kern/vkrn, but also halt/vhal and palt/vpal, because they cater to different environments/situations.

It should be possible for a single font to support all eight of these GPOS features. More sophisticated environments, such as MS Word and InDesign that apply JLREQ- or JIS X 4051–based text layout would use kern/halt/palt/vkrn/vhal/vpal as appropriate. Simpler environments, such as terminals and possibly UIs, benefit from the simpler handling of chws/vchw, because it doesn't require that they implement sophisticated text layout tables.. Instead, they can simply reference these features and be done with it, giving them results that are more pleasing than simply setting the glyphs solid using full-width metrics.

Does that help?

Regards...

-- Ken

> On May 16, 2018, at 11:18 AM, Peter Constable <petercon at microsoft.com<mailto:petercon at microsoft.com>> wrote:
>
> Ken:
>
> I didn’t see any response to comments I sent — repeating here:
>
> The proposed names are very generic, whereas the intent is specifically for CJK. Would better names be "Contextual Half-width Spacing" (mnemonic tag 'chws', or 'chsp'); and "Vertical Contextual Half-width Spacing" ('vchw' or 'vchs')?
>
> Also, it's unclear how applications should go about implementing support for this. The Feature Interaction details say that other features that otherwise might be enabled by default — notably 'kern' — should be disabled when this is enabled. But how does anyone apply that to the general case? Are applications supposed to check whether a font supports this feature and then decide what features to apply by default? (And what if a font supports both this and 'kern'?) Suggesting that applications check font details and come up with heuristics to decide what features to apply be default is, in general, not a good idea: if done, there will be different heuristics applied; but at least as likely is that apps won't do it. It would be better if this were guidance to font developers, not application developers: i.e., if you use this feature to adjust spacing in some contexts, don't also use other features such as 'kern' for the same contexts.
>
> (That starts to beg the question: why not just use 'kern', but I assume the answer is that you want to differentiate for apps that do advanced layout to support JLREQ.)
>
>
> Peter
>
>
> From: mpeg-OTspec at yahoogroups.com<mailto:mpeg-OTspec at yahoogroups.com> <mpeg-OTspec at yahoogroups.com<mailto:mpeg-OTspec at yahoogroups.com>> On Behalf Of Ken Lunde lunde at adobe.com<mailto:lunde at adobe.com> [mpeg-OTspec]
> Sent: April 27, 2018 12:23 PM
> To: mpeg-OTspec at yahoogroups.com<mailto:mpeg-OTspec at yahoogroups.com>; opentype-list at indx.co.uk<mailto:opentype-list at indx.co.uk>
> Subject: Re: [mpeg-OTspec] Registering new GPOS features? [1 Attachment]
>
>
> [Attachment(s) from Ken Lunde included below]
> Behdad and others,
>
> If there are no major objections, I'd prefer to simply propose to register two new GPOS features tagged 'cspc' and 'vcsp'. I am not convinced that a catch-all "required" feature would work for this purpose, especially because these features should be on by default only for particular environments. Please find attached draft feature descriptions.
>
> Regards...
>
> -- Ken
>
> > On Apr 25, 2018, at 9:05 PM, Behdad Esfahbod <behdad at behdad.org<mailto:behdad at behdad.org>> wrote:
> >
> > Thanks Ken.
> >
> > I agree 'dist' is not ideal, for at least, it's not applied by non-Indic shapers currently.
> >
> > What I was hinting at was that maybe we should register one catch-all required feature that can be used in the future for any such things. Separating vertical might be the easiest currently. In some future we will add direction hints to lookups and then it wouldn't be needed anymore. Currently there's no such catch-all required feature. For GSUB, people do things with 'ccmp' or 'loca' which are supposed to be always on in all shapers.
> >
> > On Thu, Apr 26, 2018 at 5:25 AM, Ken Lunde lunde at adobe.com<mailto:lunde at adobe.com> [mpeg-OTspec] <mpeg-OTspec-noreply at yahoogroups.com<mailto:mpeg-OTspec-noreply at yahoogroups.com>> wrote:
> > Peter & Behdad,
> >
> > While I am potentially okay with hanging the functionality that I described off of the 'dist' GPOS feature, especially if there is resistance to register a new feature, I need to point out that a separate feature is definitely needed for vertical. A sufficient number of the target characters have corresponding glyphs that can be used in both writing modes, sometimes as multiples of the same glyph (GID), which is what necessitates a separate vertical feature. Does that mean that the description of 'dist' needs to be modified, and a corresponding vertical feature, perhaps tagged 'vdis', be registered?
> >
> > Also, 'kern' and 'vkrn' cannot be used for this purpose, because it is completely reasonable for a font to include both genuine kerning values (for more sophisticated environments) and the contextual spacing that I have described (for simpler environments).
> >
> > Regards...
> >
> > -- Ken
> >
> > > On Apr 25, 2018, at 8:08 PM, Peter Constable <petercon at microsoft.com<mailto:petercon at microsoft.com>> wrote:
> > >
> > > Agreed: distinct features are needed when a behaviour needs to be independently-controllable by users, or if (generally only in script-specific cases) a particular sequence of feature application is needed to get required GSUB derivations. Otherwise, a separate feature serves no purpose other than a bookkeeping mechanism for the font developer, or a way to declare a supported capability to customers.
> > >
> > > From: mpeg-OTspec at yahoogroups.com<mailto:mpeg-OTspec at yahoogroups.com> <mpeg-OTspec at yahoogroups.com<mailto:mpeg-OTspec at yahoogroups.com>> On Behalf Of Behdad Esfahbod behdad at behdad.org<mailto:behdad at behdad.org> [mpeg-OTspec]
> > > Sent: Wednesday, April 25, 2018 3:02 PM
> > > To: Ken Lunde <lunde at adobe.com<mailto:lunde at adobe.com>>
> > > Cc: mpeg-OTspec at yahoogroups.com<mailto:mpeg-OTspec at yahoogroups.com>; opentype-list at indx.co.uk<mailto:opentype-list at indx.co.uk>
> > > Subject: Re: [mpeg-OTspec] Registering new GPOS features?
> > >
> > >
> > > OpenType is designed such that fonts can improve these kinds of things without needing a change to be rolled out to every engine first. We just need one required feature and all kinds of GSUB/GPOS things can be hung onto it. The tags should be reserved for features that are either need to be controlled by shaper, or by user. Everything else should be just one required feature.
> > >
> > > On Wed, Apr 25, 2018 at 1:48 AM, Ken Lunde lunde at adobe.com<mailto:lunde at adobe.com> [mpeg-OTspec] <mpeg-OTspec-noreply at yahoogroups.com<mailto:mpeg-OTspec-noreply at yahoogroups.com>> wrote:
> > >
> > > Behdad,
> > >
> > >
> > > While I see some parallels, the Indic nature of 'dist', along with the fact that a corresponding vertical feature is necessary, makes me think that separate features is better.
> > >
> > > Also, and this is for others, I just noticed that a fair number of OpenType feature tags in the spec are surrounded by smart double quotes, while most are surrounded by single straight quotes. I counted that 16 features have this issue. See the attached screenshot to see the first three.
> > >
> > > Regards...
> > >
> > > -- Ken
> > >
> > >
> > > On Apr 24, 2018, at 3:39 PM, Behdad Esfahbod <behdad at behdad.org<mailto:behdad at behdad.org>> wrote:
> > >
> > > 'dist' feature?
>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.aau.at/pipermail/mpeg-otspec/attachments/20180921/13789bed/attachment.html>


More information about the mpeg-otspec mailing list