<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="120" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[120]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor>
ではいろいろな<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>が使われます。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en-us">cmap - Character To Glyph Index Mapping Table (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor> 1.9) - Typography | Microsoft Docs</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2022-08-16T01:57:58.000Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://docs.microsoft.com/en-us/typography/opentype/spec/cmap">https://docs.microsoft.com/en-us/typography/opentype/spec/cmap</anchor-external></li><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite xml:lang="en">Character to Glyph Mapping Table - <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TrueType</anchor> Reference Manual - Apple Developer</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Apple Inc.</anchor>, <time>2022-07-12T17:06:26.000Z</time>, <time>2022-08-16T01:58:07.176Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6cmap.html">https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6cmap.html</anchor-external></li><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[121]</anchor-end> 
<cite xml:lang="ja-jp"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">name</anchor> - Naming table (OpenType 1.9) - Typography | Microsoft Learn</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2022-12-31T07:50:08.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://learn.microsoft.com/ja-jp/typography/opentype/spec/name#naming-table-header">https://learn.microsoft.com/ja-jp/typography/opentype/spec/name#naming-table-header</anchor-external></li></ul></refs></section><section><h1>概要</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor> における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>には2つの側面があります。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> 1つは、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>に関係する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列</anchor>データの記述に使われるものです。
例えば <code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">OpenType表</title></anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント名</anchor>が関係します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> 1つは、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>に格納された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>データの参照 (利用)
方法としての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の記述に使われるものです。
具体的には <code>cmap</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">OpenType表</title></anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor>の対照表となっています。</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> 
<code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">OpenType表</title></anchor>と
<code>cmap</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">OpenType表</title></anchor>は、
利用する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>を記述し、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>によって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>を記述または参照しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> 
その他のいくつかの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>データは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化方式</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">決め打ち</anchor>です。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">タグ<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">OpenTypeタグ</title></anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> (ただし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII</anchor> のみ) です。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="118" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[118]</anchor-end> <code>meta<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">meta (OpenType)</title></code>のテキストデータは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-8</anchor> です。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ名</anchor></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="136" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[136]</anchor-end> <code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語タグ</anchor>は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor> です。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> その他、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor> が使われることがあります。</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="119" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[119]</anchor-end> 
<code>GSUB</code> や <code>GPOS</code> では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor>が使われます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>符号の違いに注意。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor>は個々の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>が独自に決定できる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>内部の記述用のもので、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">情報交換</anchor>には適しません。
(ただし<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ名</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CID</anchor>も参照。)</p></section><section><h1>文字符号化</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> 
<code>cmap</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">OpenType表</title></anchor>には異なる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>を含められます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>は、
(<code>platformID</code>, <code>encodingID</code>, <code>language</code>)
の3つの値の組で識別されます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode部分表</anchor>とその他の何種類かの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>(列)から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor>への対応関係を表します。
その他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非Unicode</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor>への対応関係を表します。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</anchor-end> 現在ではほぼすべての実装が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> を使って <code xmlns="http://www.w3.org/1999/xhtml">cmap</code>
を引いています。以前 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">平成時代</anchor>初期頃まで) は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非Unicode</anchor>
の実装もありました。
現在では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非Unicode</anchor>の <code xmlns="http://www.w3.org/1999/xhtml">cmap</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>を含まない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>も多いです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MacRoman</anchor> の <code xmlns="http://www.w3.org/1999/xhtml">cmap</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>を含む<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>も多いですが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">互換性</anchor>のためというよりは、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">互換性</anchor>が必要だった時代の名残りの慣習と思われます。
現在使われている<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MacRoman</anchor> <code xmlns="http://www.w3.org/1999/xhtml">cmap</code>
は使い物にならないおかしなデータのことも多いです。</comment-p><section><h1><code>platformID</code></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> 
<dfn><code>platformID</code></dfn>
は、
次のいずれかです。</p><figure class="table"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> <code>platformID</code></figcaption><dl><dt>v</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor></dd><dt>n</dt><dd>名前 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></dd><dt>name</dt><dd><code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></dd><dt>cmap</dt><dd><code>cmap</code> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></dd><dt>note</dt><dd>メモ</dd></dl><dl><dt>v</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n></dd><dt>n</dt><dd>Unicode</dd><dt>name</dt><dd>○</dd><dt>cmap</dt><dd>○</dd></dl><dl><dt>v</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n></dd><dt>n</dt><dd>Macintosh</dd><dt>name</dt><dd>○</dd><dt>cmap</dt><dd>○</dd></dl><dl><dt>v</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2</n></dd><dt>n</dt><dd><i>ISO [deprecated]</i></dd><dt>note</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor> 1.3 から<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>非推奨</anchor><rt xmlns="http://www.w3.org/1999/xhtml">deprecated</rt></rubyb>
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></dd><dt>cmap</dt><dd>○</dd></dl><dl><dt>v</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n></dd><dt>n</dt><dd>Windows</dd><dt>name</dt><dd>○</dd><dt>cmap</dt><dd>○</dd></dl><dl><dt>v</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n></dd><dt>n</dt><dd>Custom</dd><dt>cmap</dt><dd>○</dd></dl><dl><dt>v</dt><dd>[ <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">240</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">255</n> ]</dd><dt>note</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者定義</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>に<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>予約</anchor><rt xmlns="http://www.w3.org/1999/xhtml">reserved</rt></rubyb>
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></dd><dt>cmap</dt><dd>○</dd><dt>name</dt><dd><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="135" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;135</anchor-internal></dd></dl></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> 
<code>platformID</code> は <code>encodingID</code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名前空間</anchor>を区別する役割がありますが、
それ以外の意味も処理方法も規定がありません。例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Linux</anchor>
の実装が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor> <code>platformID</code> を使ってはいけないということはありません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>ごとに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>の体系がまったく違っていた旧時代の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">遺物</anchor>と考えるべきなのでしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> 
すべての値に対応しなければならないとする規定はありません。
未対応のものは無視して構わないと思われます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> 
未知の値に遭遇したときどう処理するべきか不明確です。
それが含まれるものは無視するのが妥当でしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> 
利用者定義の値について、使い方に何の規定もありません。
<code>encodingID</code> は好きに使って良いのでしょう。
未知の値は無視して構わないと考えるのが妥当でしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="74" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[74]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Macintosh</anchor>)
の 
<code>cmap</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>はかつての <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Macintosh</anchor> では<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>必須</anchor><rt xmlns="http://www.w3.org/1999/xhtml">required</rt></rubyb>でしたが、
現在の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Apple</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>では<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>非推奨</anchor><rt xmlns="http://www.w3.org/1999/xhtml">discouraged</rt></rubyb>です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p></section><section><h1><code>encodingID</code></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[70]</anchor-end> 
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingID</code></f></dfn>
の意味は
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> に依存します。
<code>encodingID</code>
には次のものがあります。</p><figure class="table"><dl><dt>p</dt><dd><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f></dd><dt>e</dt><dd><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingID</code></f></dd><dt>o</dt><dd><cite>OpenType</cite> の説明 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></dd><dt>r</dt><dd>制限 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></dd><dt>u</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode部分表</anchor></dd><dt>note</dt><dd>メモ</dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode 1.0</anchor> semantics</dd><dt>r</dt><dd><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>非推奨</anchor><rt xmlns="http://www.w3.org/1999/xhtml">deprecated</rt></rubyb> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></dd><dt>u</dt><dd>○</dd><dt>note</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode 1.1</anchor> semantics</dd><dt>r</dt><dd><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>非推奨</anchor><rt xmlns="http://www.w3.org/1999/xhtml">deprecated</rt></rubyb> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></dd><dt>u</dt><dd>○</dd><dt>note</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 10646</anchor> semantics</dd><dt>r</dt><dd><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>非推奨</anchor><rt xmlns="http://www.w3.org/1999/xhtml">deprecated</rt></rubyb> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></dd><dt>u</dt><dd>○</dd><dt>note</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode 2.0</anchor> and onwards semantics, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode BMP</anchor> only</dd><dt>r</dt><dd><code>cmap</code>: 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor> <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">6</n> で使う<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>,
<code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></dd><dt>u</dt><dd>○</dd><dt>note</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode 2.0</anchor> and onwards semantics, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> full repertoire</dd><dt>r</dt><dd><code>cmap</code> :
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor> <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">10</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">12</n> で使う<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>,
<code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></dd><dt>u</dt><dd>○</dd><dt>note</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">5</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode Variation Sequences</anchor></dd><dt>r</dt><dd><code>cmap</code> :
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor> <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">14</n> でのみ使う<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>
(<code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code> にはなし)</dd><dt>u</dt><dd>○</dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">6</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> full repertoire</dd><dt>r</dt><dd><code>cmap</code> :
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor> <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">13</n> でのみ使う<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>
(<code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code> にはなし)</dd><dt>u</dt><dd>○</dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">10</n></dd><dt>note</dt><dd>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号点</anchor>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>にないが利用例あり。</dd><dt>u</dt><dd>○</dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>)</dd><dt>e</dt><dd>その他</dd><dt>u</dt><dd>○</dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Macintosh</anchor>)</dd><dt>e</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">script manager code</anchor></dd><dt>r</dt><dd>
<code>cmap</code> : <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非推奨<rt xmlns="http://www.w3.org/1999/xhtml">discouraged</rt></rubyb> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>,
<code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code></dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n></dd><dt>o</dt><dd>7-bit <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII</anchor></dd><dt>r</dt><dd>
<code>cmap</code> : <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>非推奨</anchor><rt xmlns="http://www.w3.org/1999/xhtml">deprecated</rt></rubyb></dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO 10646</anchor></dd><dt>r</dt><dd>
<code>cmap</code> : <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>非推奨</anchor><rt xmlns="http://www.w3.org/1999/xhtml">deprecated</rt></rubyb></dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO 8859-1</anchor></dd><dt>r</dt><dd>
<code>cmap</code> : <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>非推奨</anchor><rt xmlns="http://www.w3.org/1999/xhtml">deprecated</rt></rubyb></dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO</anchor>)</dd><dt>e</dt><dd>その他</dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Symbol</anchor></dd><dt>note</dt><dd><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>symbol encoding</anchor> </sw-see></dd><dt>r</dt><dd>
通常は <code>cmap</code> <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n>。
新たには <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> を使う<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>。</dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode BMP</anchor></dd><dt>u</dt><dd>○</dd><dt>r</dt><dd>非 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BMP</anchor> <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">使用禁止<rt xmlns="http://www.w3.org/1999/xhtml">must not</rt></rubyb></dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ShiftJIS</anchor></dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PRC</anchor></dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Big5</anchor></dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">5</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Wansung</anchor></dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">6</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Johab</anchor></dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">7</n></dd><dt>o</dt><dd>Reserved</dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">8</n></dd><dt>o</dt><dd>Reserved</dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">9</n></dd><dt>o</dt><dd>Reserved</dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>)</dd><dt>e</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">10</n></dd><dt>o</dt><dd><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> full repertoire</dd><dt>u</dt><dd>○</dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>)</dd><dt>e</dt><dd>その他</dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n> (Custom)</dd><dt>e</dt><dd>[ <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">255</n> ]</dd><dt>o</dt><dd>
<code>cmap</code> : OTF Windows NT compatibility mapping</dd><dt>r</dt><dd>
<code>cmap</code> <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">6</n> で<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なければ<rt xmlns="http://www.w3.org/1999/xhtml">must</rt></rubyb>。
新たに使う<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきではない<rt xmlns="http://www.w3.org/1999/xhtml">should not</rt></rubyb>。</dd></dl><dl><dt>p</dt><dd><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n> (Custom)</dd><dt>e</dt><dd>その他</dd></dl><dl><dt>p</dt><dd>[ <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">240</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">255</n> ]</dd><dt>note</dt><dd>
<code>cmap</code> : <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者定義</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">予約</anchor></dd></dl><dl><dt>p</dt><dd>その他</dd></dl></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> 
<cite>OpenType</cite> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>では
<code>cmap</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">OpenType表</title></anchor>の
<dfn>Unicode<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ruby xmlns="http://www.w3.org/1999/xhtml">部<rt>ぶ</rt></ruby><ruby xmlns="http://www.w3.org/1999/xhtml">分<rt>ぶん</rt></ruby><ruby xmlns="http://www.w3.org/1999/xhtml">表<rt>ひょう</rt></ruby><rt xmlns="http://www.w3.org/1999/xhtml">subtable</rt></rubyb></dfn>という語が使われています。
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>
と
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n>
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">10</n>
を表すとされています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="75" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[75]</anchor-end> 
また <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor> 用の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>を作成するときは
<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>Unicode</anchor> <code xmlns="http://www.w3.org/1999/xhtml">cmap</code> <ruby xmlns="http://www.w3.org/1999/xhtml">部<rt>ぶ</rt></ruby><ruby xmlns="http://www.w3.org/1999/xhtml">分<rt>ぶん</rt></ruby><ruby xmlns="http://www.w3.org/1999/xhtml">表<rt>ひょう</rt></ruby><rt xmlns="http://www.w3.org/1999/xhtml">Unicode <code>cmap</code> subtable</rt></rubyb></dfn>を常に使う<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>ともされています。
この <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> <code>cmap</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>は
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n>
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">10</n>
を意味するとされています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[123]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor> 用<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>
の
<code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code>
については、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n>
で
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> フォント)
または
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Symbol font</anchor>)
とする<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきです<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="122" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[122]</anchor-end> 
<code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code>
における
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>) 
においては、
<code>encodingID</code>
は、
<code>cmap</code> の
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>) 
の
<code>encodingID</code>
と一致している<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきです<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[78]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BMP</anchor> のみと全体とは <code>format</code> が違えば区別可能なはずです。
にも関わらず <code>encodingID</code> と <code>format</code> 
の両方に違う値を指定させて区別しています。
<code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">13</n> 専用の <code>encodingID</code> もそうです。
<code>format</code> だけでの区別では実装上の問題があったのでしょうか。</p></section><section><h1>Windows 符号化</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[124]</anchor-end> 
<code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code>
の文字列は、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingID</code></f> が <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>)
の場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor>
で符号化しなければ<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません<rt xmlns="http://www.w3.org/1999/xhtml">must</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="125" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[125]</anchor-end> 
これはつまり、 <code>cmap</code> の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingID</code></f> と同じ値を指定する (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="122" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;122</anchor-internal>)
だけで、その値自体にはそれほど意味がなく、
値に関わらず <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor> を使わなければならないということのようです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="126" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[126]</anchor-end> 
古い <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CJK</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>はこの規定に反していることがあります。
例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MingLi</anchor>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ラテン文字</anchor>名を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>しながらも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">中文</anchor>名は
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Big5</anchor>) で文字列を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CP950</anchor>
で符号化していました。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="127" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[127]</anchor-end> 
これは <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Macintosh</anchor>)
が実際に指定された通りの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>となるのと違う点です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="128" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[128]</anchor-end> 
さて、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor> の仕様はこの状況をどう処理するべきなのか何も語っていません。
現在となっては <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>)
のデータを含む<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>は希少となっているようですが、
古い<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>を扱う必要がある (可能性がある) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ソフトウェア</anchor>は、
何らかの方針を立てて対処しなければなりません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="129" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[129]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CJK</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コードページ</anchor>なら<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コードページ</anchor>通りの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号化</anchor>、
それ以外なら <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor>、としてしまっていいのでしょうか。
それなら楽なのですが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CJK</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コードページ</anchor>で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UTF-16BE</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>も出回っているなら、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード自動判定</anchor>が必要となります。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="146" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[146]</anchor-end> なお、
<code>OS/2<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">OS/2 (OpenType)</title></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">OpenType表</title></anchor>にはカバーしている<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コードページ</anchor>を記述できます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="145" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[145]</anchor-end> 
<cite xml:lang="ja-jp">OS/2 - OS/2 and Windows metrics table (OpenType 1.9) - Typography | Microsoft Learn</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2023-01-01T12:55:55.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://learn.microsoft.com/ja-jp/typography/opentype/spec/os2#cpr">https://learn.microsoft.com/ja-jp/typography/opentype/spec/os2#cpr</anchor-external></p></section><section><h1><code>platformID</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n></h1><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>OTF Windows NT compatibility mapping</anchor> </sw-see></p></section><section><h1>各IDの実利用例</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> 
互換性のためか 
<code>platformID</code> = 0 (Macintosh),
<code>encodingID</code> = 0 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MacRoman</anchor>)
で、
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x100</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x101</n>
だけの 
<code>cmap</code>
部分表が含まれる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>がままあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> 
<cite><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Nishiki-teki</anchor></cite>
は
<code>platformID</code> = 0 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>),
<code>encodingID</code> = 10
という 
<code>cmap</code> subtable
を持っています。
でも
<code>platformID</code> 0 <code>encodingID</code> 10
は
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Microsoft</anchor> の仕様書にも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Apple</anchor> の仕様書にも載っていません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> 
中身は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> のようです。
<code>platformID</code> = 3 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>)
だと
<code>encodingID</code> = 10 が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> 
なので、
それの誤りなのでしょうか。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> 
<cite>Makoto Comic</cite>
にも
<code>platformID</code> = 0 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>),
<code>encodingID</code> = 10
があります。</p></section></section><section><h1>言語ID</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="130" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[130]</anchor-end> 
<code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code> では3種類の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語符号</anchor>の体系が使われています。
<code>cmap</code> ではそのうち1種類 (の変種) が使われています。
なお <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor> の他の場所では他の体系も使われています。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>OpenTypeにおける言語</anchor> </sw-see></p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="131" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[131]</anchor-end> 
<code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code> の項目を表す
<code>NameRecord</code>
の
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">languageID</code></f></dfn>
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">自然言語</title></anchor>を表します。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="132" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[132]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">languageID</code></f> の値の意味は当該
<code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">OpenType表</title></anchor>の
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">version<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (TrueType)</title></code></f>
と
<code>NameRecord</code>
の
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f>
に依存して決まります。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="141" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[141]</anchor-end> 
<code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code>
で
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> が <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>) 
の場合、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">languageID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> を使うことができます。
この値は特定の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語</anchor>を表しません。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[143]</anchor-end> 
<code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code>
で
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> が <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Macintosh</anchor>) 
の場合、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">languageID</code></f> 
には
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Macintosh language ID</anchor>
を指定できます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="144" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[144]</anchor-end> 
<code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code>
で
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> が <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>) 
の場合、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">languageID</code></f> 
には
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows language ID</anchor>
を指定できます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="133" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[133]</anchor-end> 
<code>name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code>
の
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">version<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code></f>
には 
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> と <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n>
がありますが、
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n> のとき、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF言語タグ</anchor>を任意個設定できます。
各 <code>NameRecord</code>
はこの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語タグ</anchor>を参照することによって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">自然言語</title></anchor>を記述できます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="134" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[134]</anchor-end> 
<code>version<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n> では、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">languageID</code></f>
は
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x8000</n>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>のとき、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語タグ</anchor>を表すと解釈され、
それ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">未満</anchor>のとき、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f>
依存の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語符号</anchor>と解釈されます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="140" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[140]</anchor-end> 
<code>version<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> では、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">languageID</code></f>
は原則として
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x8000</n>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">未満</anchor>の値を使わなければ<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません<rt xmlns="http://www.w3.org/1999/xhtml">must</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="142" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[142]</anchor-end> 
<code>version<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> の
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">languageID</code></f>
でも、
例外的に、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f>
が
[ <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">240</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">255</n> ]
のときは
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x8000</n>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>の値を使うことが禁止されていません。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="135" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[135]</anchor-end> <code xmlns="http://www.w3.org/1999/xhtml">name<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">name (OpenType)</title></code> の <code xmlns="http://www.w3.org/1999/xhtml">platformID</code>
の規定には利用者定義が使えるとは書かれていない (<code xmlns="http://www.w3.org/1999/xhtml">cmap</code> の方にだけ書かれている)
のですが、このような規定があるのは謎です。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="137" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[137]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF言語タグ</anchor>を設定したときは、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">languageID</code></f> 
ではそれを <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x8000</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x8001</n>, ... といった値で参照できます。
数値は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語タグ</anchor>が記述された順序で割り振られていきます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="138" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[138]</anchor-end> 
指定された値に対応する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語タグ</anchor>が存在していないときは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語</anchor>は未知となります。そのような値は使う<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきではありません<rt xmlns="http://www.w3.org/1999/xhtml">should not</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;121</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="139" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[139]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor> 仕様にしては珍しく<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エラー処理</anchor>らしきものが(少しだけ)決められています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語</anchor>が未知ということは、特定の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語</anchor>の値を探す処理では無視されるべきなのでしょうし、
どんな<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語</anchor>でもいいような処理では受理されるべきなのでしょう。
(未知の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語</anchor>だから<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">致死的エラー</anchor>とすることも、必ずしも否定されていませんが...
ニュアンスとしてはそれはあまり好ましい挙動ではなさそうです。)</comment-p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="93" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[93]</anchor-end> 
<code>cmap</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>の
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">language</code></f></dfn> 
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字符号化</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語</anchor>を表します。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="92" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[92]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Macintosh</anchor>)
<em>以外</em>の
<code>cmap</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>の
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">language</code></f>
は、
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>
でなければ<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません<rt xmlns="http://www.w3.org/1999/xhtml">must</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="94" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[94]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Macintosh</anchor>)
の
<code>cmap</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>の
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">language</code></f>
は、</p><ul><li><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語依存<rt xmlns="http://www.w3.org/1999/xhtml">language-specific</rt></rubyb>のとき、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Macintosh language ID</anchor> + <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n></li><li>言語依存でないとき、 <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n></li></ul><p>とします。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="95" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[95]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Mac OS Roman</anchor>
<code>cmap</code>
では、
言語依存の符号化ではありませんから、
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> 
としなければ<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません<rt xmlns="http://www.w3.org/1999/xhtml">must</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="96" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[96]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Mac OS Turkish</anchor>
<code>cmap</code>
では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Turkish</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Macintosh language ID</anchor> が <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">17</n>
なので、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">language</code></f>
は
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">18</n>
とします。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="105" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[105]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">language</code></f> 
は
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f>
依存の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>に属しています。
ということは古い
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Macintosh</anchor>
でしか使われていないこの欄をいつまでも残しておく必要も無さそうなものですが、
新しそうな
<code>format</code>
でもそのまま引き継がれています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="106" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[106]</anchor-end> 
ただし
<code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">14</n>
には
<code>language</code>
欄がありません。この <code>format</code> だけ
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor>
に完全に依存している
(= <code>language</code> があってもまったく使いようがない)
関係なのでしょうかね。
(他は、少なくても理屈の上では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> に限定されていないので使い道がないとはいえない。)</p></section><section><h1><code>cmap</code> 表</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="111" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[111]</anchor-end> 
<code>cmap</code> は一部例外を除き、1つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor> (を表す<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ビット組合せ</anchor>)
に対して1つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>を与える<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">写像</anchor>です。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="112" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[112]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語</anchor>的な理由や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>設計の事情で複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>を1つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>で表したい場合
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">合字</anchor>)
や、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">書体</anchor>設計的な事情で1つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>を複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>で表したい場合には、
<code xmlns="http://www.w3.org/1999/xhtml">cmap</code> だけでは実現できず、 <code xmlns="http://www.w3.org/1999/xhtml">GSUB</code>
(または <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">shaping engine</anchor> による文字前処理) 
との組み合わせが必要となります。</comment-p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> 
<code>cmap</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">OpenType表</title></anchor>の <dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingRecords</code></f></dfn>
に含められる <dfn><code>EncodingRecord</code></dfn>
は、
その
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingID</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</f>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">language</code></f>
の優先順で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整列</anchor>しなければ<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません<rt xmlns="http://www.w3.org/1999/xhtml">must</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>
ここでの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">順序</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">数値</anchor>の小さい順と思われます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> 
<code>cmap</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">OpenType表</title></anchor>にあっては
<code>EncodingRecord</code>
の
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingID</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</f>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">language</code></f>
の組み合わせは、
高々1回しか出現<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">でき<rt xmlns="http://www.w3.org/1999/xhtml">may</rt></rubyb>ません。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">順序</anchor>が不適切な場合や重複を含む場合にどう処理するべきなのかは定かではありません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">順序</anchor>を無視する実装もあり得ますし、
求めるものより大きな値が出現したら探索を止める実装もあり得ます。
最初の一致を採る実装も、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">無作為</anchor>に選ぶ実装もあり得ます。
エラーにする実装もあり得ます。
主要な実装はどうしているのでしょうか?</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> 
各<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>は、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> が <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">14</n> の場合を除き、
排他的であります。
つまり<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>は、そのうちの1つだけを選び、他を無視する<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode部分表</anchor>が含まれる場合で、
16ビットの 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f>
のものと
32ビットの
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f>
のものが両方含まれるなら、32ビットの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>に含まれる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>は、
16ビットの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>に含まれる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">超集合</anchor>である<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>は、
32ビットの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>を使う<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきです<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> 仕様上は要求されていませんが、常識的に考えて32ビットの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>のうち
[ <code xmlns="http://www.w3.org/1999/xhtml">U+0000</code>, <code xmlns="http://www.w3.org/1999/xhtml">U+FFFE</code> ]
の部分と16ビットの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>が一致しているべきです。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> が違い
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f>
が同じ
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode部分表</anchor>が含まれる場合、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>はそのいずれを選んでも<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">構いません<rt xmlns="http://www.w3.org/1999/xhtml">may</rt></rubyb>が、
その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>の利用時にどの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>が選ばれるかは一貫している<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきです<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="97" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[97]</anchor-end> 
明示的には定められていませんが、その趣旨からして、
未対応の組み合わせが出現しても、
実装は黙って無視するべきと思われます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="98" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[98]</anchor-end> 
指定されたすべての組み合わせが未対応の場合にどうするかは定められていません。
エラーとしてまったく受理しない実装もあるかもしれませんし、
黙って他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>にフォールバックするような実装戦略もあるかもしれません。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> 複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>を含めても<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>が使うのは1つだけです。
これによって対応する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>が異なる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>で共通して使える<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>を提供できるというわけです。
実際に多くの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>がそうしていますが、
一方で敢えて重複した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>を含めない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>もあります。
(<code xmlns="http://www.w3.org/1999/xhtml">format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">14</n> を除けば)
もはや<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>の違いによる互換性の問題はおおむね解消しており、
必要だからというより今までそうしてきたからというところが大きそうです。</comment-p><section><h1><code>format</code></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> 
<code>cmap</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">OpenType表</title></anchor>の
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f></dfn>
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor>への<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">写像</anchor>の記述方法を表します。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> 
多くの方法が定義されていますが、新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>はそのうちの
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">12</n>、
用途により
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">13</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">14</n>
が適切です。
それ以外は新しい<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>には<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">推奨されません<rt xmlns="http://www.w3.org/1999/xhtml">not recommended</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="104" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[104]</anchor-end> 
いくつかの 
<code>format</code>
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ構造</anchor>上、
矛盾した値を記述することができます。
例えば開始よりも終了が小さな値の範囲を記述できたり、
小さい順に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整列</anchor>と規定されている (が構文上は無視できる)
ことがあります。
それらの一部は仕様書上で明確に禁止されています。
しかし禁止されている場合や当然に異常とみなされる場合に、
どう処理するべきかは明確ではありません。
(これは <code>cmap</code> に限らず <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor> 全般でそうです。)</p><section><h1><code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> (1バイト符号)</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> 
<code>format</code> = 0 : 
[ <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x00</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFF</n> ]
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ビット組合せ</anchor>に対応する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor>が順番に格納されています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="100" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[100]</anchor-end> 
古い <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Macintosh</anchor> ではこれが標準でした。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> 
新しい <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Apple</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>では必須ではありません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>
今はあまり使われていません。
対応していない実装もあります。</p></section><section><h1><code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2</n> (1バイトと2バイトの多バイト符号)</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> 
<code>format</code> = 2 : 
1バイト (8ビット) または2バイト  (16ビット) 
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">多バイト符号</anchor>に対応する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor>が順番に格納されています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="99" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[99]</anchor-end> 
記述のない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイト</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> に対応するものと解釈されます。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="101" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[101]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CJK</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非Unicode</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">多バイト符号</anchor>に適していました。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>シフトJIS型符号</anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> 古い時代に用いられていたもので、今はあまり使われていません。
対応していない実装もあります。</p></section><section><h1><code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">6</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">12</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">10</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">13</n> (16ビット符号と32ビット符号)</h1><ul><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> 
<code>format</code> = 4 :
16ビット符号用。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src></li><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> 
<code>format</code> = 6 :
16ビット符号用。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src></li><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> 
<code>format</code> = 12 :
32ビット符号用。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src></li><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> 
<code>format</code> = 10 :
32ビット符号用。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> 
4, 6 は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode BMP</anchor> 用,
12, 10 は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> 全体に使われています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> 
4, 12 は連続した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor>が割り当てられた密なもの、
6, 10 は疎なものに適した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ構造</anchor>になっています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> 
6
に対応していない実装もあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> 
10 はあまり使われておらず、 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor> は対応していません。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, &gt;2</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> 
当初 4 が使われ後に 12 が使われるようになった経緯のため、
古い実装は 12 に対応していません。
多くの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>は 4 と 12 の両方の <code>cmap</code> 部分表を含めているようです。
(そうできると明記されていますが、必須ではありません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>)
古い実装は 4 の方を見るので、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BMP</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>だけは使えます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> が <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n> と <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">6</n>
の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode部分表</anchor>を同時に含める<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきではありません<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>。
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> が <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">10</n> と <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">12</n>
の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode部分表</anchor>を同時に含める<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきではありません<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>。
これらの場合、 <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n> や <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">12</n> を使う<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきです<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="76" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[76]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor> (<code>platformID</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n>)
で
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BMP</anchor>
のみ対応する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>は、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n>
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>を使わなければ<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません<rt xmlns="http://www.w3.org/1999/xhtml">must</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="77" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[77]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor> (<code>platformID</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n>)
で
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> 非 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">BMP</anchor>
に対応する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>は、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">10</n>
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">12</n>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>を使わなければ<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません<rt xmlns="http://www.w3.org/1999/xhtml">must</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> 
<code>format</code> = 13 は <code>format</code> = 12 の変種。
複数の連続した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>の範囲を1つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor>に割り当てる。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">last-resort</anchor> font 
(適当な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>を用意できないときに代替<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>を提供するための<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>)
用とされています。
その性質上ほとんど使われておらず、
対応していない実装もあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="73" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[73]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">13</n>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>は、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">6</n>
でのみ使う<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきです<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="147" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[147]</anchor-end> <cite xml:lang="en-GB">The Typekit Blog | Introducing Adobe Blank</cite>, <time>2020-07-28T21:33:01.000Z</time>, <time>2023-05-02T08:40:10.206Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://blog.typekit.com/2013/03/28/introducing-adobe-blank/">https://blog.typekit.com/2013/03/28/introducing-adobe-blank/</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="148" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[148]</anchor-end> <cite xml:lang="en-US">1,111,998 to 1 → Adobe Blank 2</cite>, <time>2020-11-19T06:22:25.000Z</time>, <time>2023-05-02T08:41:20.984Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://ccjktype.fonts.adobe.com/2015/04/adobe-blank-2.html">https://ccjktype.fonts.adobe.com/2015/04/adobe-blank-2.html</anchor-external></li></ul><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="149" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[149]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n>
のとき最後に <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">startCode</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFFFF</n>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">endCode</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFFFF</n>
の segment が必須です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="150" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[150]</anchor-end> 
妥当な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">写像</anchor>でもそうでもなくても構わない <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src> とされます。
つまり <code>U+FFFF</code> 用の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>情報を含めることも、
含めないこともできますが、
どちらの場合も機械的にこの segment が必要となります。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="154" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[154]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> も、指定された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号</anchor>が仕様通り<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">昇順</anchor>になっていないとき、
構文解析エラーとして<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>を無視します。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開発者ツール</anchor>に <code>cmap</code> のエラーである旨のみを表示しますが、
それくらいしか情報がありません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開発者ツール</anchor>に符号の値を表示してくれます。
<time>2023-08-27T02:54:40.600Z</time></p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="164" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[164]</anchor-end> 
<code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">12</n> と <code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">13</n>
の両方があるとき、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> も <code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">13</n> の方は無視します。
<code>cmap</code> 中の順序は関係ありません。
(<code>format</code> だけによって決まるのか <code>encodingID</code> などでも決まるのかはよく分かりません。)</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="114" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[114]</anchor-end> 
<code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n> 
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>のサイズ上限を超えるような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>を作ろうとすると、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">AFDKO</anchor> の <code>makeotf</code>
は最初の2つの segment だけ残して後は捨ててしまいます。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="113" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;113</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="115" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[115]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor> 
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メモ帳</anchor>や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Microsoft Excel</anchor>
は
<code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n> 
が存在すること、という
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">heuristics</anchor>
を実装しています。
それへの対処として、
<code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">12</n>
を使うときでも
<code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>を含めなければなりません。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="113" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;113</anchor-internal></src>
(その場合でも <code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">12</n> が使われるので、
<code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n> は不完全でも存在していればOKらしいです。)</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="113" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[113]</anchor-end> 
<cite xml:lang="en">GitHub - adobe-type-tools/<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Adobe-KR</anchor>: The Adobe-KR-9 Character Collection</cite>, <time>2022-09-29T11:52:44.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/adobe-type-tools/Adobe-KR/#special-notes-5">https://github.com/adobe-type-tools/Adobe-KR/#special-notes-5</anchor-external></li></ul></refs><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="116" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[116]</anchor-end> <cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GitHub</anchor> - trueroad/HaranoAjiFonts-generator: 原ノ味フォント生成プログラム / Harano Aji Fonts generator</cite>, <time>2022-09-29T15:48:27.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/trueroad/HaranoAjiFonts-generator#cmap">https://github.com/trueroad/HaranoAjiFonts-generator#cmap</anchor-external></li></ul><blockquote><p>原ノ味フォント 20200516 から、KR のみ format 4 と format 12 に対し、 Unicode コードポイントで一つだけ抜けている (両隣は存在するが該当箇所は存在しない)ものに .notdef を割り当てる加工をしています。 これは、何もしないと format 4 のサイズが 64 KB を超えてしまい、 ttx でのフォント生成が例外で落ちてしまったためです。 format 12 はサイズの問題がないし format 4 の情報もすべて含んだ上位互換なので、 format 4 がなくてもいいだろうと削除してみたら落ちなくなりましたが、 Windows がフォントとして認識してくれません。 仕方なく format 4 の仕様書とにらめっこしてサイズを低減する方法を模索し、 上記の処理を入れました。 なお format 12 も BMP の範囲は format 4 と同じである必要があるため、 BMP 範囲内のみ同じ処理を入れてあります。</p></blockquote><blockquote><p>原ノ味フォント 20200612 から、 <snip xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"></snip>KR で入れていた Unicode コードポイントで一つだけ抜けているものに .notdef を割り当てる加工 をやめ、代わりに Adobe-KR のドキュメントに記載されている format 4 から CJK Unified Ideographs (U+4E00..U+9FFF) と CJK Compatibility Ideographs (U+F900..U+FAFF) のブロックを削除する方法に変更しました。 これは .notdef を割り当てる加工をしていて、 かつ(関係ないはずの) GPOS テーブルが存在すると、 なぜか Windows がフォントを認識してくれないことが分かったためです。 OpenType 仕様的には(というか Windows 向けとしては) format 4 と format 12 の BMP 部分は一致するようにするのが推奨されていますが、 サイズ的に収まらないので仕方がなく Adobe お勧めの対処法に従った処理を行ったものです。</p></blockquote></section><section><h1><code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">8</n> (16ビットと32ビットの混合符号)</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> 
<code>format</code> = 8 :
16ビットまたは32ビットの符号用。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[103]</anchor-end> 
上位が <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x0000</n> となる32ビット符号に
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>を割り当てることも禁止はされていません。
しかし <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x0000</n> と上位 <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0x0000</n> の32ビット符号の両方に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>を割り当てることは<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">禁止<rt xmlns="http://www.w3.org/1999/xhtml">may not</rt></rubyb>されています。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>
そのような場合にどうするべきなのかは不明。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> 
<code>U+10FFFF</code> まで使う <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> を想定したものでした。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="102" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[102]</anchor-end> 
この
<code>format</code>
はあまり使われていません。
対応していない実装もあります。
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">非推奨<rt xmlns="http://www.w3.org/1999/xhtml">discouraged</rt></rubyb>とされています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>。</p></section><section><h1><code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">14</n> (Unicode 異体列)</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> 
<code>format</code> = 14 :
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UVS</anchor>
用。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> 
他の <code>format</code> と違って入力が1つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>)
ではなく2つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>)。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体列</anchor>の専用の仕組みになっています。
(2, 8 の入力は多バイトであっても1文字。 4, 6, 10, 12, 13 も同じ。
4, 6, 8, 10, 12, 13 は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode</anchor> 想定であっても、専用ではない。)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> 
同じく複数の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字</anchor>で1つのものを表現する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">結合列</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">合字</anchor>は
<code>GSUB</code> 
で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>レベルの操作を使っていますが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VS</anchor> 
だけなぜか専用の仕組みが <code>cmap</code> に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>レベルで追加されました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体列</anchor>に対し「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体選択子</anchor>なしと同じ」を指定するものと、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor>を指定するものの2種類の指定方法があります。
前者が得られた場合には他の
<code>cmap</code> 部分表を使って再探索することになります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> 
実際の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>は前者の方法を使わずすべて後者の方法によるものと、
前者の方法を適宜使うものがあります。
前者を使った方がデータ量はいくらか少なくなるのでしょうが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>取得が少し遅くなります。
といっても現在の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">計算機</anchor>の性能からみればどちらの差分もほとんど誤差みたいなものでしょう。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> その誤差みたいな節約のために前者の方法を導入してるのが無駄に思えるのですが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor> の複雑性の中ではそれも誤差みたいな複雑性かもしれませんw</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VS</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">日本語</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">蒙古文字</anchor>の表示には必須の機能ですが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">欧米</anchor>では必要とされないことや、
比較的歴史の浅い機能であることから、
14 に対応していない実装もあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">日本語</anchor>用<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>で多くの文字を含んだものにはよく使われています。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> 14 を使わなくても <code xmlns="http://www.w3.org/1999/xhtml">GSUB</code> でも対応できますが
(そちらの方が対応してる実装は多いかも知れませんが)、
そのような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>があるのかは不明。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode部分表</anchor>が使われる場合、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">5</n>
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">14</n>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UVS</anchor> に対応することができます。
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">14</n>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>は、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">platformID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">encodingID</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">5</n>
でのみ使う<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきです<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> とだけしか定められてはいないのですが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode部分表</anchor>がないときは <code xmlns="http://www.w3.org/1999/xhtml">format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">14</n>
は使えないということでしょうか。
(実用上それ以外で <code xmlns="http://www.w3.org/1999/xhtml">format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">14</n> を使いたいことはなさそうですが。)</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="71" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[71]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UVS</anchor> は、<code>cmap</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表</anchor>で <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">14</n> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>で指定する<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べき<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="72" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[72]</anchor-end> この「べき」<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">規定</anchor>の意味するところは不明瞭です。
<code xmlns="http://www.w3.org/1999/xhtml">GSUB</code> による <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UVS</anchor> の実装を否定する趣旨と理解していいのでしょうか。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="117" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[117]</anchor-end> <cite xml:lang="ja">利用者:emk - GlyphWiki</cite>, <time>2022-10-14T10:19:13.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://glyphwiki.org/wiki/User:emk#i0">https://glyphwiki.org/wiki/User:emk#i0</anchor-external></p><blockquote><p>Windows 7でIVSを認識させるには、以下の条件をすべて満たす必要があるようです。 </p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="165" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[165]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> も、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体選択子</anchor>が0個だとエラーとして<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>を無視します。
従って1つも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VS</anchor> を含まない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>では
<code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">14</n> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>全体を省かなければなりません。
<time>2023-11-04T03:01:28.900Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="155" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[155]</anchor-end> 
仕様書上は特に制限されているようには読めませんが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体選択子</anchor>以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>が書かれていると、
<code>cmap</code> の構文解析エラーとして<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>を無視します。
<time>2023-08-27T03:44:41.300Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="156" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[156]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> でも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> でも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">漢字</anchor> + 通常 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SVS</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">漢字</anchor> + <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IVS</anchor> はうまく動作しますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">漢字</anchor> + <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">蒙古文字自由異体選択子</anchor>は動作しません。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="157" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[157]</anchor-end> <code class="charname" xml:lang="en">FVS1</code>, <code class="charname" xml:lang="en">FVS2</code>, <code class="charname" xml:lang="en">FVS3</code>
があってもエラーにはなりませんが、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>は使われず、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基底文字</anchor>だけが表示されます。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="158" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[158]</anchor-end> <code class="charname" xml:lang="en">FVS4</code> は <code>cmap</code> にあるだけで構文解析エラーになって、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>が無視されます。<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="160" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[160]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開発者ツール</anchor>によると、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">UVS</anchor> <code>cmap</code> の最大数が259 (<code class="charname" xml:lang="en">FVS4</code> 以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VS</anchor>の総数)
になっているようです。
それを超えないとしても不正な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VS</anchor>扱いでエラーにはなります。</li></ul></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="159" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[159]</anchor-end> <code class="charname" xml:lang="en">FVS4</code> があるとき<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor>では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基底文字</anchor>だけが表示されますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor>では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基底文字</anchor>と<code class="charname" xml:lang="en">FVS4</code>が同じ位置に重なった状態で、選択に対しては1文字扱いで、表示されます。</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="79" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[79]</anchor-end> 
<cite>Chrome</cite> は以前よりも制限が厳しくなったようです。
いつ変わったのか、どれが新しい制限かはわかりませんが、
次のような挙動を確認できます。
<time>2026-01-25T12:10:52.00Z</time></p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="84" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[84]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webフォント</anchor>の検査のエラーメッセージ全般が以前より詳しく親切になっています。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="80" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[80]</anchor-end> 
ある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IVS</anchor>について、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基底文字</anchor>が <code>cmap</code> にあって <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IVS</anchor> が <code>cmap</code> 
にない場合、以前の <cite>Chrome</cite> と現在の <cite>Firefox</cite> 
はその<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基底文字</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>を使っていましたが、現在の <cite>Chrome</cite>
では次の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>を調べます。<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="81" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[81]</anchor-end> 従って <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">13</n> ですべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>を割り合てているとしても、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IVS</anchor> があるとその<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>は使われず次の候補の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IVS</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>が使われることがあります。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="82" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[82]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URO</anchor> + <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IVS</anchor> ではこの挙動になりますが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URO</anchor> + <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SVS</anchor>
では少し挙動が違うようにも見え、更なる検証が望まれます。</li></ul></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="83" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[83]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">numVarSelectorRecords</code></f> の最大が <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">256</n>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SVS</anchor> + <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IVS</anchor> の最大値か)
で、それを超えると<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開発者コンソール</anchor>にエラーが表示され、
その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>は使われません。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[85]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">numUnicodeValueRanges</code></f>
が <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">236</n>
を超えるとエラーメッセージなしでその<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>は無視されます。
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">numUnicodeValueRanges</code></f>
に上限があるのか、
それとも他の長さ超過などが主因なのかは不明です。<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="86" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[86]</anchor-end> 
同じ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>が <cite>Firefox</cite> では正常動作するので、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>として壊れてはいないはず。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="90" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[90]</anchor-end> 
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="83" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;83</anchor-internal> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;85</anchor-internal> の制限があるため、
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">60416</n>
個の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>しか default UVS を設定できません。</li></ul></li><li>
<anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="89" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[89]</anchor-end> 
<code>UnicodeRange</code>
の
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">startUnicodeValue</code></f>
が
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> 
だとエラーメッセージが表示され、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>は無視されます。
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">以上</anchor>にする必要があります。
これは <cite>Chrome</cite> でも <cite>Firefox</cite> でも同じ挙動です。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="87" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[87]</anchor-end> 
<code>cmap</code> <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">14</n> の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">length</code></f>
は、
仕様書では「Byte length of this subtable (including this header)」
と説明されていて、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">subtable</anchor> がどこまでを指すのか不明瞭ですが、
<code>VariationSelector</code>
で <code>Offset32</code> で参照されている<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表</anchor>の末尾までが入っていなければなりません。<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="88" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[88]</anchor-end> 長すぎてそれより先に余分にバイト列を置いて含めていても、
長さ不一致でエラーになります。</li></ul></li></ul><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="367" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[367]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TTF</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OTF</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">異体列</anchor>用 <code>cmap</code> format 14 
に対応していないソフトウェアが意外とあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="368" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[368]</anchor-end> 
<cite><code>opentype.js</code></cite> では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor> がなく存在自体が無視されます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="369" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[369]</anchor-end> 
<code>ttfdump</code> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Typr</anchor> は存在することだけ知らせて中身は dump してくれません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="370" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[370]</anchor-end> 
<code>Font::TTF</code> は普通に対応しています。</p></section><section><h1><code>format</code> の実利用例</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 
<cite xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GitHub</anchor> - nixeneko/nxTokiACF</cite>, <time>2022-08-16T01:59:19.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/nixeneko/nxTokiACF">https://github.com/nixeneko/nxTokiACF</anchor-external></p><p><code>format</code> = 0, 4</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <cite xml:lang="en">Release Version 14.000 Release · unicode-org/last-resort-font · GitHub</cite>, <time>2022-08-16T02:36:51.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/unicode-org/last-resort-font/releases/tag/14.000">https://github.com/unicode-org/last-resort-font/releases/tag/14.000</anchor-external></p><p><code>LastResort-Regular.ttf</code>
は
7.89MB 
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>。
<code>format</code> = 12 と <code>format</code> = 4 (空)。</p><p><code>LastResortHE-Regular.ttf</code>
は
506KB
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>。
<code>format</code> = 13 (<code>platformID</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n>, <code>encodingID</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">10</n>), 
<code>format</code> = 4 (<code>platformID</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n>, <code>encodingID</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n>) (空)。</p><p>(ファイルサイズの違いは <code>format</code> の違いに起因するものではない。)</p></section></section><section><h1>グリフID</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> 
<code>cmap</code> では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>中に対応する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>を持たない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor>
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>
に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">写像</anchor>する<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきです<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal></src>
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>グリフID</anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="151" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[151]</anchor-end> 
この規定と関係するのかどうか、実装によっては <code>cmap</code> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n>
に対応付けるように設定しても、無視される (ように見える) ことがあります。
それが仕様通りの動作なのかどうかはよくわかりません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="152" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[152]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> のとき未実装とみなして他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォールバック</anchor>しているのかもしれません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="153" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[153]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> で <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">format</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">13</n> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>で全<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor> 
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> にしても、エラーにはなりませんが、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>は使われずに他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>で表示されます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>内の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>が <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> 
1個だけではだめなのかと他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>を入れてみても変わりません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> 以外に設定すればちゃんと使われるので、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> を使ったことに起因するのは間違いありません。</p></section><section><h1>処理</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="107" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[107]</anchor-end> 
<code>cmap</code>
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字のレンダリング</anchor>のために<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>を取得する過程の1つとして参照されます。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>文字のレンダリング</anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="108" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[108]</anchor-end> 
<code>cmap</code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">写像</anchor>を引く<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">入力</anchor>となる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>は、
必ずしも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">情報交換</anchor>に使う
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode文字列</anchor>を構成する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicode符号位置</anchor>の列そのものではないことに注意が必要です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="109" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[109]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bidi</anchor> に関係して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鏡像化</anchor>のための<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>の書き換えが事前に発生していることがあります。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>書字方向依存グリフ</anchor> </sw-see></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="110" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[110]</anchor-end> 
その他 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">shaping</anchor> に属する前処理で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">符号位置</anchor>の変更が事前に発生していることがあります。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>shaping engine</anchor> </sw-see></p></section></section><section><h1>グリフから文字コードへ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="168" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[168]</anchor-end> 
<code>cmap</code> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor>への変換表です。
その逆方向、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>への変換方法は規定されていません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="169" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[169]</anchor-end> 
ところが何らかの方法で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフID</anchor>から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字コード</anchor>に変換できることを期待する処理がいくつかあります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1対1対応</anchor>が成り立たないときどうするべきなのかは不明です。</p><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>expt</anchor>, <anchor>hngl</anchor> </sw-see></p></section><section><h1>関連</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TrueType</anchor> の <code>cmap</code> と
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CIDFont</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CMap<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">CMap file</title></anchor>
は、
似たような用途ですが、
技術的にはまったくの別物です。
正式な表記は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字と小文字</anchor>で区別できますが、
俗に
cmap, CMAP, CMap 
と混用されているので、文脈で注意して区別するしかありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <cite xml:lang="ja-jp">OpenType glyph processing (part 2) - Typography | Microsoft Docs</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">alib-ms</anchor>, <time>2022-08-27T08:46:01.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://docs.microsoft.com/ja-jp/typography/develop/processing-part2#cmap-table">https://docs.microsoft.com/ja-jp/typography/develop/processing-part2#cmap-table</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;35</anchor-internal> 公式ドキュメントですが、ここでは <code>CMAP</code> になっています。
<code>cmap</code> にしないと正常動作しないと思いますが、どうなんでしょう。</p></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Character-level mirroring</anchor> では <code>cmap</code> で得られる値が <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> か検査します。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="161" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[161]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開発者ツール</anchor>で見られるエラーは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> より <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Firefox</anchor> の方が親切です。
<time>2023-08-27T13:05:20.000Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="162" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[162]</anchor-end> 
<cite xml:lang="en">gecko-dev/gfx/ots/src/cmap.cc at master · mozilla/gecko-dev · GitHub</cite>, <time>2023-08-27T13:04:47.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/mozilla/gecko-dev/blob/master/gfx/ots/src/cmap.cc">https://github.com/mozilla/gecko-dev/blob/master/gfx/ots/src/cmap.cc</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="163" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[163]</anchor-end> 
そしてエラーのより詳しい意味は <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="162" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;162</anchor-internal> のソースを見るとわかります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="166" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[166]</anchor-end> 
<cite xml:lang="en">How to decode namerecord? · Issue #956 · MicrosoftDocs/typography-issues · GitHub</cite>, <time>2024-05-25T06:02:16.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/MicrosoftDocs/typography-issues/issues/956">https://github.com/MicrosoftDocs/typography-issues/issues/956</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="167" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[167]</anchor-end> 
<cite xml:lang="en">Fonts without Microsoft-platform cmaps use Mac NameRecord · Issue #679 · libass/libass · GitHub</cite>, <time>2024-05-25T06:04:11.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/libass/libass/issues/679">https://github.com/libass/libass/issues/679</anchor-external></p></section></body></html>