FW: [OpenType] Proposal: deprecate ReqFeatureIndex

Levantovsky, Vladimir vladimir.levantovsky at monotypeimaging.com
Mon Aug 20 18:36:23 CEST 2012


Forwarding the email thread from OpenType list to AHG list.

All,

Since OT list removes all recipients' addresses on the original email - please keep in mind that when replying to email copied from other lists (e.g. mpeg-OTspec at yahoogroups.com) please include their email address in Cc: field.

Thank you,
Vladimir



-----Original Message-----
From: listmaster at indx.co.uk [mailto:listmaster at indx.co.uk] On Behalf Of Sairus Patel 
Sent: Friday, August 17, 2012 7:57 PM
To: multiple recipients of OpenType
Subject: RE: [OpenType] Proposal: deprecate ReqFeatureIndex

Message from OpenType list:


Michelle,

I don't see ReqFeatureIndex set on any fonts in Windows 7.

ReqFeatureIndex is set in a few XP and Office XP fonts, as I pointed out in a message on the same top from 2010 (http://tech.groups.yahoo.com/group/mpeg-OTspec/message/666):

a. Arial (Regular and Bold) version 3.00 and Times New Roman (Regular and Bold) version 3.00 These use the required feature for Arabic layout, and it points to the 'rlig' feature.

b. Arial Unicode MS (Regular), versions 1.00 and 1.01 These use the required feature for Kannada layout, and it points to a 'requ' feature which raises the ASCII range punctuation (! , . : ; ?) by 200 units.

c. Palatino Linotype (all 4 Windows styles), various versions These use the required feature under the Romanian language system (latn/ROM), and it points to the 'liga' feature.


> Some Microsoft products have logic which checks for it.

This logic isn't required to change, with this proposal.
 

This has come up several times in the last year and a half on the OT and OFF lists, and I've heard only support from the vendors represented on this list.

Again, if there are concerns, please speak up.

Thanks,
Sairus


-----Original Message-----
From: listmaster at indx.co.uk [mailto:listmaster at indx.co.uk] On Behalf Of Michelle Perham
Sent: Friday, August 17, 2012 9:15 AM
To: multiple.recipients.of.OpenType at inbound-smtp-2.adobe.com
Subject: RE: [OpenType] Proposal: deprecate ReqFeatureIndex

Message from OpenType list:


Sairus and others,
Do you have any idea how commonly ReqFeatureIndex is used in fonts? Some Microsoft products have logic which checks for it.

Michelle

-----Original Message-----
From: listmaster at indx.co.uk [mailto:listmaster at indx.co.uk] On Behalf Of Sairus Patel
Sent: Monday, August 13, 2012 3:20 PM
To: multiple recipients of OpenType
Subject: [OpenType] Proposal: deprecate ReqFeatureIndex

Message from OpenType list:


I propose that this be considered for the 3rd edition of OFF that's being worked on right now.


--- Rationale:

Currently, each language system table in a GSUB or GPOS can specify the index of a "required" feature. A layout engine is always to apply this feature when performing layout in that language system.

However, this doesn't quite fit in a layout model wherein features are to be applied one at a time, and wherein certain feature tags are designated by a separate layout specification (and not in the font itself) as being required. For example, see MS's Arabic and Indic layout specifications at http://www.microsoft.com/typography/SpecificationsOverview.mspx.

Adobe's CoolType font engine (used by most Creative Suite products) removed support for ReqFeatureIndex in 2005, and FTE (Flash Text Engine) has never supported it. 

Deprecating ReqFeatureIndex has come up a couple times on the OT and OFF lists, most recently Nov 29, 2011 (Subject "ReqFeatureIndex: obsolete?"), and I have not heard from anyone objecting to this. I have heard only supportive comments.

Thus, this proposal.
 

--- Proposal:

{ In section "Language System Table" at http://www.microsoft.com/typography/otspec/chapter2.htm, replace the following paragraphs: }

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. For each optional feature, a zero-based index value references a record (FeatureRecord) in the FeatureRecord array, which is stored in a Feature List table (FeatureList). The feature indices themselves (excluding the ReqFeatureIndex) are stored in arbitrary order in the FeatureIndex array. The FeatureCount specifies the total number of features listed in the FeatureIndex array.

Features are specified in full in the FeatureList table, FeatureRecord, and Feature table, which are described later in this chapter. Example 2 at the end of this chapter shows a Script table, LangSysRecord, and LangSys table used for contextual positioning in the Arabic script.

{ by (a modified version of the last two paragraphs above): }

For each feature in this table, a zero-based index value references a record (FeatureRecord) in the FeatureRecord array, which is stored in a Feature List table (FeatureList). The feature indices themselves are stored in arbitrary order in the FeatureIndex array. The FeatureCount specifies the total number of features listed in the FeatureIndex array.

Features are specified in full in the FeatureList table, FeatureRecord, and Feature table, which are described later in this chapter. Example 2 at the end of this chapter shows a Script table, LangSysRecord, and LangSys table used for locale-specific numeric forms in the Arabic script.

{ In the entry for ReqFeatureIndex in the "LangSys table" table, replace the "Name" value with: }

Reserved

{ and replace the "Description" value with: }

Set to 0xFFFF. (This used to be ReqFeatureIndex in some previous versions of the specification.)

{ In the "Example 2" section further down the page, replace: }

Then the text-processing client uses a required OpenType Layout glyph substitution feature, defined in the Urdu LangSys table, to access the correct Urdu glyphs for the 4, 6, and 7 numerals.

{ by: }

Then the text-processing client uses the Localized Forms ("locl") feature referenced in the Urdu LangSys table to access the correct Urdu glyphs for the 4, 6, and 7 numerals.

{ In the table in "Example 2":

Under DefLangSys, replace the comment "ReqFeatureIndex, no required features" by "Reserved".

Under UrduLangSys, replace the ReqFeatureIndex line with: FFFF | 0xFFFF | Reserved

Under UrduLangSys, change the FeatureCount from 3 to 4

Under UrduLangSys, add an additional line: 0003 | 3 | FeatureIndex[3], "locl" feature (localized forms) }

Sairus



List archive: http://www.indx.co.uk/biglistarchive/

subscribe: opentype-migration-sub at indx.co.uk
unsubscribe: opentype-migration-unsub at indx.co.uk
messages: opentype-migration-list at indx.co.uk






List archive: http://www.indx.co.uk/biglistarchive/

subscribe: opentype-migration-sub at indx.co.uk
unsubscribe: opentype-migration-unsub at indx.co.uk
messages: opentype-migration-list at indx.co.uk





List archive: http://www.indx.co.uk/biglistarchive/

subscribe: opentype-migration-sub at indx.co.uk
unsubscribe: opentype-migration-unsub at indx.co.uk
messages: opentype-migration-list at indx.co.uk




More information about the mpeg-otspec mailing list