No subject
Wed Jan 29 08:39:57 CET 2020
mailing list. He wrote:
> OpenType spec just says "Users can switch between the lining and
> oldstyle sets by turning this feature on or off."
>
> I think that may be a bug in the spec, if a designer uses old-style
> figures as the default glyphs for numerals then the statement above
> will be incorrect.
He is of course correct. Further, the default figures in a typeface
may be neither lining nor oldstyle, but in between or something else!
To allow for default figures that are non-lining, or even neither
lining nor oldstyle, I have made a more formal proposal out of my
response.
Currently the 'lnum' and 'onum' feature tags in 6.4.3.2 "Feature
descriptions and implementations," include the following language
(assuming they are the same as the current OT spec).
LNUM
Function: This feature changes selected figures from oldstyle to the
default lining form.
Example: The user invokes this feature in order to get lining figures,
which fit better with all-capital text. Various characters designed to
be used with figures may also be covered by this feature. In cases
where lining figures are the default form, this feature would undo
previous substitutions.
Recommended implementation: The lnum table maps each oldstyle figure,
and any associated characters to the corresponding lining form (GSUB
lookup type 1).
Application interface: For GIDs found in the lnum coverage table, the
application passes a GID to the onum table and gets back a new GID.
Even if the current figures resulted from an earlier substitution, it
may not be correct to simply revert to the original GIDs, because of
interaction with the figure width features, so it's best to use this
table.
UI suggestion: This feature should be inactive by default. Users can
switch between the lining and oldstyle sets by turning this feature on
or off. Note that this feature is distinct from the figure width
features (pnum and tnum). When the user invokes this feature, the
application may wish to inquire whether a change in width is also
desired.
ONUM
Function: This feature changes selected figures from the default
lining style to oldstyle form.
Example: The user invokes this feature to get oldstyle figures, which
fit better into the flow of normal upper- and lowercase text. Various
characters designed to be used with figures may also have oldstyle
versions.
Recommended implementation: The onum table maps each lining figure,
and any associated characters, to the corresponding oldstyle form
(GSUB lookup type 1).
Application interface: For GIDs found in the onum coverage table, the
application passes a GID to the onum table and gets back a new GID.
UI suggestion: Users can switch between the lining and oldstyle sets
by turning this feature on or off. Note: This feature is separate from
the figure-width features pnum and tnum. When the user changes figure
style, the application may want to query whether a change in width is
also desired.
Script/language sensitivity: None.
Feature interaction: This feature overrides the results of the Lining
Figures feature (lnum).
I hereby propose those sections of these two feature descriptions be
replaced as follows. (Note that this also corrects a typo in the
"lnum" application interface description, where onum was incorrectly
referenced. Note also that there are parts both before and after the
blocks I am amending, which can remain untouched.)
LNUM
Function: This feature changes selected non-lining figures to lining figures.
Example: The user invokes this feature in order to get lining figures,
which fit better with all-capital text. Various characters designed to
be used with figures may also be covered by this feature. In cases
where lining figures are the default form, this feature would undo
previous substitutions.
Recommended implementation: The lnum table maps each oldstyle figure,
and any associated characters to the corresponding lining form (GSUB
lookup type 1). If the default figures are non-lining, they too are
mapped to the corresponding lining form.
Application interface: For GIDs found in the lnum coverage table, the
application passes a GID to the lnum table and gets back a new GID.
Even if the current figures resulted from an earlier substitution, it
may not be correct to simply revert to the original GIDs, because of
interaction with the figure width features, so it's best to use this
table.
UI suggestion: This feature should be inactive by default. Users can
switch between the default and lining figure sets by turning this
feature on or off. Note that this feature is distinct from the figure
width features (pnum and tnum). When the user invokes this feature,
the application may wish to inquire whether a change in width is also
desired.
ONUM
Function: This feature changes selected figures from the default or
lining style to oldstyle form.
Example: The user invokes this feature to get oldstyle figures, which
fit better into the flow of normal upper- and lowercase text. Various
characters designed to be used with figures may also have oldstyle
versions.
Recommended implementation: The onum table maps each lining figure,
and any associated characters, to the corresponding oldstyle form
(GSUB lookup type 1). If the default figures are non-lining, they too
are mapped to the corresponding oldstyle form.
Application interface: For GIDs found in the onum coverage table, the
application passes a GID to the onum table and gets back a new GID.
UI suggestion: Users can switch between the default and oldstyle
figure sets by turning this feature on or off. Note: This feature is
separate from the figure-width features pnum and tnum. When the user
changes figure style, the application may want to query whether a
change in width is also desired.
More information about the mpeg-otspec
mailing list