[mpeg-OTspec] OTL feature suggestion : Required Contextual Forms <rclt>

Adam Twardoch (List) list.adam at twardoch.com
Wed Mar 3 05:50:04 CET 2010


John,

the OpenType specification has (I think always) contained a mechanism
for what you describe:

http://www.microsoft.com/typography/otspec/chapter2.htm

"Language System Table

The Language System table (LangSys) identifies language-system features
used to render the glyphs in a script. (The LookupOrder offset is
reserved for future use.)

Optionally, a LangSys table may define a Required Feature Index
(ReqFeatureIndex) to specify one feature as required within the context
of a particular language system. For example, in the Cyrillic script,
the Serbian language system always renders certain glyphs differently
than the Russian language system.

Only one feature index value can be tagged as the ReqFeatureIndex. This
is not a functional limitation, however, because the feature and lookup
definitions in OpenType Layout are structured so that one feature table
can reference many glyph substitution and positioning lookups. When no
required features are defined, then the ReqFeatureIndex is set to 0xFFFF.

All other features are optional. (...)"

In other words: in addition to the OpenType features that a layout
engine considers "required" (such as "rlig" or "ccmp"), the font maker
can define which (one) feature she considers "required" for a given OTL
languagesystem (including the DefaultLangSys) within a given OTL script.

So if the font maker considers the "calt" feature "required" for the
"latn" script in her font, she can point the ReqFeatureIndex for
"latn"/DefaultLangSys to the "calt" feature.

Whether and which OTL engines support ReqFeatureIndex is another matter.
But I'm not certain if introducing a new mechanism where an old (and a
quite reasonably specified) one already exists is a wise choice. We
might be better off to encourage OTL engine makers to recognize and
automatically apply the feature indicated by ReqFeatureIndex along with
other "required" features for a given script.

Best,
Adam


John Hudson wrote:
>  
> 
> Each OpenType Layout feature is optimally implemented by layout engines
> and applications in one of three possible states:
> 
> 1. On by default and impossible to turn off (required feature, e.g. <rlig>);
> 
> 2. On by default but possible to turn off (standard feature, e.g. <liga>);
> 
> 3. Off by default but possible to turn on (discretionary feature, e.g.
> <dlig>.
> 
> In practice, some software makers opt, given limited support for feature
> UI, to treat e.g. standard features as required for some scripts, but
> the ideal is fairly clearly defined in the feature description (and can
> be even more clearly defined with appropriate annotations).
> 
> [If I were designing the OpenType Layout architecture from scratch, I
> think I would be inclined to try to treat these states as lookup-level
> flags, rather than feature-level properties, which among other benefits
> would decrease the number of features needed. But that's not the
> architecture we've got, so consider this an speculative aside.]
> 
> In the past couple of years, I've noticed an increasing number of fonts
> using contextual substitutions for design-specific basic shaping, e.g.
> variants to improve spacing as in my own Gabriola font or as described
> in Eben Sorkin's TypeCon 2008 presentation. Most recently, there was a
> query about making such fonts in the Typophile Build forum.
> 
> At present, such substitutions are typically implemented in the
> Contextual Forms <calt> layout feature. However, this feature is
> intended to be implement using state 2: standard feature, on by default,
> can be turned off. Because these substitutions are intrinsic to the
> correct or desired normal display of the typeface design -- and because
> of the possibility that the same font may include other, standard
> substitutions that are not similarly intrinsic to the design --, I am
> increasingly of the view that we need a Required Contextual Forms <rclt>
> layout feature, which would be on by default and impossible to turn off
> (state 1).
> 
> I'm happy to draft a feature description, but am writing to the OT and
> OFF lists first to garner feedback on the idea.
> 
> John Hudson
> 
> -- 
> 
> Tiro Typeworks www.tiro.com
> Gulf Islands, BC tiro at tiro.com <mailto:tiro at tiro.com>
> 
> Car le chant bien plus que l'association d'un texte
> et d'une mélodie, est d'abord un acte dans lequel
> le son devient l'expression d'une mémoire, mémoire
> d'un corps immergé dans le mouvement d'un geste
> ancestral. - Marcel Pérès
> 
> 


-- 

Adam Twardoch
| Language Typography Unicode Fonts OpenType
| twardoch.com | silesian.com | fontlab.net

Reporter: "So what will your trip to Ireland look like?"
Lech Wałęsa: "I get into a car, then onto a plane, and then the other
way around."




More information about the mpeg-otspec mailing list