<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><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"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GDEF</anchor> — Glyph Definition Table (OpenType 1.9) - Typography | Microsoft Docs</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2022-08-16T08:07:02.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/GDEF">https://docs.microsoft.com/en-us/typography/opentype/spec/GDEF</anchor-external></li></ul></refs></section><section><h1>表</h1><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> 
<code>GDEF</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="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:">部分表</anchor>はいずれも必要なときだけ記述することになっています。
1つも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>がないことも (理論上は) あります。</p></section><section><h1>文脈</h1><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>GDEF</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>も珍しくありません。</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:">級定義</anchor>は全体に適用される <code>GDEF</code> のもの以外に、
<code>GPOS</code> や <code>GPOS</code> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lookup</anchor>
にも書くことができます。特定の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lookup</anchor>
でしか使わないようなものはその場で個別に定義されるようです。</p></section><section><h1>グリフ集合</h1><section><h1>グリフ級定義</h1><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> 
<code>GDEF</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表</anchor>の
<dfn><code>glyphClassDefOffset</code></dfn>
で参照される<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ<ruby xmlns="http://www.w3.org/1999/xhtml">級<rt>きゅう</rt><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">Glyph Class Definition</rt></rubyb></dfn>
(<dfn>GlyphClassDef</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>内の<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="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> 
<code>GDEF</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表</anchor>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">version</f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1.0</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1.2</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1.3</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="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</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>として記述します。
<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:">uint16</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> となります。</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> 
<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><ul><li><dfn><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n></dfn> 未分類 </li><li><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></li><li><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2</n> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">合字グリフ</anchor></li><li><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">マークグリフ</anchor></li><li><dfn><n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n></dfn> <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部品<rt xmlns="http://www.w3.org/1999/xhtml">component</rt></rubyb>グリフ</li></ul><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="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <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>に相当するもの、
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">結合文字</anchor>に相当するもの。
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2</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>を表現するもの、
<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>の構成部品を表すもの。</comment-p><p><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> 
ここで指定された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ級</anchor>は,
<code>GPOS</code>
や
<code>GSUB</code>
の記述に用いることができます。</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> 
<code>GDEF</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表</anchor>も
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GlyphClassDef</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></section><section><h1>マーク添付級定義</h1><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> 
<code>GDEF</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表</anchor>の
<dfn><code>markGlyphSetsDefOffset</code></dfn>
で参照される<dfn><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><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">Mark Attachment Class Definition</rt></rubyb></dfn> (<dfn>MarkAttachClassDef</dfn>)
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>は、
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>マーク<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">結合マーク</title></anchor><rt xmlns="http://www.w3.org/1999/xhtml">mark</rt></rubyb><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="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> 
<code>GDEF</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表</anchor>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">version</f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1.0</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1.2</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1.3</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="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</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>として記述します。
<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:">uint16</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> となります。</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> 
<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:">3</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>を
<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="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</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:">マーク<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="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> 
ここで指定された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">マーク添付級</anchor>は,
<code>GPOS</code>
や
<code>GSUB</code>
の記述に用いることができます。</p><p><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>GDEF</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表</anchor>も
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MarkAttachClassDef</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></section><section><h1>マークグリフ集合群</h1><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> 
<code>GDEF</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表</anchor>の
<dfn><code>markAttachClassDefOffset</code></dfn>
で参照される<dfn><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">Mark Glyph Sets</rt></rubyb></dfn>
(<dfn>MarkGlyphSets</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="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> 
<code>GDEF</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表</anchor>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">version</f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1.2</n>, <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1.3</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="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> 
現在 <code>format</code> は <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</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="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> 
<code>format</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n> では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Coverage</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="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> 
位置 <var>i</var> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Coverage</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表</anchor>を使って、
第 <var>i</var> の<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>では1つの<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>に属するのとは違って、
こちらでは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><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">マーク添付級</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="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</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>は,
<code>GPOS</code>
や
<code>GSUB</code>
の記述に用いることができます。</p><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>GDEF</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表</anchor>も
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MarkGlyphSets</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分表</anchor>も必須ではなく、
必要ないなら省略して良いことになっています。</p></section></section><section><h1>添付点リスト</h1><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> 
<code>GDEF</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><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">Attachment Point List</rt></rubyb></dfn>
(<dfn><code>AttachmentList</code></dfn>)
は、
<code>GPOS</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>中で定義されるすべての<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>添付点</anchor><rt xmlns="http://www.w3.org/1999/xhtml">attachment point</rt></rubyb>と、
それに関連付けられた<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="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</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>の<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>を<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="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:">添付点リスト</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:">contour point index</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="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> 
このデータは高速処理のためなので、情報としては冗長です。
<code>GPOS</code> の複雑な<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="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> 
この情報が実態と合っていない場合にどうなるかは特に規定されていません。
処理性能が低下するかもしれませんし、
時には<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="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</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>がないことは <code>GPOS</code> を調べないと実装は知り得ないので、
空の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">添付点リスト</anchor>を <code>GDEF</code> に入れておくべきとも言えます。)
本来この情報は実装側で (必要なら) 自動生成して保持しておくべきもので、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>に含まれていても無視して良いのかも知れません。</p></section><section><h1>合字キャレットリスト</h1><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> 
<code>GDEF</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><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>キャレットリスト<rt xmlns="http://www.w3.org/1999/xhtml">Ligature Caret List</rt></rubyb></dfn>
(<dfn><code>LigatureCaretList</code></dfn>)
<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>の位置決定のための<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="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:">合字</anchor>の構成要素を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">選択</anchor>して highlight
するために使うことが出来ます。
<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="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> 
「すべて」とはいいますが、<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:">合字</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="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> 
各<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>の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">キャレット位置<rt xmlns="http://www.w3.org/1999/xhtml">caret position</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="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</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>における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基線</anchor>に対する
<var>X</var> または <var>Y</var> の値です。
<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="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>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contour point</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">index</anchor> を指定する方法、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">variable font</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><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="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:">font hinting</anchor> でズレが生じる可能性があります。
<src><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></comment-p></section><section><h1>利用例</h1><p><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>BabelStone Han</cite> :
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">glyph class</anchor>
1, 2, 3
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の一覧が入っています。 
<code>classFormat</code> 2。</p><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>花園明朝</cite> :
全文字 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">glyph class</anchor>
1
とする一覧が入っています。
<code>classFormat</code> 2。</p><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> 
<cite>Nishiki-teki</cite> :
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">glyph class</anchor>
1, 2, 3
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の一覧が入っています。 
<code>classFormat</code> 2。</p><p><code>MarkAttachClassDef</code>
も
class 0
に1つだけ入っています。
<code>classFormat</code> 1。</p><p><code>LigCaretList</code>
も入っていますが中身は空です。</p></section><section><h1>メモ</h1><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> <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:53.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#gdef-table">https://docs.microsoft.com/ja-jp/typography/develop/processing-part2#gdef-table</anchor-external></p></section></body></html>