<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<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" href="mailto:mpeg-otspec@lists.aau.at">mpeg-otspec@lists.aau.at</a>
<a class="moz-txt-link-freetext" href="https://lists.aau.at/mailman/listinfo/mpeg-otspec">https://lists.aau.at/mailman/listinfo/mpeg-otspec</a>
</pre>
</blockquote>
</body>
</html>