<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="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</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>は複雑です。</p><section><h1>基線</h1><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>基線</anchor> </sw-see></p></section><section><h1>OpenType の座標</h1><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:">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>として記述されます。</p><p><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> 
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>を<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>との関係を調整したりすることになります。</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> <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="70" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[70]</anchor-end> <code>kern</code></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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <cite xml:lang="ja-jp"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GPOS</anchor> — Glyph Positioning Table (OpenType 1.9) - Typography | Microsoft Docs</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2022-09-06T11:34:46.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/opentype/spec/gpos">https://docs.microsoft.com/ja-jp/typography/opentype/spec/gpos</anchor-external></li></ul></refs><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> <cite xml:lang="ja-jp"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LTSH</anchor> - Linear Threshold (OpenType 1.9) - Typography | Microsoft Docs</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2022-09-09T12:24:42.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/opentype/spec/ltsh">https://docs.microsoft.com/ja-jp/typography/opentype/spec/ltsh</anchor-external></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> <code>OS/2<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">OS/2 (OpenType)</title></code>,
<code>post<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">post (OpenType)</title></code>,
<code>sbix</code>,
<code>STAT<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">STAT (OpenType)</title></code></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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[124]</anchor-end> 
<cite xml:lang="en-us"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">hhea</anchor> - Horizontal header table (OpenType 1.9.1) - Typography | Microsoft Learn</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2024-05-31T17:42:19.000Z</time>, <time>2024-11-27T11:22:38.342Z</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/en-us/typography/opentype/spec/hhea">https://learn.microsoft.com/en-us/typography/opentype/spec/hhea</anchor-external></li></ul></refs></section><section><h1>縦書き用座標値</h1><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:">横書き</anchor>用の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">座標</anchor>値を格納する <code>hhea</code>, <code>hmtx</code> に対して、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">縦書き</anchor>用の <dfn><code>vhea</code></dfn> (vertical header table) <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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src>
と <dfn><code>vmtx</code></dfn> (vertical metrics table) <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="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;103</anchor-internal></src> があります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="274" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[274]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor> vertical font は <code>vhea</code> と <code>vmtx</code>
が<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">必須<rt xmlns="http://www.w3.org/1999/xhtml">require</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="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;103</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="254" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[254]</anchor-end> 
<code>vhea</code> のデータは、 <code>vmtx</code> のデータと一貫していなければ<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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</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="255" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[255]</anchor-end> <code xmlns="http://www.w3.org/1999/xhtml">hhea</code> / <code xmlns="http://www.w3.org/1999/xhtml">hmtx</code> にはなぜかこれに相当する規定がありません。</comment-p><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> 
<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>vhea</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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src>、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</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> とも <code>vhea</code>
がないからといって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">縦書き</anchor>表示に特別支障となることは無さそうです。
<time>2023-11-11T11:24:49.00Z</time></p><p><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> 
<code>vhea</code> には <code>vmtx</code> 用の<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> とも <code>vmtx</code> が存在しなくてもエラーにはならないようです。
(一方 <code>hmtx</code> がないとエラーになります。)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="273" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[273]</anchor-end> 
vertical metrics coordinate system <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="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;103</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="275" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[275]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb><anchor>縦書き原点</anchor><rt xmlns="http://www.w3.org/1999/xhtml">vertical origin</rt></rubyb></f></dfn>の
y <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">座標<rt xmlns="http://www.w3.org/1999/xhtml">coordinate</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:">tsb</anchor> + <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bounding box</anchor> の top (= y の最大)
です。
<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="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;103</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="276" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[276]</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>も含めた上端ということになります。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="283" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[283]</anchor-end> 
実装は、 <code>CFF </code> または <code>CFF2</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>VORG</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表</anchor>がある場合は、
<code>VORG</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="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;103</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="279" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[279]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">縦書き原点</anchor>のy座標の算出に必要な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">外接箱</f>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">上辺</f>の値は
<code>glyf</code> には入っています (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;62</anchor-internal>) が、
<code>CFF </code> や <code>CFF2</code> には入っていないので計算が必要です (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="278" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;278</anchor-internal>)。
この計算を省略して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>が正確性と性能を向上させられるよう、
<dfn><code>VORG</code></dfn>
<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">optional</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="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;103</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="281" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;281</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="280" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[280]</anchor-end> 
必須ではないので<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>の設計者はこれを含めるか含めないかを決められますし、
実装者はどちらのケースも想定する必要があることになります。</comment-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="284" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[284]</anchor-end> 
正確性というのは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">丸め</anchor>誤差などが想定されます。 <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="281" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;281</anchor-internal></src></comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="282" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[282]</anchor-end> 
<code>VORG</code> は <code>CFF </code> や <code>CFF2</code> の <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>でのみ<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:">TrueType outline</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:">フォント</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="281" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;281</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="286" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[286]</anchor-end> 
<code>VORG</code>
の
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">defaultVertOriginY</code></f></dfn>
や
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">vertOriginY</code></f></dfn>
では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">縦書き原点</f>のY座標を<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">design coordinate system</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="281" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;281</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="287" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[287]</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:">垂直原点</f>の x <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">座標<rt xmlns="http://www.w3.org/1999/xhtml">coordinate</rt></rubyb>は、
<code>vmtx</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="281" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;281</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="288" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[288]</anchor-end> 
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">縦書き<rt xmlns="http://www.w3.org/1999/xhtml">vertical writing</rt></rubyb>実装は、
<code>BASE</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>を <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">望ましい<rt xmlns="http://www.w3.org/1999/xhtml">desired</rt></rubyb><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">垂直基線</anchor>に対して適切に
x 方向で揃えるよう使うことが<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="281" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;281</anchor-internal></src></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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[78]</anchor-end> 
<cite xml:lang="en-us"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">vhea</anchor> — Vertical header table (OpenType 1.9.1) - Typography | Microsoft Learn</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2024-05-31T17:42:16.000Z</time>, <time>2024-11-26T11:33:55.547Z</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/en-us/typography/opentype/spec/vhea">https://learn.microsoft.com/en-us/typography/opentype/spec/vhea</anchor-external></li><li><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> <cite xml:lang="en-us"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">vmtx</anchor> — Vertical metrics table (OpenType 1.9.1) - Typography | Microsoft Learn</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2024-05-31T17:42:32.000Z</time>, <time>2024-11-26T11:35:50.160Z</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/en-us/typography/opentype/spec/vmtx">https://learn.microsoft.com/en-us/typography/opentype/spec/vmtx</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="281" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[281]</anchor-end> 
<cite xml:lang="en-us"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VORG</anchor> — Vertical origin table (OpenType 1.9.1) - Typography | Microsoft Learn</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2024-05-31T17:42:17.000Z</time>, <time>2024-12-03T04:05:51.540Z</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/en-us/typography/opentype/spec/vorg">https://learn.microsoft.com/en-us/typography/opentype/spec/vorg</anchor-external></li></ul></refs></section><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TrueType</anchor> 
では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の位置は基準となる
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pen point</anchor>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pen position</anchor>)
からの<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>配置</anchor><rt xmlns="http://www.w3.org/1999/xhtml">placement</rt></rubyb>と<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>前進</anchor><rt xmlns="http://www.w3.org/1999/xhtml">advance</rt></rubyb>の2値で決まります。
すなわち、
現在の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pen point</anchor> から<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>テキスト</anchor><rt xmlns="http://www.w3.org/1999/xhtml">text</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>を置きます。
そして次の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pen point</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="299" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[299]</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>では
<dfn><code>horiAdvance</code></dfn>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">縦書き</anchor>では
<dfn><code>vertAdvance</code></dfn>
と呼んでいます。
<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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="300" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[300]</anchor-end> 
同じく説明がありませんが、例示の図では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">side bearing</anchor>
のことを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">横書き</anchor>では
(<dfn><code>horiBearingX</code></dfn>, <dfn><code>horiBearingY</code></dfn>),
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">縦書き</anchor>では
(<dfn><code>vertBearingX</code></dfn>, <dfn><code>vertBearingY</code></dfn>)
と呼んでいます。
<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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></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:">TrueType</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:">X軸</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">縦書き</anchor>では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Y軸</anchor>の1次元値です。
<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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></p><ul><li><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>では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">配置</anchor>量は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">left side bearing</anchor> (<code>horiBearingX</code>)
となります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進</anchor>量は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">advance width</anchor> (<code>horiAdvance</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</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:">pen point</anchor> から右へ右へと並べられていきます。</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> 
<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>vertBearingY</code>
となります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進</anchor>量は <code>vertAdvance</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</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:">pen point</anchor> から下へ下へと並べられていきます。</li></ul><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TrueType</anchor> では、
<code>kern</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>を使って2つの<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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</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>量に <code>kern</code> による調整量を足し合わせることで適切なスペースに調整できます。</p><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor> では、
<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>を使って<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:">X軸</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Y軸</anchor>の2次元で指定できます。
値は<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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></p><ul><li><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>操作で指定する (X,Y) 値は、
<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">Cartesian coordinate system</rt></rubyb>
(<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">左側の基線に<anchor>原点</anchor><rt xmlns="http://www.w3.org/1999/xhtml">origin at the baseline of the left side</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src><ul><li><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> 
<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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></li></ul></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> 
<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:">X軸</anchor>方向に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">advance width</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:">X軸</anchor>方向に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">advance width</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</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:">Y軸</anchor>方向に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">advance height</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></ul><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="297" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[297]</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>の値を指定することになります。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="298" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[298]</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>の値を指定することになります。</p></example><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="315" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[315]</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:">前進幅</f>と<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進高</f>がありますが、それぞれ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">横書き</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">縦書き</anchor>のときに使われ、
<strong xmlns="http://www.w3.org/1999/xhtml">行の進行方向に対する位置決定においては</strong>同時に使われることはありません。
(<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="317" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;317</anchor-internal> も参照。)</comment-p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="301" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[301]</anchor-end> 
仕様書では明確な説明がありませんが、例示の図では、</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="302" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[302]</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:">pen position</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アルファベット基線</anchor>の左側に置かれ、
<code>horiBearingY</code> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基線</anchor>から <code>maxY</code> まで、
<code>horiBearingX</code> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pen position</anchor> から <code>minX</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="303" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[303]</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:">pen position</anchor> は左右中央を通る<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基線</anchor>の上側に置かれ、
<code>vertBearingX</code> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基線</anchor>から <code>minX</code> まで、
<code>vertBearingY</code> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pen position</anchor> から <code>maxY</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="304" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[304]</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:">pen position</anchor> の Y 座標と <code>horiBearingY</code> の値や、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">縦書き</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pen position</anchor> の X 座標と <code>vertBearingX</code> の値は、
どこを選んでも得られる結果は変わらないので、
実装上都合がいい位置だとみなすことができます。</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="305" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[305]</anchor-end> 
なので仕様書に説明がないことは技術的には問題ないのですが、
読者の仕様書の読解と技術の理解のためにはよろしくありません。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="316" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[316]</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>の上下方向の配置は、 Y 座標の位置を揃えることによって行われます。
基本的には Y = 0 が<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:">前進高</f>は関係しません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="317" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[317]</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>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進幅</f>の半分の位置となります。
基本的には<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="318" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[318]</anchor-end> この<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進幅</f>は、 <code xmlns="http://www.w3.org/1999/xhtml">GPOS</code> による調整の適用前の値です。</comment-p><hr></hr><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>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>では更に<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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></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> 
<code>GPOS</code> による位置調整は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lookup</anchor> によって一致条件と一致した場合の挙動が記述されますが
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>lookup</anchor> </sw-see>、
同じ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>に対する複数の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lookup</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</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="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:">機能<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">フォント機能</title></anchor>1により <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X軸</anchor>方向に3前進し、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">機能<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">フォント機能</title></anchor>2により <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Y軸</anchor>方向に6前進し、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">機能<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">フォント機能</title></anchor>3により <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X軸</anchor>方向に-2前進すると、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X軸</anchor>方向には1前進し、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Y軸</anchor>方向には6前進することになります。</p></example><ul><li><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> <code>GPOS</code> <code>lookupType</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:">グリフ</anchor>に対して、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X軸</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Y軸</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></li><li><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> <code>GPOS</code> <code>lookupType</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2</n> では、
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:">グリフ</anchor>に対して、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X軸</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Y軸</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></li></ul><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> 
<code>GPOS</code> では <code>kern</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">機能<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">フォント機能</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:">機能<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="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:">JstfMax lookup</anchor> では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">justification</anchor> 
において加除する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X軸</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Y軸</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>の最大値を指定できます。
実装はこれを使って 0 <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="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;67</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:">結合文字</anchor>関係固有の挙動は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">結合文字</anchor>のレンダリングの項を参照。</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="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> 
<cite xml:lang="ja-jp"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JSTF</anchor> — Justification Table (OpenType 1.9) - Typography | Microsoft Docs</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2022-09-08T13:21:33.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/opentype/spec/jstf#justification-language-system-table">https://docs.microsoft.com/ja-jp/typography/opentype/spec/jstf#justification-language-system-table</anchor-external></li></ul></refs><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> 
<cite xml:lang="ja">GPOSのCursive Attachment Positioningについて - にせねこメモ</cite>, <time>2023-11-06T08:49:59.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://nixeneko.hatenablog.com/entry/2017/01/14/200258">https://nixeneko.hatenablog.com/entry/2017/01/14/200258</anchor-external></p><p><code>curs</code> </p></section><section><h1>添付点</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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor> では、
<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>を使って<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ添付点<rt xmlns="http://www.w3.org/1999/xhtml">glyph attachment point</rt></rubyb></dfn>による<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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></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>と<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">cursive</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</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> 
<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>は0個以上の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">添付点<rt xmlns="http://www.w3.org/1999/xhtml">attachment point</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</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="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <code>GPOS</code> <code>lookupType</code> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> 
(cursive attachment positioning)
では、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">entry point</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">anchor</anchor>
と
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">exit point</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">anchor</anchor>
を設定できます。
両
point <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">anchor</anchor>
は、
位置 
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(<anchor>X軸</anchor>座標と <anchor>Y軸</anchor>座標の組)</weak>
を指定します。
<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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</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> 
2つの<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:">exit point</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:">entry point</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:">line-layout direction</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>を調整します。
結果的に2つ目の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>が移動されて 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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">cross-stream direction</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 位置を揃えます。
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">RIGHT_TO_LEFT</code></f> が <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> の場合、
2つ目の<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">RIGHT_TO_LEFT</code></f> が <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1</n> の場合、
1つ目の<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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">entry point</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">exit point</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">RIGHT_TO_LEFT</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>が<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">RIGHT_TO_LEFT</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:">グリフ</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> 
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">RIGHT_TO_LEFT</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:">lookup</anchor> の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">lookupFlag</code></f> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ビット欄</anchor>の第0ビットです。
<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="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;28</anchor-internal></src>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lookup</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">RIGHT_TO_LEFT</code></f>
<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">lookupType</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:">グリフ</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="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>にはあまり関係ありません。
が巷の<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">lookupType</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:">グリフ</anchor>が収容された
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lookup</anchor>
にこのフラグが設定されていたりするようです。
(<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">lookupType</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">3</n> 以外では指定されていてもいなくても動作は変わりません。)</comment-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="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:">entry point</anchor> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">exit point</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:">lookup</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 は記述できませんから、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">書字方向</anchor>ごとの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lookup</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><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> 
<code>GPOS</code> <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">lookupType</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">4</n>
(Mark-to-Base Attachment Positioning, MarkBasePos)
は、
<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 point</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></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> 
<code>GPOS</code> <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">lookupType</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">5</n>
(Mark-to-Ligature Attachment Positioning, MarkLigPos)
は、
<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 point</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></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> 
<code>GPOS</code> <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">lookupType</code></f> <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">6</n>
(Mark-to-Mark Attachment Positioning, MarkMarkPos)
は、
基底となる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">マークグリフ</anchor> mark2 とそれに付加する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">マークグリフ</anchor> mark1
の組み合わせについて、
両<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>にそれぞれの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">anchor point</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</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 point</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">component</rt></rubyb>があるかもしれないので、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">anchor point</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></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> <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 point</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:">pen point</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src></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 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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</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 point</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="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:">マークグリフ</anchor> mark2 
に対して同じようにします。
<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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</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="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:">lookup</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:">lookup</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:">lookup</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><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> 
複数の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lookup</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="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal></src>、
適用されるべき
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">entry point</anchor> anchor, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">exit point</anchor> 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 point</anchor>
が重複するときどう処理するべきかは不明です。
そのような指定は意味を持ちませんから、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>はそのような <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lookup</anchor> を持つべきではないのでしょう。</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> 
<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 point</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 point</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 point</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="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>と<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> 
との衝突は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lookup</anchor> の設計の誤りではなく、
優先度が仕様上明確でないことの問題です。</comment-p><p><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:">JstfMax lookup</anchor> で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">添付点</anchor>を指定することは
<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="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;103</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:">JstfMax lookup</anchor> の性質はなじまないので、
利用ではないかもしれません。 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">justification</anchor> によって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">添付点</anchor>が変化するべきなら、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JstfMax lookup</anchor> ではなく有効または無効にするべき <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lookup</anchor>
として別に記述できます。 <sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>JSTF</anchor> </sw-see>)</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="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> 
<cite xml:lang="ja-jp">OpenType layout common table formats (OpenType 1.9) - Typography | <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Microsoft</anchor> Docs</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2022-09-07T09:25: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://docs.microsoft.com/ja-jp/typography/opentype/spec/chapter2#lookupTable">https://docs.microsoft.com/ja-jp/typography/opentype/spec/chapter2#lookupTable</anchor-external></li></ul></refs></section><section><h1>可変フォント</h1><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>HVAR</anchor>, <anchor>VVAR</anchor>, <anchor>MVAR</anchor> </sw-see></p></section></section><section><h1>グリフの大きさ</h1><section><h1>外接箱</h1><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</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">bounding box</rt></rubyb></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="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;52</anchor-internal></src></p><p><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:">TrueType outline</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>glyf</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>データによります。
<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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;103</anchor-internal></src></p><p><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> 
<code>glyf</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:">TrueType outline</anchor> <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">xMin</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yMin</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMax</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yMax</code></f></dfn>
の4つの <code>int16</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="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;44</anchor-internal></src></p><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TrueType outline</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>のこの4値は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の点 
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(<anchor>on-curve point</anchor> も <anchor>off-curve point</anchor> も)</weak>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">座標</anchor>データから直接得ます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">rasterrizer</anchor> が計算した <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">phantom point</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="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;44</anchor-internal></src></p><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TrueType outline</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:"><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><ruby xmlns="http://www.w3.org/1999/xhtml">形<rt>けい</rt></ruby><rt xmlns="http://www.w3.org/1999/xhtml">bounding rectangle</rt></rubyb></dfn>は、
左下 (<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMin</code></f>, <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yMin</code></f>)、
右上 (<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMax</code></f>, <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yMax</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="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;44</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="278" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[278]</anchor-end> 
<code>CFF </code> や <code>CFF2</code> の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">外接箱</f>は、
<code>CharString</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="103" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;103</anchor-internal></src></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> 
<code>head<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">head (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>は、
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMin</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yMin</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMax</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yMax</code></f></dfn>
の4つの <code>int16</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="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;52</anchor-internal></src></p><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>head<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">head (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>のこの4値は、
<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</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="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;52</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="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>により定義される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">外接箱</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">outline</anchor>を含むことが保証されます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">outline</anchor> に接するとは限りません。
<src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;44</anchor-internal></src></comment-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="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</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>の2種類の語が使われていますが、表記揺れで同じ概念と思われます。</comment-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:">contour</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> などの値になります。</comment-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> 
<code>hhea</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMaxExtent</code></f></dfn>
があります。
lsb + (xMax - xMin)
の最大値を表します。
<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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="263" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[263]</anchor-end> 
<code>vhea</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yMaxExtent</code></f></dfn>
があります。
tsb + (yMax - yMin)
の最大値を表します。
<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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</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> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMaxExtent</code></f>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contour</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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="246" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[246]</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:">outline</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>の tight bounding rectangle
は、
<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>head</code>
の
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMin</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMax</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yMin</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yMax</code></f>
は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実現値</anchor>の derived glyph outline を包含することもあれば、
そうでないこともあります。
非<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>を包含する bounding rectangle
が必要な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実現値</anchor>の derived glyph outline を処理して決定する<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="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;52</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="277" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[277]</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>の情報が相違するとき、
どうなるのかは <cite xmlns="http://www.w3.org/1999/xhtml">OpenType</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>に問題が生じる可能性がありそうです。
場合によってはバッファー溢れなど<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー</anchor>に悪影響を及ぼしそうですから、
実装者は注意が必要です。</comment-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="285" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[285]</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 xmlns="http://www.w3.org/1999/xhtml">VORG</code> (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="279" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;279</anchor-internal>) 
として明示することができます。
<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 xmlns="http://www.w3.org/1999/xhtml">OpenType</cite>
仕様書にも明記されています。</comment-p></section><section><h1>side bearing</h1><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> 
<dfn>side bearing</dfn> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contour</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="107" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[107]</anchor-end> <dfn>left side bearing</dfn> (<dfn>LSB</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>) 
から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contour</f> の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">左端</f>までの長さです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contour</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="108" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[108]</anchor-end> <dfn>right side bearing</dfn> (<dfn>RSB</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>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進幅</f>の位置から
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contour</f> の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">右端</f>までの長さです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contour</anchor> が<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進幅</f>より右まで伸びているときは、<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="292" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[292]</anchor-end> <dfn>top side bearing</dfn> (<dfn>TSB</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>) 
から<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contour</f> の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">上端</f>までの長さです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contour</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="293" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[293]</anchor-end> <dfn>bottom side bearing</dfn> (<dfn>BSB</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>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進高</f>の位置から
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contour</f> の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">下端</f>までの長さです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contour</anchor> が<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進幅</f>より下まで伸びているときは、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">負</anchor>の値になります。</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="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:">contour</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> などの値になります。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="256" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[256]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">side bearing</anchor> は <dfn>sidebearing</dfn> とも綴ります。
<cite>OpenType</cite> 仕様書でも一貫性無く混用されています。
一応、単体のときは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">side bearing</anchor> と綴りがち、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">修飾語</anchor>になるときは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">sidebearing</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>hmtx</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">lsb</code></f></dfn>
があります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">left side bearing</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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="296" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[296]</anchor-end> 
<code>vmtx</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">topSideBearing</code></f></dfn>
があります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">top side bearing</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="281" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;281</anchor-internal></src></p><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lsb</f> の値と<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">xMin</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:">局所座標系</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="243" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[243]</anchor-end> 
<code>glyf</code> の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMin</code></f> と <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lsb</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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="244" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[244]</anchor-end> 
<code>head</code> の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">flags</code></f> の第1ビットは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">left side bearing</anchor> point at <var>x</var> = 0 
を意味するとされています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TrueType</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">rasterizer</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="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;52</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> 
<code>CFF </code> や <code>CFF2</code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>データには 
<code>xMin</code> = <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lsb</anchor>, <code>xMax</code> を明示的には含みません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">side bearing</anchor> は <code>CharString</code> データに暗示的に含まれていて、
<code>CFF </code> / <code>CFF2</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">rasterizer</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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="252" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[252]</anchor-end> 
しかし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">layout engine</anchor> によっては
<code>CFF </code>
や
<code>CFF2</code>
の場合でも
<code>hmtx</code>
の
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lsb</f>
を使うかも<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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src></p><p><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>生成ツールは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">left side bearing</anchor> 
と
<code>CFF </code> / <code>CFF2</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">outline</anchor> の
<code>CharString</code> が暗示する <code>xMin</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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</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="253" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[253]</anchor-end> 
仕様書の意図が不明瞭なのですが、 <code xmlns="http://www.w3.org/1999/xhtml">CFF </code> や <code xmlns="http://www.w3.org/1999/xhtml">CFF2</code>
の場合でも
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lsb</f>
を使って<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">CFF2</code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">可変フォント</anchor>については前者の挙動が求められています (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="245" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;245</anchor-internal>)。</comment-p><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> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMin</code></f> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lsb</anchor> と等しくなるように<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ座標</anchor>を取ると
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">scaler</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="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;44</anchor-internal></src>
すべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>がそうである場合には
<code>head<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">head (OpenType)</title></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="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;52</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="251" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[251]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TrueType outline</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:">left side bearing</f> は 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMin</code></f>
と等しくなければ<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません<rt xmlns="http://www.w3.org/1999/xhtml">must</rt></rubyb>。
<code>head</code>
の
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">flags</code></f>
の第1ビットを設定しなければ<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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;52</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:">default instance</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lsb</f>
は
<code>glyf</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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="245" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[245]</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:">non-default instance</anchor>
の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">side bearing</anchor>
は
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">default instance</anchor>
と異なることがあります。
<code>gvar</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表</anchor>を使って
interpolate された <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">phantom point</anchor>
座標から得るか、
または
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">default instance</anchor>
の値に <code>HVAR</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表</anchor>の
variation data
を適用して得ることができます。
<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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src>
<code>CFF2</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">outline</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">variable font</anchor> の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">left side bearing</anchor> 
は
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">non-default instance</anchor>
では
<code>hmtx</code> と <code>HVAR</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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src></p><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">right side bearing</f> は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">left side bearing</f> と<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進幅</f>から求められます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bottom side bearing</f> は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">top side bearing</f> と<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進高</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="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;44</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="250" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[250]</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:">lsb</f> と違ってこれらは<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="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TrueType outline</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">advance width</anchor> (<dfn><var>aw</var></dfn>)
と
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">left side bearing (<dfn xmlns="http://www.w3.org/1999/xhtml"><var>lsb</var></dfn>)
は、
<anchor>TrueType rasterizer</anchor> 
の計算する<anchor>グリフ</anchor>の
<anchor>phantom point</anchor> 
から得られます。
<code xmlns="http://www.w3.org/1999/xhtml">hmtx</code> <anchor>表<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">OpenType表</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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src></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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">right side bearing</anchor> (<dfn><var>rsb</var></dfn>) は、次の式によります。
<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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src></p><figure class="math"><p><var>rsb</var> = <var>aw</var> - (<var>lsb</var> + <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMax</code></f> - <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMin</code></f>)</p></figure><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> 
<var>pp1</var>, <var>pp2</var> を <var>lsb</var>, <var>rsb</var> を制御する
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TrueType</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">phantom point</anchor>
とするとき、
その <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">X軸</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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src></p><figure class="math"><p><var>pp1</var> = <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMin</code></f> - <var>lsb</var></p><p><var>pp2</var> = <var>pp1</var> + <var>aw</var></p></figure><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>head</code> の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">flags</code></f> の第1ビットが設定されているときは、
すべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>に於いて <var>pp1</var> = 0 であり、
各<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">xMin</code></f> と <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>left side bearing</anchor></f> は等しくなければ<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="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;52</anchor-internal></src></p><p><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:">グリフ</anchor>が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contour</anchor> を持たないとき、 <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMin</code></f>, <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xMax</code></f>
は定義されません。
<code>hmtx</code> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">left side bearing</anchor> は <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">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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="294" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[294]</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:">top side bearing</f>
は、
ideographic glyph の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">縦組み<rt xmlns="http://www.w3.org/1999/xhtml">vertical composition</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>に対して計測します。
<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="281" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;281</anchor-internal></src></p><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>hhea</code>
には
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">minLeftSideBearing</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">minRightSideBearing</code></f></dfn>
があり、
<code>hmtx</code>
のうち <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contour</anchor>
がある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">lsb</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">rsb</anchor> = aw - (lsb + xMax - xMin)
の最小値をそれぞれ表します。
<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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="262" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[262]</anchor-end> 
<code>vhea</code>
には
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">minTopSideBearing</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">minBottomSideBearing</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:">top side bearing</anchor> measurement,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bottom side bearing</anchor> measurement
の最小値を<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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="257" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[257]</anchor-end> 
<code>vhea</code>
の最小
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">top side bearing</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bottom side bearing</anchor>
と
<code>vmtx</code>
の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">top side bearing</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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src></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> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">minLeftSideBearing</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">minRightSideBearing</code></f>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">contour</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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal></src></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="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> 
<cite xml:lang="en-us"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">head</anchor> - Font header table (OpenType 1.9.1) - Typography | Microsoft Learn</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2024-05-31T17:42:29.000Z</time>, <time>2024-11-26T12:48:16.060Z</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/en-us/typography/opentype/spec/head">https://learn.microsoft.com/en-us/typography/opentype/spec/head</anchor-external></li></ul></refs></section><section><h1>前進</h1><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>は、
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb><anchor>前進幅</anchor><rt xmlns="http://www.w3.org/1999/xhtml">advance width</rt></rubyb></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb><anchor>前進高</anchor><rt xmlns="http://www.w3.org/1999/xhtml">advance height</rt></rubyb></f></dfn>の
2つの<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>前進</anchor><rt xmlns="http://www.w3.org/1999/xhtml">advance</rt></rubyb>の値を持ちます。</p><p><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> 
素朴には、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">原点</anchor> (0, 0) と (<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進幅</f>, <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進高</f>) 
が<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="119" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[119]</anchor-end> 実際には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基線</anchor>の関係で <var xmlns="http://www.w3.org/1999/xhtml">y</var> 方向はもう少し複雑です。</comment-p><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:">文字のレンダリング</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>を<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進幅</f>または<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進高</f>の分だけ移動します。
(より厳密には <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal>)</p><p><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> 
現在の一般的な<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>は<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進幅</f>や<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進高</f>の範囲に収まるように設計するのが普通です。
つまり<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">外接箱</f>は<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進幅</f>や<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進高</f>の範囲より小さくなります。</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> 
しかしそうでない<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="123" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[123]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進幅</f>, <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進高</f>は<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:">kerning</anchor> 機能のような他の仕組みを使うことになります。</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> 
<code>hmtx</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">advanceWidth</code></f></dfn>
があります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進幅</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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="295" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[295]</anchor-end> 
<code>vmtx</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">advanceHeight</code></f></dfn>
があります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進高</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="281" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;281</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> 
<code>hdmx</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:">advance width</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="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;41</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> 
<code>CFF </code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CFF</anchor> 1) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">outline</anchor> は<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進幅</f>を持ちます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PostScript</anchor> processor はこれを使います。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</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="113" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[113]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Font Collection</anchor>
は、
同じ 
<code xmlns="http://www.w3.org/1999/xhtml">CFF </code>
であっても異なる <code xmlns="http://www.w3.org/1999/xhtml">hmtx</code>
によって異なる<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進幅</f>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>に設定できます。
<src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src></comment-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> 
<code>CFF2</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">outline</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">advance width</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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src></p><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TrueType outline</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">advance width</anchor>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TrueType rasterizer</anchor> 
の計算する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">phantom point</anchor> 
から得られます。
<code>hmtx</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>からも得られます。
<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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src></p><p><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">variable font</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="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;44</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;52</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>等から計算する必要があります。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">side bearing</anchor> は
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">phantom point</anchor>
を使って、あるいは <code>HVAR</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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src>。
<code>CFF2</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">outline</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">variable font</anchor> の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">advance width</anchor>
は
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">non-default instance</anchor>
では
<code>hmtx</code> と <code>HVAR</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="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;43</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="289" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[289]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb>前進高<rt xmlns="http://www.w3.org/1999/xhtml">advance height</rt></rubyb></f></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">垂直原点</f>の y 座標から初めて、下方向へと<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進<rt xmlns="http://www.w3.org/1999/xhtml">advance</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="281" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;281</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="290" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[290]</anchor-end> 
前進した<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">終点<rt xmlns="http://www.w3.org/1999/xhtml">endpoint</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>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">垂直原点</f>の y 座標となります。
<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="281" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;281</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="291" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[291]</anchor-end> <code xmlns="http://www.w3.org/1999/xhtml">vkrn</code> などによって調整されます。</comment-p><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>hhea</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">advanceWidthMax</code></f></dfn>
があります。
<code>hmtx</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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="261" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[261]</anchor-end> 
<code>vhea</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">advanceHeightMax</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> measurement の最大値を<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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="258" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[258]</anchor-end> 
<code>vhea</code>
の最大<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前進高</anchor>と
<code>vmtx</code>
の<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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="247" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[247]</anchor-end> 
<code>head</code>
の
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">flags</code></f>
の第4ビットは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">instruction</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">alter</rt></rubyb>する<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>に<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">might</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="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;52</anchor-internal></src></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="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> 
<cite xml:lang="ja-jp"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">hdmx</anchor> - Horizontal Device Metrics (OpenType 1.9) - Typography | Microsoft Docs</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2022-09-08T06:01:54.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/opentype/spec/hdmx">https://docs.microsoft.com/ja-jp/typography/opentype/spec/hdmx</anchor-external></li><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> 
<cite xml:lang="ja-jp"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">glyf</anchor> - Glyf data table (OpenType 1.9) - Typography | Microsoft Docs</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2022-09-08T06:52: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/opentype/spec/glyf">https://docs.microsoft.com/ja-jp/typography/opentype/spec/glyf</anchor-external></li><li><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> 
<cite xml:lang="en-us"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">hmtx</anchor> - Horizontal metrix table (OpenType 1.9.1) - Typography | Microsoft Learn</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2024-05-31T17:42:26.000Z</time>, <time>2024-12-02T13:07:00.661Z</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/en-us/typography/opentype/spec/hmtx">https://learn.microsoft.com/en-us/typography/opentype/spec/hmtx</anchor-external></li></ul></refs></section><section><h1>幅</h1><history 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="142" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[142]</anchor-end> 
<code>OS/2</code> に <dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xAvgCharWidth</code></f></dfn> があります。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p xmlns="http://www.w3.org/1999/xhtml"><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> 
版 <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> から <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2</n> までは、仕様書が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Basic Latin</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">xAvgCharWidth</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p xmlns="http://www.w3.org/1999/xhtml"><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> 
<sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">a</sw-ch> から <sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">z</sw-ch> までと<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:">1000</n> で割ったものが
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xAvgCharWidth</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</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="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:">英語</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小文字</anchor>の出現頻度から決めた重みと思われます。</comment-p><p xmlns="http://www.w3.org/1999/xhtml"><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> 
版
<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">xAvgCharWidth</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:">零幅</anchor>ではない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">escapement</anchor> = 文字送り (<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">幅<rt xmlns="http://www.w3.org/1999/xhtml">width</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>は<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p xmlns="http://www.w3.org/1999/xhtml"><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> 
しかしこの計算方法に従っていない<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p xmlns="http://www.w3.org/1999/xhtml"><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> 
<code>OS/2</code> の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">版</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:">2</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</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="148" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[148]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">versioningの失敗</anchor>案件ですね。</comment-p><p xmlns="http://www.w3.org/1999/xhtml"><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> 
<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>で、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">xAvgCharWidth</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</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="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>の平均幅を設定するものとの認識があった
(もしかしたらその前提の実装もあった) ということでしょうね。</comment-p><p xmlns="http://www.w3.org/1999/xhtml"><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> 
実装者は、<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">layout</rt></rubyb>の計算においてこの値に依存しないよう<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強く推奨<rt xmlns="http://www.w3.org/1999/xhtml">strongly recommended</rt></rubyb>されています。
<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">xAvgCharWidth</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:">前進幅</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p></history><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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[143]</anchor-end> 
<cite xml:lang="en-us"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OS/2</anchor> - OS/2 and Windows metrics table (OpenType 1.9.1) - Typography | Microsoft Learn</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2024-05-31T17:42:30.000Z</time>, <time>2024-11-27T12:28:48.399Z</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/en-us/typography/opentype/spec/os2">https://learn.microsoft.com/en-us/typography/opentype/spec/os2</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="314" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[314]</anchor-end> 
<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="154" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[154]</anchor-end> 
<code>OS/2</code>
には
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">ySubscriptXSize</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">ySubscriptYSize</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">ySuperscriptXSize</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">ySuperscriptYSize</code></f></dfn>
があります。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></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:">小書き</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">subscript</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">superscript</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">recommended</rt></rubyb>される水平 (X) / 垂直 (Y)
サイズを<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></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:">正</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:">OS/2</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><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> 
推奨されるサイズが numerics とその他など2つあるときは、 numeric size
とする<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><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>OS/2</code>
には
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">ySubscriptXOffset</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">ySubscriptYOffset</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">ySuperscriptXOffset</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">ySuperscriptYOffset</code></f></dfn>
があります。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><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:">小書き</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">recommended</rt></rubyb>される水平 (X) / 
垂直 (Y) の offset を<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></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> 
X
は、
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>正立</anchor><rt xmlns="http://www.w3.org/1999/xhtml">upright</rt></rubyb>の<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> です。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">傾き</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">italic</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">slant</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><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> 
<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>で代用によって<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小書き</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>を代替できるのですが、
size の値が代替<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">recommended</rt></rubyb>の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">公称幅<rt xmlns="http://www.w3.org/1999/xhtml">nominal width</rt></rubyb>となります。
size の値が<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:">em</anchor> サイズに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">写像</anchor>されます。
offset の値が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小書き</anchor>の直前の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の glyph escapement point
からの<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>の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">推奨<rt xmlns="http://www.w3.org/1999/xhtml">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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="239" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[239]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">可変フォント</anchor>においては <code>MVAR</code>
に
<dfn><code>sbxo</code></dfn>, <dfn><code>sbxs</code></dfn>,
<dfn><code>sbyo</code></dfn>, <dfn><code>sbys</code></dfn>,
<dfn><code>spxo</code></dfn>, <dfn><code>spxs</code></dfn>,
<dfn><code>spyo</code></dfn>, <dfn><code>spys</code></dfn>
があります。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p></section><section><h1>SVG 字形配置</h1><p><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> 
<code>SVG </code>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SVG文書</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="87" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[87]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SVG文書</anchor>の default units は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント設計単位</f>と<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">等しい<rt xmlns="http://www.w3.org/1999/xhtml">equivalent</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="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;85</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="272" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[272]</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:">SVG</anchor> 側では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小数</anchor>を扱うことができ、
<code xmlns="http://www.w3.org/1999/xhtml">SVG </code>
に於いても特に制約がないので、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OpenType</anchor> のこの制限を超えて細かい指定ができることになります。</comment-p><p><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SVG</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">原点</anchor> (0, 0) は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>側の design grid の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">原点</anchor>に揃えます。
<var>y</var> = 0 は、 text layout に使う既定の水平<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="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;85</anchor-internal></src></p><p><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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>側では <var>y</var> 軸は下方向が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正</anchor>となりますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SVG</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">座標系</anchor>では <var>y</var> 軸は上方向が<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="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;85</anchor-internal></src>
従って <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SVG文書</anchor>単体で表示するのと上下逆転することになります。</p><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> 
このため字形の大部分は <var>x</var> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正</anchor>、<var>y</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>に配置されることがあります。
一般的な図形編集では <var>x</var> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正</anchor>、<var>y</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>に配置するので、
例えば <code>svg</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の <code>viewBox</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>を
<code>0 1000 1000 1000</code>
のように設定して、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SVG</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">座標系</anchor>を <var>y</var> 軸方向に
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1000</n>
ずらしておく技法があります。
あるいは対象となる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>に
<code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">transform</anchor>=&quot;translate(0,-1000)&quot;</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>内の形式へと適切に移すことが期待されています。
<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="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;85</anchor-internal> (Note, 例示)</src></p><p><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 xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SVG文書</anchor>の initial viewport の size は、 em square です。
すなわち、 <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>head<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">head (OpenType)</title></code> の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">unitsPerEm</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="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;85</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="91" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[91]</anchor-end> 
<code>svg</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の <code>viewBox</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-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="90" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;90</anchor-internal> と異なるときは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SVG</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者座標系</anchor>の scale transformation の効果を持つことになります。
<code>svg</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の <code>height</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>や <code>width</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>の scale transformation の効果を持つことになります。
<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="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;85</anchor-internal></src></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> 
initial viewport の size は em square ですが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">viewport</anchor> を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">clip</anchor> しては<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません<rt xmlns="http://www.w3.org/1999/xhtml">must not</rt></rubyb>。
<code>svg</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>は <code>clip</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">特性</anchor>の値が <code>auto</code>、
<code>overflow</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">特性</anchor>の値が <code>visible</code>
があるものとみなします。
<code>svg</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>に <code>clip</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">特性</anchor>や <code>overflow</code>
<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>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>は <code>svg</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>に
<code>clip</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">特性</anchor>や <code>overflow</code> <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="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;85</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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">advance width</anchor> は <code>hmtx</code> の、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">advance height</anchor> は <code>vmtx</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="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;85</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="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:">グリフ</anchor>の場合と共通です。</comment-p><p><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:">SVGアニメーション</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSSアニメーション</anchor>に対応している場合でも、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の advance は<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 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="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;85</anchor-internal></src></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>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bounding box</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>内に明示的には記述されません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bounding box</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>の “ink” bounding box
を使う<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきです<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>。
これは animated rendering と static rendering で違うかもしれません。
<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="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;85</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> 
<code>hmtx</code> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">left side bearing</anchor>,
<code>vmtx</code> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">top side bearing</anchor>,
<code>head<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">head (OpenType)</title></code> の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">flags</code></f> の第1ビットは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SVG</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="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;85</anchor-internal></src></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="85" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[85]</anchor-end> 
<cite xml:lang="en-us">SVG - Scalable vector graphics table (OpenType 1.9.1) - Typography | Microsoft Learn</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2024-05-31T17:42:32.000Z</time>, <time>2024-11-18T08:09:48.421Z</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/en-us/typography/opentype/spec/svg">https://learn.microsoft.com/en-us/typography/opentype/spec/svg</anchor-external></li></ul></refs></section><section><h1>選択と hit testing</h1><p><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> 
少なくても <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> では、 <code>OS/2</code> の 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinAscent</code></f>
と
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinDescent</code></f>
の<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="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:">縦書き</anchor>の左右位置にも影響しているのかいないのか。
<sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>基線</anchor> </sw-see></p></section><section><h1>ブロック軸方向の位置と大きさ</h1><section><h1>基線</h1><p><sw-see xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"> <anchor>基線</anchor> </sw-see></p></section><section><h1>ascender と descender</h1><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> 
<code>hhea</code> には
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">ascender</code></f></dfn>
と
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">descender</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:">typographic ascent</anchor>
と
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">typographic descent</anchor>
を表します。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Apple</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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal></src></p><p><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>OS/2</code>
には
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoAscender</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoDescender</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:">typographic ascender</anchor>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">typographic descender</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src>
<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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal></src></p><p><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> 
新たな text-layout 実装は <code>OS/2</code> の方が<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">推奨<rt xmlns="http://www.w3.org/1999/xhtml">recommended</rt></rubyb>されます。
<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">consistent layout</rt></rubyb>のため対象の応用の動作を評価して双方を使う<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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="234" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[234]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">可変フォント</anchor>においては <code>MVAR</code>
に
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypo<var>*</var></code></f>
に対応する
<dfn><code>hasc</code></dfn>, <dfn><code>hdsc</code></dfn>
があります。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="259" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[259]</anchor-end> 
<code>vhea</code> の <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1.0</n> 版には
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">ascent</code></f></dfn>
と
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">descent</code></f></dfn>
があります。
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>中央線</anchor><rt xmlns="http://www.w3.org/1999/xhtml">centerline</rt></rubyb>から<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">前行<rt xmlns="http://www.w3.org/1999/xhtml">previous line</rt></rubyb>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">descent</anchor>、
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">次行<rt xmlns="http://www.w3.org/1999/xhtml">next line</rt></rubyb>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ascent</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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="265" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[265]</anchor-end> 
<code>vhea</code> の <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1.1</n> 版には
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">vertTypoAscender</code></f></dfn>
と
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">vertTypoDescender</code></f></dfn>
があります。
vertical typographic ascender,
vertical typographic descender
を表します。
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">垂直中央<anchor>基線</anchor><rt xmlns="http://www.w3.org/1999/xhtml">vertical center baseline</rt></rubyb>から
CJK / ideographic glyph の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">設計空間<rt xmlns="http://www.w3.org/1999/xhtml">design space</rt></rubyb> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ideographic em box</anchor>)
の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">右辺<rt xmlns="http://www.w3.org/1999/xhtml">right edge</rt></rubyb>,
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">左辺<rt xmlns="http://www.w3.org/1999/xhtml">left edge</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>で表したものです。
<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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="234" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[234]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">可変フォント</anchor>においては <code>MVAR</code>
に
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">ascent</code></f> / <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">descent</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypo<var>*</var></code></f>
に対応する
<dfn><code>vasc</code></dfn>, <dfn><code>vdsc</code></dfn>
があります。
<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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="184" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[184]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoAscender</code></f> - <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoDescender</code></f>
が
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">unitsPerEm</code></f>
と等しいことは<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一般的な要件<rt xmlns="http://www.w3.org/1999/xhtml">general requirement</rt></rubyb>では<em>ありません</em>。
<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:">default line spacing</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="185" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[185]</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:">CJK</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">sTypoAscender</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoDescender</code></f>
の値は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ideographic em-box</anchor>
の上辺 (top),
下辺 (bottom)
を記述するものでなければ<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません<rt xmlns="http://www.w3.org/1999/xhtml">required</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="266" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[266]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">vertTypoAscender</code></f> と <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">vertTypoDescender</code></f>
は、通常
<mfrac xmlns="http://www.w3.org/1998/Math/MathML"><mtext><code xmlns="http://www.w3.org/1999/xhtml">head</code> の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">unitsPerEm</code></f></mtext><mtext>2</mtext></mfrac>,
−<mfrac xmlns="http://www.w3.org/1998/Math/MathML"><mtext><code xmlns="http://www.w3.org/1999/xhtml">head</code> の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">unitsPerEm</code></f></mtext><mtext>2</mtext></mfrac>
に設定します。
<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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src></p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="205" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[205]</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:">ascender</anchor> が、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基線</anchor>と等しいか下方向に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">descender</anchor> があります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="206" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[206]</anchor-end> 
この「普通」と違う状態がどの程度許されるのかは定かではありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="207" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[207]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">descender</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="208" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[208]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">descender</anchor> の方が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ascender</anchor> より上に来るようなケースはどうなのでしょう。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="306" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[306]</anchor-end> 
Windows ascender / descender
まで含めて3つの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">横書き</anchor> ascender / descender 
が (座標軸の関係で正負の違いがあるのを除けば) 同じ値のフォントもあれば、
違う値のフォントもあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="307" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[307]</anchor-end> 
Windows 以外の2つの ascender / descender は定義文を素直に読むと同じ値になりそうなものですが、
実際には微妙に違った値になっていることもあります。何かの互換性の問題でそうなっているのでしょうか。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="308" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[308]</anchor-end> 
<code>hhea</code> のと Windows metrics が同じ値なのに typographic metrics 
だけが違う値になっていることがあります。
その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>の場合は typographic metrics が間違っているようでした。
<code>USE_TYPO_METRICS</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>制作ソフトウェアで2つの metrics だけが変更され typographic metrics
は変更されずに残ったのでしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="309" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[309]</anchor-end> 
こういう事案もあるので新しい実装は単純に typographic metrics だけを見るというわけにもいかないらしく悩ましいですね。</p></section><section><h1>行高</h1><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> 
<code>hhea</code> には
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">lineGap</code></f></dfn>
があり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">typographic line gap</anchor>
を表します。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Apple</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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal></src></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:">負</anchor>の値は、 <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> として扱う legacy platform があります。
<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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal></src></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> 
<code>OS/2</code>
には
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoLineGap</code></f></dfn>
があり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">typographic line gap</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src>
<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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</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> 
新たな text-layout 実装は <code>OS/2</code> の方が<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">推奨<rt xmlns="http://www.w3.org/1999/xhtml">recommended</rt></rubyb>されます。
<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">consistent layout</rt></rubyb>のため対象の応用の動作を評価して双方を使う<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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="235" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[235]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">可変フォント</anchor>においては <code>MVAR</code>
に
<dfn><code>hlgp</code></dfn>
があります。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="260" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[260]</anchor-end> 
<code>vhea</code>
の
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1.0</n>
版には
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">lineGap</code></f></dfn>
がありますが、
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">予約<rt xmlns="http://www.w3.org/1999/xhtml">reserved</rt></rubyb>とされ
<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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="267" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[267]</anchor-end> 
<code>vhea</code>
の
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1.1</n>
版には
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">vertTypoLineGap</code></f></dfn>
があり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>の
vertical typograohic gap
を表します。
<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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="269" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[269]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">可変フォント</anchor>においては <code>MVAR</code>
に
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">lineGap</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoLineGap</code></f>
に対応する
<dfn><code>vlgp</code></dfn>
があります。
<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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</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="270" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[270]</anchor-end> 予約されている <code xmlns="http://www.w3.org/1999/xhtml">lineGap</code> と対応関係にあるこの値をどのように使えるのかは定かではありませんが。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="210" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[210]</anchor-end> 
line gap は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">負</anchor>の値にできます。それが何を意味するか、 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="129" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;129</anchor-internal> 以外には明言がありません。
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="129" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;129</anchor-internal> および他に説明がないことから常識的に類推すれば、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">正</anchor>の値の時と反対方向の「gap」
が生じるか、 <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> とみなすかのどちらかが認められる挙動であるものの、
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0</n> とみなすのは好ましからざる古い挙動である、という感じでしょうか。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="182" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[182]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoAscender</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoDescender</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoLineGap</code></f>
は組み合わせて
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">横書き</anchor>用の)
<dfn>default line spacing</dfn>
を決定する<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="181" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[181]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">ascender</code></f> / <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">descender</code></f> / <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">lineGap</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinAscent</code></f> / <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinDescent</code></f>
は
legacy platform 実装が platform-specific の挙動で使っていたために、
これらは後方互換性の要件に縛られており、
実装を超えた一貫した layout が実現できません。
一方
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoAscender</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoDescender</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoLineGap</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:">文書</anchor>を typographically correct で可搬な形で配置できることを意図したものです。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="183" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[183]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">fsSelection</code></f>
の
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">USE_TYPO_METRICS</code></f></dfn> (第7ビット)
は、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypo<var>*</var></code></f>
と
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWin<var>*</var></code></f>
のどちらで 
default line metrics
を決めるかを指定します。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="186" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[186]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">USE_TYPO_METRICS</code></f>
が設定されている場合、
<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">sTypoAscender</code></f> - <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoDescender</code></f> + <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoLineGap</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:">default line spacing</anchor>
として使うことが<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強く推奨されます<rt xmlns="http://www.w3.org/1999/xhtml">strongly 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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="231" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[231]</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">USE_TYPO_METRICS</code></f>
を設定する<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="196" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[196]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypo<var>*</var></code></f>
と
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWin<var>*</var></code></f>
のどちらで 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">default line spacing</anchor>
を決めるか
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">USE_TYPO_METRICS</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:">フォント</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="230" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[230]</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:">default line metrics</anchor>
は常に
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypo<var>*</var></code></f>
で設定される<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="232" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[232]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">可変フォント</anchor>では
<code>hhea</code>
の
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">ascender</code></f> / <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">descender</code></f> / <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">lineGap</code></f>,
は
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypo<var>*</var></code></f>
と同じ値に設定する<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="209" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[209]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">default line spacing</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="268" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[268]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>は、 
(<code>vhea</code> の <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1.1</n> 版の)
<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>の
single spaced vertical text
の
recommended line spacing
を、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ideo embox width</anchor> + <code>vhea</code> の <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">vertTypoLineGap</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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src></p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="311" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[311]</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:">Chrome</anchor> で <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">USE_TYPO_METRICS</code></f> を設定し<em>ない</em>と、
Windows descender から Windows ascender までが<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字列の選択</anchor>の対象範囲となります。
また、表示位置も (おそらく) その垂直中央で揃えられます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">行高</anchor>はその高さになるわけではないようですが、
同じ文書の他のフォントの影響なのか、それとも他の ascender / descender
の影響なのか調べていません。
<time>2025-02-02T07:42:33.900Z</time></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="313" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[313]</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:">hit testing</anchor> の範囲でもあるために、
前後の<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="312" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[312]</anchor-end> 
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="311" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;311</anchor-internal> 設定<em>する</em>とこの奇妙な挙動はなくなり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基線</anchor>揃え(?)で適切な位置に字形が表示され、選択範囲も想定される<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">行高</anchor>
(typo ascender / descender の範囲?) になります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="310" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[310]</anchor-end> 
<cite xml:lang="en">Font metrics settings for desktop and web fonts — TypeDrawers</cite>, <time>2025-02-02T07:29:13.000Z</time>, <time>2025-02-02T07:39:15.828Z</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://typedrawers.com/discussion/2805/font-metrics-settings-for-desktop-and-web-fonts">https://typedrawers.com/discussion/2805/font-metrics-settings-for-desktop-and-web-fonts</anchor-external></p></section><section><h1>フォント高</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="187" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[187]</anchor-end> 
<code>OS/2</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinAscent</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinDescent</code></f></dfn>
があります。
「Windows ascender」 metric,
「Windows descender」 metric
を<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="238" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[238]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">可変フォント</anchor>においては <code>MVAR</code>
に
<dfn><code>hcla</code></dfn>, <dfn><code>hcld</code></dfn>
があります。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="188" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[188]</anchor-end> 
これらには
clipping region
の<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="189" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[189]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoAscender</code></f> / <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoDescender</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">ascender</code></f> / <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">descender</code></f>
とよく似ていますが、大きな違いは描画の限界を示すことです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="201" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[201]</anchor-end> 
また、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypoDescender</code></f> / <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">descender</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:">正</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">usWinDescent</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:">負</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</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:">Windows</anchor> では
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinAscent</code></f>
と <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinDescent</code></f> 
を使って
maximum black height を決定します。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor>
はこの両者の距離を Font Height
といいます。
<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="99" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;99</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="190" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[190]</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:">GDI</anchor> 実装では、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinAscent</code></f>
と <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinDescent</code></f> 
が
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TrueType</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">rasterrizer</anchor> の bitmap surface の size
を決定するために使われます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GDI</anchor>
は
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TrueType</anchor> glyph outline がこの範囲外にはみ出した時切り抜き (clip)
します。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="191" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[191]</anchor-end> 
切り抜きが好ましからざるときは、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yMax</code></f> <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">yMin</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">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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="199" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[199]</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">usWinAscent</code></f>
と <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinDescent</code></f> 
を
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windows &quot;ANSI&quot; character set</anchor>
のすべての<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>の
<code>yMax</code> / <code>yMin</code>
(の最大・最小?)
に当たる値とすることを<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提案<rt xmlns="http://www.w3.org/1999/xhtml">suggested</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="200" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[200]</anchor-end> 
新しいフォントでは、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinAscent</code></f>
と <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinDescent</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:">グリフ</anchor>や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">mark</anchor> positioning
に必要になる追加分の高さも考慮するべきです。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</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="202" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[202]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="193" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;193</anchor-internal> の通り既定の位置を基に切り抜きの範囲は決まりますから、
切り抜きに関して言えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">マーク</anchor>が上下に追加されることは特別な配慮は不要です。
しかし <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="197" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;197</anchor-internal> のような行とみなされる範囲に<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="233" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[233]</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">usWinAscent</code></f>
と <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinDescent</code></f> 
は<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">推奨<rt xmlns="http://www.w3.org/1999/xhtml">recommended</rt></rubyb>される clipping rectangle
を指定するために使う<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</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:">Windows</anchor> は
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yMax</code></f> と <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yMin</code></f>
の外側の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pixel</anchor>
をくり抜きます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">TrueType</anchor> instruction は actual scaled and rounded values と異なる
Font Height を生じることがあって、
Font Height を厳密に <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yMax</code></f> と <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yMin</code></f> に置くと
「lost pixel」
が生じることになります。
<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="99" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;99</anchor-internal></src></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> この grid fitting の lost pixel 問題を避けるために <dfn><code>VDMX</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>に修正した高さを記述できます。
<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="99" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;99</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="192" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[192]</anchor-end> 
<code>VDMX</code> があって current device aspect ratio と rasterization size に対するデータが存在するとき、
<code>VDMX</code> のデータが
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinAscent</code></f>
と <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinDescent</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="193" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[193]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinAscent</code></f>
と <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinDescent</code></f> 
の指定する範囲は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の既定の位置に対するものです。
<code>GPOS</code> や <code>kern</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</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="194" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[194]</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:">GDI</anchor> の実装の挙動として説明されているということは、
他の実装はこれに従う必要はないということでしょうか。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="195" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[195]</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>の中には、
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinAscent</code></f>
と <f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWinDescent</code></f> 
から
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">default line spacing</anchor>
を決めるものがあります。これは<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">強く非推奨<rt xmlns="http://www.w3.org/1999/xhtml">strongly discouraged</rt></rubyb>です。
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypo<var>*</var></code></f>
から決める<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="197" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[197]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sTypo<var>*</var></code></f>
を使って
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">default line spacing</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">usWin<var>*</var></code></f>
を使って clipping region の size を決定できます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>によっては
clipping region
を使って編集時に再描画するべき display surface の部分を決めたり、
text が選択されたときに選択<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">usWin<var>*</var></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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</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="198" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[198]</anchor-end> ということは clipping してレンダリングされてしまうことを防ぐために余裕を持たせてあまりに大きな値を
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWin<var>*</var></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:">行</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-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="197" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;197</anchor-internal> のような仕様書の書き方だとそこまで考えないで実装してしまいそうです。。。
従って安全のため
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usWin<var>*</var></code></f>
は
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">default line spacing</anchor>
とそうかわらないように指定するべきということになりそうです。</comment-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="99" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[99]</anchor-end> 
<cite xml:lang="en-us"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">VDMX</anchor> - Vertical Device Metrics (OpenType 1.9.1) - Typography | Microsoft Learn</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2024-05-31T17:42:16.000Z</time>, <time>2024-11-26T11:21:58.885Z</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/en-us/typography/opentype/spec/vdmx">https://learn.microsoft.com/en-us/typography/opentype/spec/vdmx</anchor-external></li></ul></refs></section><section><h1><code>vertical-align</code> </h1><p><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> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS</anchor> の <code>vertical-align</code> (<code>baseline-shift</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="84" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[84]</anchor-end> その移動量は <code>&lt;length&gt;</code> か <code>&lt;percentage&gt;</code> で、後者のときは
<code>line-height</code> に対する割合となります。</p></section><section><h1>文字高</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="203" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[203]</anchor-end> 
<code>OS/2</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sxHeight</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sCapHeight</code></f></dfn>
があります。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="237" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[237]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">可変フォント</anchor>においては <code>MVAR</code>
に
<dfn><code>xhgt</code></dfn>, <dfn><code>cpht</code></dfn>
があります。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="204" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[204]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sxHeight</code></f>
は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">基線</anchor>と
non-ascending な<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">approximate height</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:">metric</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="216" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[216]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sCapHeight</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:">大文字</anchor>の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">近似高<rt xmlns="http://www.w3.org/1999/xhtml">approximate height</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:">metric</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="211" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[211]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sxHeight</code></f>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sCapHeight</code></f>
は通常は<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">書体<rt xmlns="http://www.w3.org/1999/xhtml">type</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="212" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[212]</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>の変換などでそれが叶わないときは、
<sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0078</sw-cc> <sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">x</sw-ch>,
<sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0048</sw-cc> <sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">H</sw-ch>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor>の
unscaled で unhinted な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">グリフ</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bounding box</anchor>
の上辺 (top) と等しく設定する<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="213" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[213]</anchor-end> 
<sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0078</sw-cc>, <sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+0048</sw-cc> の<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>
とする<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="219" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[219]</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="220" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[220]</anchor-end> 
<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-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="213" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;213</anchor-internal>)
があり得ます。前者になることはあまりないので、さほど問題にはならないのでしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="214" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[214]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sxHeight</code></f>
が指定されている場合は、フォント<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">置換<rt xmlns="http://www.w3.org/1999/xhtml">substitution</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>の見かけの大きさに近似できます。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="215" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[215]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sCapHeight</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:">大文字</anchor>高で<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">書体<rt xmlns="http://www.w3.org/1999/xhtml">type</rt></rubyb>サイズを指定する<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">系<rt xmlns="http://www.w3.org/1999/xhtml">system</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="217" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[217]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">sCapHeight</code></f>
は<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">揃え用<rt xmlns="http://www.w3.org/1999/xhtml">alignment</rt></rubyb>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">metric</anchor> としても使えます。
例えば <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">drop capital</anchor> の上辺 (top) を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">text</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">sCapHeight</code></f>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">metric</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</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="218" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[218]</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>では必ずしも有意義でないことには注意が必要です。)</comment-p></section><section><h1>線</h1><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> 
<code>OS/2</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yStrikeoutSize</code></f></dfn>
があります。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></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> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yStrikeoutSize</code></f>
には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">打ち消し線</anchor> (strikeout stroke) の厚さ (thickness) を<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><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> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yStrikeoutSize</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">should</rt></rubyb>。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">OS/2</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><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> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yStrikeoutSize</code></f>
の値は通常は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">em dash</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></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> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yStrikeoutSize</code></f>
は
<code>post</code>
の underline thickness
と一致する<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></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> 
<code>OS/2</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yStrikeoutPosition</code></f></dfn>
があります。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><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> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">yStrikeoutPosition</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:">打ち消し線</anchor> (strikeout stroke) の上辺 (top) の位置
(<dfn>strikeout position</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>の上、<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></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:">strikeout position</anchor>
は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">em dash</anchor> と揃えることが<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提案されます<rt xmlns="http://www.w3.org/1999/xhtml">suggested</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="170" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[170]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">strikeout position</anchor>
は<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">標準文字<rt xmlns="http://www.w3.org/1999/xhtml">standard character</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>、
従って <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">crossbar</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</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="171" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[171]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">crossbar</anchor> について特に説明はありませんが、一般的解釈によれば
<sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">e</sw-ch> や <sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">t</sw-ch> や <sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">A</sw-ch> のような字形内の横線のことをいいます。
標準文字というのもよくわかりませんが、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">em dash</anchor> のような記号、句読点類を除いた一般的な
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">letter</anchor> などを指すのでしょうか。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="236" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[236]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">可変フォント</anchor>においては <code>MVAR</code>
に
<dfn><code>strs</code></dfn>, <dfn><code>stro</code></dfn>
があります。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="176" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[176]</anchor-end> 
<code>post</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">underlinePosition</code></f></dfn>
があります。
<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="174" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;174</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="177" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[177]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">underlinePosition</code></f>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">下線</anchor>の上辺 (top) の <var>y</var> 座標の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提案<rt xmlns="http://www.w3.org/1999/xhtml">suggested</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="174" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;174</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="178" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[178]</anchor-end> 
<code>post</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">underlineThickness</code></f></dfn>
があります。
<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="174" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;174</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="179" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[179]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">underlineThickness</code></f>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">下線</anchor>の厚み (thickness) の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">提案<rt xmlns="http://www.w3.org/1999/xhtml">suggested</rt></rubyb>値です。
通常は <sw-cc xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">U+005F</sw-cc> <sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">_</sw-ch> の厚みと一致する<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">べきで<rt xmlns="http://www.w3.org/1999/xhtml">should</rt></rubyb>、
<code>OS/2</code> の strikeout thickness とも一致するべきです。
<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="174" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;174</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="180" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[180]</anchor-end> 従って <sw-ch xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">_</sw-ch> と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">em dash</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><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="241" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[241]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">可変フォント</anchor>においては <code>MVAR</code>
に
<dfn><code>undo</code></dfn>, <dfn><code>unds</code></dfn>
があります。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p></section></section><section><h1>ブロック軸と成す角度</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="172" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[172]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">斜体</anchor>を考慮した配置: <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="161" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;161</anchor-internal></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="173" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[173]</anchor-end> 
<code>post</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">italicAngle</code></f></dfn>
があります。
<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="174" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;174</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="175" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[175]</anchor-end> 
<code>italicAngle</code>
は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">italic</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>で表します。
<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>となります。
<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="174" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;174</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="242" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[242]</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:">variation instance</anchor> でこれに相当する値は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">variation instance</anchor> を選択するのに使った <code>slnt</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">user coordinates</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="174" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;174</anchor-internal></src></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="174" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[174]</anchor-end> 
<cite xml:lang="en-us"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">post</anchor> — PostScript Table (OpenType 1.9.1) - Typography | Microsoft Learn</cite>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PeterCon</anchor>, <time>2024-05-31T17:42:18.000Z</time>, <time>2024-11-28T11:59:35.253Z</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/en-us/typography/opentype/spec/post#underlineThickness">https://learn.microsoft.com/en-us/typography/opentype/spec/post#underlineThickness</anchor-external></li></ul></refs><section><h1>caret</h1><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>hhea</code>,
<code>vhea</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">caretSlopeRise</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">caretSlopeRun</code></f></dfn>
があります。
<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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">cursor</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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal></src>,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">caret</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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">slope</anchor> を <mfrac xmlns="http://www.w3.org/1998/Math/MathML"><mtext>rise</mtext><mtext>run</mtext></mfrac> として表すとされます。
<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">caretSlopeRise</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">caretSlopeRun</code></f> を <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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src>
<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">caretSlopeRise</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">caretSlopeRun</code></f> を <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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">可変フォント</anchor>に於いては <code>MVAR</code>
に
<dfn><code>hcrs</code></dfn> / <dfn><code>hcrn</code></dfn>,
<dfn><code>vcrs</code></dfn> / <dfn><code>vcrn</code></dfn>
があります。
<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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="264" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[264]</anchor-end> 
<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>縦書き</anchor>フォント<rt xmlns="http://www.w3.org/1999/xhtml">vertical font</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:">caret</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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src></p><p><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>hhea</code>,
<code>vhea</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">caretOffset</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:">slanted</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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal></src>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">slanted</anchor> glyph 上の 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="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src>) 
の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">見栄えが最も良くなる<rt xmlns="http://www.w3.org/1999/xhtml">best appearance</rt></rubyb>ために<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ずらす<rt xmlns="http://www.w3.org/1999/xhtml">shifted</rt></rubyb>べき量を表します。
非 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">slanted</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> とします。
<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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</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> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">可変フォント</anchor>に於いては <code>MVAR</code>
に
<dfn><code>hcof</code></dfn>, <dfn><code>vcof</code></dfn>
があります。
<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="124" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;124</anchor-internal>, <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="78" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;78</anchor-internal></src></p></section></section><section><h1>フォントサイズ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="248" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[248]</anchor-end> 
<code>head</code>
に
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">lowestRecPPEM</code></f></dfn>
があります。
<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="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;52</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="249" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[249]</anchor-end> 
最小可読サイズを<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><anchor>画素</anchor><rt xmlns="http://www.w3.org/1999/xhtml">pixel</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="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;52</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="271" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[271]</anchor-end> 
欄名から推察するに 1 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">em</anchor> の長さを <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">pixel</anchor> 単位で表したものなのでしょう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="221" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[221]</anchor-end> 
<code>OS/2</code>
には
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usLowerOpticalPointSize</code></f></dfn>,
<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usUpperOpticalPointSize</code></f></dfn>
があります。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="222" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[222]</anchor-end> 
複数の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">optical style</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="223" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[223]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usLowerOpticalPointSize</code></f>
は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>が設計されている size の範囲の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">下端値<rt xmlns="http://www.w3.org/1999/xhtml">lower value</rt></rubyb>です。
指定された値は範囲に<em>含まれます</em>。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="228" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[228]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usUpperOpticalPointSize</code></f>
は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>が設計されている size の範囲の<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">上端値<rt xmlns="http://www.w3.org/1999/xhtml">upper value</rt></rubyb>です。
指定された値は範囲に<em>含まれません</em>。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="226" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[226]</anchor-end> 
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usLowerOpticalPointSize</code></f> &lt;
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usUpperOpticalPointSize</code></f>
でなければ<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">なりません<rt xmlns="http://www.w3.org/1999/xhtml">must</rt></rubyb>。
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usUpperOpticalPointSize</code></f> の最小値は <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2</n> です。
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usLowerOpticalPointSize</code></f> の最大値は <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFFFE</n>,
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><code xmlns="http://www.w3.org/1999/xhtml">usUpperOpticalPointSize</code></f> の最大値は <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFFFF</n> です。
<n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFFFF</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="225" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[225]</anchor-end> 
同じ typographic family における他の optical size variant の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>で上端値が下端値となっていることが期待されます。
一連の optical size variant <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォント</anchor>群のうち optical size が最小の<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">usLowerOpticalPointSize</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">should</rt></rubyb>、各<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>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="227" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[227]</anchor-end> 
複数の optical size variants で設計されていない<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">usLowerOpticalPointSize</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">usUpperOpticalPointSize</code></f>
を <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">0xFFFF</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="224" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[224]</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:">TWIPs</anchor> で、 1 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Twip</anchor> = <mfrac xmlns="http://www.w3.org/1998/Math/MathML"><mtext>1</mtext><mtext>20</mtext></mfrac> ポイント = <mfrac xmlns="http://www.w3.org/1998/Math/MathML"><mtext>1</mtext><mtext>1440</mtext></mfrac> インチです。
<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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="229" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[229]</anchor-end> 
これらの欄は <code>STAT</code> によって<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">上書き<rt xmlns="http://www.w3.org/1999/xhtml">superseded</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="240" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[240]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">可変フォント</anchor>において直接対応するものはありません。
異なる size を対象とする variation は、
<code>opsz</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">variation axis</anchor> で実装することになっています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">可変フォント</anchor>が <code>opsz</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">variation axis</anchor>
に対応するときは、
これらの欄は <code>opsz</code> 軸の <code>fvar</code> 表の
<code>minValue</code> と <code>maxValue</code> と同じ値にすることが<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">できます<rt xmlns="http://www.w3.org/1999/xhtml">can</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="143" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;143</anchor-internal> (<i xmlns="http://www.w3.org/1999/xhtml">Note</i>)</src></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> <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="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:">Adobe Font Metrics File Format</anchor></p></section><section><h1>メモ</h1></section></body></html>