<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>More stuff after hitting send too fast:</p>
<p>I can see a set of arguments against trying to deal with these
regional problems within a single mega-font grounded one way or
another in GIDs being a limited resource. But we've already
decided to overcome that problem. So, for example, if we need to
spend a GID to, in effect, abstractly represent a given codepoint
to bridge from cmap into the shaping tables, we have GIDs to spend
now. (And, as implied in my other messages today, wouldn't
necessarily have to pay the typical file overhead for them.)</p>
<p>As I understand it that's how regional variations in, e.g.,
Cyrillic are handled now. So I guess, other than the large number
of glyphs in CJK fonts I'm not understanding what requirements are
pushing the solution in such a different (and seemingly ad hoc)
direction.</p>
<p>Skef<br>
</p>
<div class="moz-cite-prefix">On 12/21/23 16:49, Skef Iterum wrote:<br>
</div>
<blockquote type="cite"
cite="mid:98319d7f-1efc-483b-a9b0-099ffd33ed3b@skef.org">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<p>Maybe I'm being utopian but I can't help thinking that either
there's some token ("dialect"?) that Unicode should be tracking
and formalizing but isn't, or Unicode is doing that and we
haven't tilted the font specifications enough in its direction
to use it. There's already all of that script and language
infrastructure there that is meant for this flavor of need, and
it seems like a much better place to be solving these problems
than rapping stuff up in a TTC and having the client side pick
out the sub-font by name or whatever.</p>
<p>Skef<br>
</p>
<div class="moz-cite-prefix">On 12/21/23 15:00, Peter Constable
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:PH7PR21MB335625644DA8528B125C7D57DE95A@PH7PR21MB3356.namprd21.prod.outlook.com">
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8">
<meta name="Generator"
content="Microsoft Word 15 (filtered medium)">
<style>@font-face
{font-family:Helvetica;
panose-1:2 11 6 4 2 2 2 2 2 4;}@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}@font-face
{font-family:Aptos;}@font-face
{font-family:Helvetica-Bold;
panose-1:0 0 0 0 0 0 0 0 0 0;}@font-face
{font-family:"Helvetica Light";}p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Aptos",sans-serif;
mso-ligatures:standardcontextual;}a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#467886;
text-decoration:underline;}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
font-size:11.0pt;
font-family:"Aptos",sans-serif;
mso-ligatures:standardcontextual;}span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Aptos",sans-serif;
color:windowtext;}.MsoChpDefault
{mso-style-type:export-only;
font-size:11.0pt;
font-family:"Aptos",sans-serif;}div.WordSection1
{page:WordSection1;}ol
{margin-bottom:0in;}ul
{margin-bottom:0in;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-CA">During the recent AHG
meeting, I mentioned that Apple, Adobe and Microsoft, some
years ago, had started discussing a ‘dmap’ (delta
character map) table proposal. This was in late fall of
2016; the focus was on pan-CJK fonts, and in that
timeframe Ken Lunde has submitted a proposal to UTC (</span><a
href="https://www.unicode.org/L2/L2016/16063-pancjkv-ivd-collection.pdf"
moz-do-not-send="true">L2/16-063 Proposal to accept the
submission to register the “PanCJKV” IVD collection</a>)
to define variation sequences for ideographs that designated
a range of variation selector characters to correspond to
several regions for which regional glyph variants of CJK
ideographs might need to be supported. I managed to find an
archive of some emails from discussions at the time, so can
summarize:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The aim was to be able to support
distinct fonts for regional CJK variants without duplication
of data. A TTC could allow de-duplication of glyph data, but
there would be other duplication. We agreed the biggest
concern was with ‘cmap’ data: If any one of the regional
variant fonts in the collection were taken as a point of
reference, then any of the other regional variants would
have many of the same mappings (perhaps most), though not
all the same mappings. But there wasn’t any existing means
to share common mappings across fonts while there were also
some different mappings. Dwane Robinson suggested that we
define a new ‘dmap’ table that uses ‘cmap’ formats but is
just used to describe the differences in mappings from a
common ‘cmap’. <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">We
agreed that a ‘dmap’ table doesn’t need the duplication of
different platforms/encodings, and that we can converge on
only one platform/encoding (hence, no encoding records are
necessary). We discussed format 4 versus 12, and agreed to
allow either, but that both are never required. Now, we
had teleconfs between Apple and MS, but the emails I found
indicate that Behdad was also kept informed: one of the
emails records that Behdad requested that format 13 also
be allowed.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">We
hadn’t settled, however, on what to do about format 14
subtables. It wasn’t a priority for Apple at the time, but
it seemed like it would be incomplete if we ignored it.
Knowing that Ken Lunde was dealing a lot with VSes and
also working on pan CJK Source Han Sans CJK, we brought
Adobe into our discussion at that point.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">The
issue with format 14 is that it divides variation
sequences into two groups: (i) VSes that map to the same
glyph already mapped in a format 4 or 12 subtable
(DefaultUVS), and (ii) VSes that map to a different glyph.
Certainly the default mappings would be different in the
various regional variant fonts, and some of the
non-default mappings could also be different. (Even if a
given VS never mapped to different glyphs in the different
fonts, the fonts could still differ in what VSes they need
to support.) So it’s necessary to resolve </span><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">how
a dmap/14 subtable should interacts with a cmap/4 (or
cmap/12) subtable, with a cmap/14 subtable, with a dmap/4
(or dmap/12) subtable, and with a dmap/14 subtable. One
possible approach would be that the dmap/14 subtable
completely supersedes the cmap/14 subtable (i.e., the
latter is not used at all, and there is no de-duplication
of that data). Another approach could be that a dmap/14
subtable complements the cmap/14 subtable by providing
select replacement mappings (a delta—though there are
still further details about how that would work exactly).
</span><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">There
were some useful points brought up along the way: <o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p> </o:p></span></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph"
style="margin-left:0in;mso-list:l0 level1 lfo1"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">Ned
Holbrook pointed out that the format 14 DefaultUVS
subtable is just a space-saving variant of the
NonDevaultUVS subtable. A font doesn’t need to have any
DefaultUVS table: the same sequences could be handled in
NonDefaultUVS subtables — less efficiently… _<i>in a
single font</i>_.<o:p></o:p></span></li>
<li class="MsoListParagraph"
style="margin-left:0in;mso-list:l0 level1 lfo1"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">For
CJK, Ken Lunde pointed out that there are two kinds of
UVSes to consider: <o:p></o:p></span></li>
<ul style="margin-top:0in" type="circle">
<li class="MsoListParagraph"
style="margin-left:0in;mso-list:l0 level2 lfo1"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">“Standardized”
VSs: these are defined in the Unicode Standard (see </span><a
href="https://www.unicode.org/Public/UCD/latest/ucd/StandardizedVariants.txt"
moz-do-not-send="true">unicode.org/Public/UCD/latest/ucd/StandardizedVariants.txt</a>)
for CJK Compatibility Ideographs. They are defined in
Unicode in a region-independent manner, but most
represent region-specific glyphs.<span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p></o:p></span></li>
<li class="MsoListParagraph"
style="margin-left:0in;mso-list:l0 level2 lfo1">“Ideographic”
VSes: these are VSes registered in the Ideographic
Variation Database (<a
href="https://www.unicode.org/ivd/"
moz-do-not-send="true">Ideographic Variation Database
(unicode.org)</a>) in region-specific collections. <span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">
<o:p></o:p></span></li>
</ul>
</ul>
<p class="MsoListParagraph"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">Because
of the nature of each type, Ken thought there might be
limited sharing across fonts. (E.g., at least some font
developers would want to support a given IVS collection
only in the one regional font for the corresponding
region.) He did identify cases, however, in which the same
SVS would need to map to different glyphs in different
fonts.<o:p></o:p></span></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph"
style="margin-left:0in;mso-list:l0 level1 lfo1"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">Again,
for CJK, there would be cases in which different fonts
would need to support the same VSes, but they would
differ wrt DefaultUVS vs. NonDefaultUVS mappings.<o:p></o:p></span></li>
</ul>
<p class="MsoNormal"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">Ken
also called out some other uses in email exchanges. It all
suggested that an ideal solution </span><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">would
make it possible to construct a collection file in which <o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">-
two or more fonts can share some UVS mapping data while
also having some font-specific mapping data; and<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">-
it's also possible to have other fonts that do not share
any UVS mapping data with other fonts.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">That
would allow the fonts to support only UVSs that are
relevant for their respective markets, while also having
an efficiency benefit from data-sharing between certain of
the fonts.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="mso-ligatures:none;mso-fareast-language:JA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-family:"Calibri",sans-serif;mso-ligatures:none;mso-fareast-language:JA">That
was in December 2016. We ran into end-of-year holidays and
never resumed to closed on an approach that optimizes size
of VS mapping data. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA">The following is the
last draft proposal that we exchanged. <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA">—-<o:p></o:p></span></p>
<p class="MsoNormal"><b><span
style="font-size:13.5pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">dmap
- Character to Glyph Index Differences Table</span></b><span
style="font-size:13.5pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:8.5pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">This
table is an optional adjunct to the ‘cmap’ table defining
differences from the nominal mappings in order to increase
sharing of the ‘cmap’ itself across fonts in a TTC.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">If
a font production tool determines that the ‘cmap’ tables
across the fonts in a TTC are largely but not entirely
identical, it can choose one font to be used as the basis
for the others in terms of character to glyph index
mapping, expressing the mappings of the other fonts using
only the mappings that are different from those of the
former font. An example would be a CJK font family with
region-specific fonts, where most characters would map to
the same glyph index.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom:1.5pt"><span
style="font-size:9.0pt;font-family:"Helvetica Light";color:black;letter-spacing:.15pt;mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-bottom:1.5pt"><span
style="font-size:9.0pt;font-family:"Helvetica Light";color:black;letter-spacing:.15pt;mso-ligatures:none">The
‘dmap’ table</span><span
style="font-size:9.0pt;font-family:"Helvetica Light";color:black;mso-ligatures:none"><o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none"><o:p> </o:p></span></p>
<table class="MsoNormalTable" style="border-collapse:collapse"
cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr style="height:9.75pt">
<td
style="width:48.0pt;border:solid black 1.0pt;background:#54A3D7;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt"
width="64" valign="top">
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:white;mso-ligatures:none">Type<o:p></o:p></span></p>
</td>
<td
style="width:60.75pt;border:solid black 1.0pt;border-left:none;background:#54A3D7;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt"
width="81" valign="top">
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:white;mso-ligatures:none">Name<o:p></o:p></span></p>
</td>
<td
style="width:219.75pt;border:solid black 1.0pt;border-left:none;background:#54A3D7;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt"
width="293" valign="top">
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:white;mso-ligatures:none">Description<o:p></o:p></span></p>
</td>
</tr>
<tr style="height:9.75pt">
<td
style="width:48.0pt;border:solid black 1.0pt;border-top:none;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt"
width="64" valign="top">
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">UInt16<o:p></o:p></span></p>
</td>
<td
style="width:60.75pt;border-top:none;border-left:none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt"
width="81" valign="top">
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">version<o:p></o:p></span></p>
</td>
<td
style="width:219.75pt;border-top:none;border-left:none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt"
width="293" valign="top">
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">Set
to 0.<o:p></o:p></span></p>
</td>
</tr>
<tr style="height:9.75pt">
<td
style="width:48.0pt;border:solid black 1.0pt;border-top:none;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt"
width="64" valign="top">
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">UInt16<o:p></o:p></span></p>
</td>
<td
style="width:60.75pt;border-top:none;border-left:none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt"
width="81" valign="top">
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">numTables<o:p></o:p></span></p>
</td>
<td
style="width:219.75pt;border-top:none;border-left:none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:9.75pt"
width="293" valign="top">
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">Number
of offset fields to follow.<o:p></o:p></span></p>
</td>
</tr>
<tr style="height:26.25pt">
<td
style="width:48.0pt;border:solid black 1.0pt;border-top:none;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:26.25pt"
width="64" valign="top">
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">UInt32<o:p></o:p></span></p>
</td>
<td
style="width:60.75pt;border-top:none;border-left:none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:26.25pt"
width="81" valign="top">
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">offset[numTables]<o:p></o:p></span></p>
</td>
<td
style="width:219.75pt;border-top:none;border-left:none;border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;background:white;padding:3.0pt 3.0pt 3.0pt 3.0pt;height:26.25pt"
width="293" valign="top">
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">Array
of byte offsets from beginning of table to cmap
subtables. All subtables are assumed to use
Unicode. There can be at most one subtable of
either format 4, 12, or 13.<o:p></o:p></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">As
in the ‘cmap’ table, each ‘dmap’ subtable shall have the
same structure as in ‘cmap’, starting with a format field
that determines the remainder. The language field for a
format 4, 12, or 13 subtable must be set to zero.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">The
steps for determining the glyph index for a given UVS
consisting of a base character and optional variation
selector are as follows:<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none"><o:p> </o:p></span></p>
<ol style="margin-top:0in" type="1" start="1">
<li class="MsoNormal"
style="color:black;mso-list:l1 level1 lfo2"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;mso-ligatures:none">Apply
the Unicode ‘cmap’ subtable to the base character to get
the nominal glyph index.<o:p></o:p></span></li>
<li class="MsoNormal"
style="color:black;mso-list:l1 level1 lfo2"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;mso-ligatures:none">If
the font has a ‘dmap’ format 4 or 12 subtable that maps
the base character to a non-zero glyph index, it will
replace the nominal glyph index.<o:p></o:p></span></li>
<li class="MsoNormal"
style="color:black;mso-list:l1 level1 lfo2"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;mso-ligatures:none">If
the ‘cmap’ has a format 14 subtable, apply it in this
way: <o:p></o:p></span></li>
</ol>
<p class="MsoNormal" style="margin-left:1.0in"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">3.1.If
the Default UVS Table contains the base character, the
final glyph index will the be one determined by the
‘cmap’.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">3.2.Else
if the Non-Default UVS Table contains the base character,
it will determine the final glyph index.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:1.0in"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">3.3.Else
the final glyph index will remain as it was after step 2.<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none"><o:p> </o:p></span></p>
<p class="MsoNormal"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:black;mso-ligatures:none">Note:
An earlier draft of this document allowed for a second
subtable of format 14, which would allow redefinition of
variation sequences. Owing to uncertainty about usefulness
and the exact behavior of the Default UVS Table, however,
it has been removed pending further discussion.<o:p></o:p></span></p>
<p class="MsoNormal"><b><span
style="font-size:18.0pt;font-family:"Helvetica-Bold",sans-serif"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><span lang="EN-CA">—<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA">In the previous draft,
a different set of steps for handling UVSes were
considered:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA">—<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif">The
steps for determining the glyph index for a given UVS
consisting of a base character and optional variation
selector are as follows:<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"
style="text-indent:.5in;text-autospace:none"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif">1.
Apply the ‘cmap’ to the base character to get the nominal
glyph index.<o:p></o:p></span></p>
<p class="MsoNormal"
style="text-indent:.5in;text-autospace:none"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif">2.
If the font has a ‘dmap’ format 4 or 12 subtable that maps
the base character to a non-zero glyph index, it will
replace the nominal glyph index.<o:p></o:p></span></p>
<p class="MsoNormal"
style="text-indent:.5in;text-autospace:none"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif">3.
If the ‘dmap’ has a format 14 subtable, it will be used in
place of the one in the ‘cmap’.<o:p></o:p></span></p>
<p class="MsoNormal"
style="text-indent:.5in;text-autospace:none"><span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif">4.
If there is a format 14 subtable, apply it in this way:<o:p></o:p></span></p>
<p class="MsoNormal"
style="margin-left:.5in;text-indent:.5in;text-autospace:none"> <span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif">4.1.If
the Default UVS Table contains the base character, the
final glyph index will the be one determined by the
‘cmap’.<o:p></o:p></span></p>
<p class="MsoNormal"
style="margin-left:.5in;text-indent:.5in;text-autospace:none"> <span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif">4.2.Else
if the Non-Default UVS Table contains the base character,
it will determine the final glyph index.<o:p></o:p></span></p>
<p class="MsoNormal"
style="margin-left:.5in;text-indent:.5in;text-autospace:none"> <span
style="font-size:9.0pt;font-family:"Helvetica",sans-serif">4.3.Else
the final glyph index will remain as it was after step 2.</span><span
style="font-size:9.0pt" lang="EN-CA"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA">—<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA">Peter<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-CA"><o:p> </o:p></span></p>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
mpeg-otspec mailing list
<a class="moz-txt-link-abbreviated moz-txt-link-freetext"
href="mailto:mpeg-otspec@lists.aau.at" moz-do-not-send="true">mpeg-otspec@lists.aau.at</a>
<a class="moz-txt-link-freetext"
href="https://lists.aau.at/mailman/listinfo/mpeg-otspec"
moz-do-not-send="true">https://lists.aau.at/mailman/listinfo/mpeg-otspec</a>
</pre>
</blockquote>
</blockquote>
</body>
</html>