[MPEG-OTSPEC] The substitution spectrum, was Re: [EXTERNAL] Shared GSUB/GPOS notes, was Re: dmap proposal
Skef Iterum
skef at skef.org
Sat Jan 6 00:50:38 CET 2024
Having said the previous message, there's still the question of what to
do about
On 1/3/24 16:28, Peter Constable wrote:
>
> >My basic concern is … fewer fonts//will attempt to use the
> script/langsys mechanism correctly…
>
> That’s a valid and reasonable concern.
>
And more particularly the fact that, while there are other reasons for
dmap, it did seem like the conversation about it started as a solution
to the current state of multi-language/region support.
I think we've brought up three sorts of things in this area, any of
which we might pursue to improve the overall picture:
1. The GSUB tricks I've been talking about seem like they already fit
within the spec and could provide a way for fonts that already
support multiple langsys tags to "export" any of those as the "dflt"
in a TTC slot. (One might also have to play around with the name table.)
2. The langsys tag registration system seems a little disconnected from
standards, and maybe that should be fixed. One possibility: a new
langsys table format with a 6 or 8 byte "tag" size, to allow direct
representation of some existing or new standard or standards (e.g.
ISO 639-3 plus something for regions). Another more likely
possibility: provide and maintain a standard map from some existing
or new standard or standards to tags, and add a table allowing fonts
to supplement that map with new entries if needed.
3. There's an intriguing, more general idea of some way of allowing a
TTC slot to, in effect, alter the default behavior of the font as
described in its tables. We talked about specifying a langsys tag
and having the slot act as if that tag had been specified. One could
imagine doing the same thing with a style tag like 'ss03'. Or a
named instance of in a variable font. Or really anything that can
currently be picked using CSS. In theory this might even be based on
some subset of CSS, provided as a blob in a new table. This is in
the general spirit of allowing many different features and
possibilities to coexist in a single font but then allowing those to
be shared as the default behavior of a TTC slot, providing backward
compatibility for applications that need distinct fonts.
Skef
On 1/5/24 15:26, Skef Iterum wrote:
>
> I've been thinking about this a bit more in light of both of Peter's
> and John's thoughts and I'll try to summarize where I wound up.
>
> On the one hand, yes, I was too quick to say that different cmaps
> followed up by a single GSUB would be a strange thing to attempt.
> When, in a "post-cmap" context, all remaining problems of substitution
> are "stylistic" in the narrow sense, one unified table would do. For
> instance, if one cmap maps point A to X, and another to Y, and from
> the perspective of the designer the other glyphs to be substituted are
> "X but in a different style" and "a ligature of Y with Z", then
> there's no issue.
>
> At the other extreme are (individual) fonts designed to support many
> language tags. In this case, if one changes the cmap like the case
> above, some tag will need to (in effect) remap X back to Y and another
> Y back to X. This is easy to arrange with distinct GSUBs corresponding
> to the distinct cmaps because one knows "where A starts at". With a
> single GSUB the whole situation stops making sense. It's much easier
> to know that A always starts at X and reassign it than to have to, in
> effect, catch A at either X or Y and then assign it to X or Y as
> needed by the tag. (Or, more generally that codepoint assignments
> start out as, e.g., for Japanese and then reassign them for simplified
> Chinese or Hong Kong Chinese as needed, rather than start out assigned
> for one of several initial languages.)
>
> I have been informally thinking that most fonts will do at least some
> of the latter, which I'm also hearing from John. In a later message
> Peter describes the Meiryo case as an example of a class that doesn't
> need to (because even if the TTC instances do each support multiple
> languages, the differences are such that they can be mapped
> stylistically). Actually there are two classes, if I'm understanding
> right. One is providing a separate font via TTC because that's the way
> stylistic variations of one script (e.g. italic Latin) are generally
> supplied, even though the glyphs for the central script (e.g.
> Japanese) are the same. The other is supplying a version of a font
> with some tweaks (e.g. a "UI" font), where there is no other standard
> convention for representing the difference (although the fact that one
> can't use a stylistic variant tag for that purpose, although true, is
> a bit sad).
>
> So:
>
> 1. I agree that cases like Peter describes exist in current practice.
> 2. I don't see these cases as being "central", really, but
> 3. Plenty of other things just as "non-central" have functionality in
> the spec.
>
> Thus there's no reason not to pursue "dsub".
>
> Skef
>
> On 1/3/24 17:58, John Hudson wrote:
>> On 2024-01-03 1:06 pm, Peter Constable wrote:
>>>
>>> > Constructing a GSUB that will work correctly downstream from
>>> different cmaps is a strange thing to even attempt.
>>>
>>> Why so? In a TTC, one table that will almost certainly be common is
>>> the glyf/CFF/etc. table with outline data. In that case, the glyph
>>> IDs are the same across all of the font resources. So, there can be
>>> a single lookup list; if any glyph IDs appear in a lookup coverage
>>> table but aren’t mapped from cmap, then that data is ignored.
>>>
>>
>> Thinking this through:
>>
>> The CMAP table produces the initial state of the glyph run for the
>> input character string.
>>
>> Different CMAP tables will produce different initial states of the
>> glyph run for the same input character string.
>>
>> Those different glyph runs may both be processable in a single GSUB
>> and/or GPOS table if these are structured around the knowledge that
>> the different CMAP tables are producing the upstream glyph input for
>> everything that happens in the subsequent GSUB and GPOS.
>>
>> In this respect, the different CMAP tables feeding glyph runs into
>> the OTL processing are akin to the rvrn, locl. or ccmp layout
>> features, i.e. things that affect the initial state of the glyph run
>> in preparation for downstream GSUB and GPOS. They can be said to be
>> ‘pre-affecting’ the initial state of the glyph run, but have the same
>> implications: downstream GSUB and GPOS have to take their effects
>> into account.
>>
>> I can think of situations in which the (down)streams merge, but I
>> think this would only result in an unwanted ambiguity if a font
>> developer were careless: such merging would likely be intentional,
>> reflecting a state in the glyph run where the initial distinction
>> either is no longer relevant—e.g. where the shaping of a glyph
>> sequence into a conjunct ligature removes the shape distinction that
>> mattered at the outset.
>>
>>> So it seems like the only reason for needing separate GSUB or GPOS
>>> tables would be if the scripts, language systems or features needed
>>> to be different. Is that ever necessary?
>>>
>> Yes, see e.g. Nirmala UI and Nirmala Text, which ship as a single TTC
>> with a common glyf table but distinct GSUB and GPOS supporting
>> different behaviours for the same glyphs in different target
>> environments.
>>
>> I can also imagine—but have not seen—someone building a TTC as a
>> combined delivery format for a bunch of different typefaces
>> supporting a variety of scripts, but some of the nominal fonts in the
>> TTC might only support a subset of the total set of scripts, so would
>> have tailored OTL tables.
>>
>> JH
>>
>>
>> --
>>
>> John Hudson
>> Tiro Typeworks Ltdwww.tiro.com
>>
>> Tiro Typeworks is physically located on islands
>> in the Salish Sea, on the traditional territory
>> of the Snuneymuxw and Penelakut First Nations.
>>
>> __________
>>
>> EMAIL HOUR
>> In the interests of productivity, I am only dealing
>> with email towards the end of the day, typically
>> between 4PM and 5PM. If you need to contact me more
>> urgently, please use other means.
>>
>> _______________________________________________
>> mpeg-otspec mailing list
>> mpeg-otspec at lists.aau.at
>> https://lists.aau.at/mailman/listinfo/mpeg-otspec
>
> _______________________________________________
> mpeg-otspec mailing list
> mpeg-otspec at lists.aau.at
> https://lists.aau.at/mailman/listinfo/mpeg-otspec
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.aau.at/pipermail/mpeg-otspec/attachments/20240105/a302adf4/attachment-0001.html>
More information about the mpeg-otspec
mailing list