<!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>