[11] 
[[OpenType]] 
ファイルには
[[SVG]]
形式の[[グリフ]]データを格納できます。

* 仕様書

[REFS[

- [13] 
[CITE@en-us[[[SVG]] - Scalable vector graphics table (OpenType 1.9.1) - Typography | Microsoft Learn]], [[PeterCon]], [TIME[2024-05-31T17:42:32.000Z]], [TIME[2024-11-17T08:54:20.185Z]] <https://learn.microsoft.com/en-us/typography/opentype/spec/svg>

]REFS]

* [CODE[SVG ]] 表

[25] 
[CODE[SVG ]] [[表][OpenType表]]では、
[[グリフID]]に対して[[SVG文書]]を対応付けることができます。
[SRC[>>13]]

[107] 
[[グリフ]]ごとに異なる[[SVG文書]]とすることもできますし、
複数の[[グリフ]]で1つの[[SVG文書]]を共有することもできます。


[112] 
その[[フォント]]のすべての[[グリフID]]に対して [[SVG文書]]を用意しなければならないことは''ありません''。

[113] 
[CODE[SVG ]] の[[グリフ]]記述は、 同じ[[グリフID]]の [CODE[glyf]], [CODE[CFF ]], [CODE[CFF2]]
の[[グリフ]]の記述の代替となる記述を表します。両者は同じ抽象グリフの描写でなければ[RUBYB[なりません][must]]。
[SRC[>>13]]


[125] 
[[OpenType]] の他の部分と同様に、[[エラー処理]]の規定はあまりありません。ただし
[[SVG文書]]の処理については一部に規定があります。

* SVG 形式のグリフの値

[38] 
[CODE[SVG ]] における [[SVG文書]]は、
[[平文]]としてまたは [[gzip]] 符号化により記述できます。
[SRC[>>13]]

[39] 
実装はこの両方に対応しなければ[RUBYB[なりません][must]]。 [SRC[>>13]]

;; [40] 
[CODE[SVG ]] の [F[[CODE[svgDocLength]]]] で指定するのは、
符号化された状態のデータの長さであって、復号後の長さでは''ありません''。
[SRC[>>13]]

[124] 
どちらであるかを明記する方法は用意されていません。先頭バイトで区別できます。

** [CODE[SVG]] における gzip

[35] 
[[RFC 1952]] [[gzip]] 形式を使うことができます。 [SRC[>>13]]

[36] 
[[gzip]] では [[RFC 1951]] [[deflate]] 圧縮方式を使わなければ[RUBYB[なりません][must]]。
[SRC[>>13]]

[37] 
従って [[gzip]] を使う場合は先頭を [N[0x1F]] [N[0x8B]] [N[0x08]] 
としなければ[RUBYB[なりません][must]]。
[SRC[>>13]]


[123] 関連: [[SVGZ]]

* SVG の要件

** SVG の機能

[126] 
[[Web]] では普通は仕様書の最新版を使いますが、 [[OpenType]] における [[SVG]]
は特定の版が参照されています。

[127] 
[[Webブラウザー]]ではない[[フォント]]の実装も含めた[[相互運用性]]のための配慮なのでしょう。

[128] 
とはいえしかし機能を絞りながらも多くの機能が任意選択になっていて、
実際にどの機能が使えるかは実装によってまったく違い、[[相互運用性]]は悲惨な状況です。

;; [129] 仕様書が緩いから[[相互運用性]]がなくなったというよりは、
機能集合の合意形成に失敗したから仕様書がこの惨状なのでしょうが...

-*-*-


[26] 
[CODE[SVG ]] で使う [[SVG]] は、

> [SNIP[]] Scalable Vector Graphics (SVG) 1.1 (Second Edition) specification at [ASIS[http://www.w3.org/TR/SVG11][リンク]]. 

であると定められています。 [SRC[>>13]]

[27] 
現時点でそのリンク先 <http://www.w3.org/TR/SVG11> は、 >>28 に[[リダイレクト]]され、
>>29 と同じものが表示されます。
[TIME[2024-11-17T10:57:53.00Z]]


[130] 
[[SVG 1.1]] 第2版は [[W3C]] が [[SVG 1.2]] の開発に失敗した後に [[SVG 1.1]]
に立ち返って不具合修正などを施したものです。 それまでの版よりは幾分マシとはいえ、
現在の水準から見ると曖昧で品質が低い仕様書です。また、古い時代の設計で、
[CITE[HTML5]] 以後の新時代の設計に追いつこうと一部修正された [[SVG2]]
による変更 (例えば [[XLink]] からの脱却) が加わっていないものです。

[131] 
開発タイミングの関係からこれを参照する以外に選択肢がなかったとはいえ、
「最新版仕様」ではなく特定時点の仕様書を参照しているのに参照先がこれ、
というのは不安があります。


[REFS[

- [28] 
[CITE[Scalable Vector Graphics (SVG) 1.1 (Second Edition)]], [TIME[2017-10-02T10:43:18.000Z]], [TIME[2024-11-17T10:57:07.973Z]] <https://www.w3.org/TR/SVG11/>
- [29] 
[CITE[Scalable Vector Graphics (SVG) 1.1 (Second Edition)]], [TIME[2017-10-02T10:43:18.000Z]], [TIME[2024-11-17T10:57:15.782Z]] <https://www.w3.org/TR/2011/REC-SVG11-20110816/>

]REFS]

[30] 
以前の版では、

> [SNIP[]] draft [ASIS[SVG 2][リンク]] specification. [SNIP[]]

の [CODE[context-fill]] とその他の [CODE[context-*]] [[特性値]]の利用が認められていました。
[SRC[>>13]]

[33] 
ここでそのリンク先は <https://www.w3.org/TR/SVG2/> [SRC[>>31]] で、
現時点で >>32 と同じものが表示されます。
「以前の版」がどの時点のものだったかは不明です。

[34] 
現在の版ではこれら[[特性]]群の利用は[RUBYB[[[非推奨]]][deprecated]]であります。
[[適合]]実装は、これら[[特性]]群を対応しても構いませんが、
対応することは[RUBYB[必須][required]]でも[RUBYB[推奨][recommended]]でも''ありません''。
[[フォント]]におけるこれら[[特性]]群の利用は[RUBYB[強く非推奨][strongly discouraged]]です。
[SRC[>>13]]


[REFS[

- [31] 
[CITE@en[Scalable Vector Graphics (SVG) 2]], [TIME[2018-10-02T17:56:01.000Z]], [TIME[2024-11-17T10:58:29.021Z]] <https://www.w3.org/TR/SVG2/>
- [32] 
[CITE@en[Scalable Vector Graphics (SVG) 2]], [TIME[2018-10-02T17:56:01.000Z]], [TIME[2024-11-17T10:58:40.407Z]] <https://www.w3.org/TR/2018/CR-SVG2-20181004/>

]REFS]


[92] 
[[適合]]する実装は、次のものをすべて対応しなければ[RUBYB[なりません][must]]。
[SRC[>>13]]

- [94] [[gradient]] ([CODE[linearGradient]] [[要素]], [CODE[radialGradient]] [[要素]])
- [95] [[clipping path]]
- [96] [[opacity]] 特性群
- [93] 他に規定していないすべての [[SVG 1.1]] の能力

[51] 
[[適合]]する [[OpenType]] [[フォント]]は次の機能を使っては[RUBYB[なりません][must not]]。
[[適合]]する[[応用]]は無視しなければ[RUBYB[なりません][must]]。
[SRC[>>13]]

- [52] [CODE[text]] [[要素]], [CODE[font]] [[要素]], およびそれらと関連付けられた[[要素]]
- [53] [CODE[foreignObject]] [[要素]]
- [54] [CODE[switch]] [[要素]]
- [55] [CODE[script]] [[要素]]
- [56] [CODE[a]] [[要素]]
- [57] [CODE[view]] [[要素]]
- [58] [[XSL]]
- [59] [[相対単位]]: [CODE[em]], [CODE[ex]]
- [60] [CODE[imag]] [[要素]]における [[SVG]] データ
- [61] [[色プロファイル]]: [CODE[<icccolor>]] データ型,
[CODE[color-profile]] [[要素]], [CODE[color-profile]] [[特性]],
[CODE[@color-profile]]
- [62] [CODE[contentStyleType]] [[属性]]
- [63] [[CSS2システム色キーワード]]

[97] 
[[適合]]する [[OpenType]] [[フォント]]は次の機能を使っては[RUBYB[なりません][must not]]。
[SRC[>>13]]

- [98] [CODE[rgba()]]


[64] 
[[SVG文書]]は次の機能を含めて[RUBYB[構いませんが][may]]、実装は無視します。
[SRC[>>13]]

- [65] [CODE[desc]] [[要素]]
- [66] [CODE[metadata]] [[要素]]
- [67] [CODE[title]] [[要素]]

[68] 
次の機能は[[適合]]実装において[RUBY[必須][required]]の能力では''ありません''が、
[[応用]]によっては対応しているかも[RUBYB[しれません][may]]。
[[フォント]]開発者は想定対象環境で利用できるか評価する[RUBYB[べきです][should]]。
広範囲の環境での[[相互運用性]]のため利用を避ける[RUBYB[べきです][should]]。
[SRC[>>13]]

- [69] [CODE[style]] [[要素]]
- [70] [CODE[style=""]] [[属性]]
- [71] [[CSS変数]] ([[カスタム特性]]) >>91
- [72] [[媒体クエリー]]
- [73] [CODE[calc()]]
- [74] [[CSSアニメーション]] >>119
- [75] [[SVGアニメーション]] >>119
- [76] [[SVG]] [[子要素]] (SVG child elements)
- [77] [CODE[filter]] [[要素]]と関係する[[属性]] ([CODE[enableBackground]] を含む。)
- [78] [CODE[pattern]] [[要素]]
- [79] [CODE[mask]] [[要素]]
- [80] [CODE[marker]] [[要素]]
- [81] [CODE[symbol]] [[要素]]
- [82] [[XML実体]]
- [83] [CODE[image]] [[要素]]における [[JPEG]] と [[PNG]] 以外の[[画像形式]]
- [84] [[対話的]]能力 ([[イベント属性]], [CODE[zoomAndPan]] [[属性]],
[CODE[cursor]] [[特性]], [CODE[cursor]] [[要素]])

;; [85] 「SVG 子要素」って何のこと? 

;; [86] [[イベント要素]]って[[イベントハンドラー属性]]のこと?
[CODE[script]] は禁止なのに [CODE[on*]] [[属性]]は禁止ではないの?

;; [87] [[XML実体]]が禁止というのは ([[宣言]]だけしても特に何も起こらないので当たり障りないはずなので)
[[実体参照]]が使わないべきということ? だとすると[[実装]]は [[XML]]
の完全実装も要求されていない?

[88] 広く使われる想定の[[フォント]]には [[CSS]] によるスタイル付けよりも広く対応が見込まれる 
[[XML]] [[presentation attribute]] による指定が[RUBYB[推奨][recommended]]されます。
[SRC[>>13 (Note)]]

[119] 
[[CSSアニメーション]], [[SVGアニメーション]]は広範囲の配布を想定した[[フォント]]では[RUBYB[推奨されません][not recommended]]。
[SRC[>>13]]


[89] 
[[媒体クエリー]]による環境変化への対応は、対応している[[応用]]に於いても[RUBYB[推奨されません][not recommended]]。
(他の [[OpenType]] の仕組みとの[[相互作用]]が可能であるので)
[RUBYB[上位層表現フレームワーク][higher-level presentation framework]]に於いて環境変化を扱う[RUBYB[べきです][should]]。
[SRC[>>13 (Note)]]

;; [90] 具体的に言えば[[フォント]]内部で[[媒体クエリー]]で条件分岐するよりも[[フォント]]を呼び出す
[[CSS]] で [CODE[@media]] を使って [CODE[GSUB]]
その他を使うなりするのが適切ということでしょう。


[100] 
[CODE[color]] [[特性]]は [CODE[currentColor]] の値を上書きしますが、
その他に使い道はないので、 [CODE[color]] 値を設定するのは避ける[RUBYB[べき][should]]です。
[SRC[>>13 (Note)]]


** SVG 文書

[41] 
[[SVG文書]]の[[文字符号化]]は、 [[UTF-8]]
でなければ[RUBYB[なりません][must]]。
[SRC[>>13]]

[42] 
[[SVG文書]]は [[XML文書]]であることも [[HTML構文]]で記述されることもありますが、
[[OpenType]] [[フォント]]の [[SVG文書]]は [[XML文書]]でなければ[RUBYB[なりません][must]]。
[CODE[SVG ]] の [[SVG文書]]に対応する[[応用]]は [[XML文書]]に対応しなければ[RUBYB[なりません][must]]。
[[HTML構文]]にも対応した [[SVG]] 構文解析ライブラリーを使っても[RUBYB[構いません][may]]。
[SRC[>>13]]

[43] 
[CODE[SVG ]] の[[応用]]は [[XML名前空間]]に完全に対応する[RUBYB[必要はありません][not required]]。
[SRC[>>13]]

[44] 
[[SVG文書]]の[[根要素]]は [[SVG]] を[[既定名前空間]]
[CODE[http://www.w3.org/2000/svg]]
として[[宣言]]しなければ[RUBYB[なりません][must]]。
[SRC[>>13]]

;; [45] 本文で明言はされていませんが、示された実例では[[根要素]]の[[要素名]]は[[既定名前空間]]を使っています。
[SRC[>>13]]
[[XML名前空間]]への対応を必須としない趣旨からすれば、これも要件と考えるべきなのでしょうが、
なぜ規定がないのかは不明です。

[46] 
[CODE[xlink:href]] [[属性]]を使うときは、
[[根要素]]で [CODE[[[xmlns]]:xlink="[[http://www.w3.org/1999/xlink]]"]]
としなければ[RUBYB[なりません][must]]。
[SRC[>>13]]

[47] 
他の [[XLink]] の[[属性]]を文書中で使っては[RUBYB[いけません][No ... may]]。
[SRC[>>13]]

[48] 
他の[RUBYB[機構][mechanisms]]を文書中で使っては[RUBYB[いけません][No ... may]]。
他の名前空間宣言を[[要素]]に使う[RUBYB[べきではありません][no ... should]]。
[SRC[>>13]]

;; [49] 仕様書では 「No other XLink attributes or other mechanisms」
を使ってはいけないとしています。 [[XLink]] がどこに掛かっているのかやや不明瞭ですが、
「other ... or other ...」となっているので[[属性]]だけに [[XLink]]
が掛かっていると考えるのが妥当でしょう。 [[XLink]] の機能もすべて[[属性]]で、
他の機構はありません。
しかしそうすると「他の機構」とは何かがよくわかりません。
文脈を汲むなら [[SVG]] 本体機能でも [[XLink]] でもないもの全般でしょうか。
続けて他の[[名前空間宣言]]もあるべきではないとしています。
他のすべての機能が認められないのだとしたら、自動的に[[名前空間宣言]]も認められなくなるはずで、
意図がわかりません。宣言だけなら機構に入らないという解釈なのでしょうか。
機構の利用が禁止 (no ... may) なのに宣言は非推奨 (no ... should) 
と強さが違うのはよくわかりません。

;; [50] 後段はあるいは [[SVG]] や [[XLink]] のその他の形の宣言を禁じる意図もありそうですが。

** SVG 文書におけるグリフ定義

[108] 
[CODE[SVG ]] において[[グリフID]] [VAR[g]] が参照する [[SVG文書]]は、
[CODE[glyph[VAR[g]]]]
という[[ID]]を持つ[[要素]]を含まなければ[RUBYB[なりません][must]]。
ここで
[VAR[g]]
は[[零埋め]]し''ない''[[10進数]]です。
[SRC[>>13]]

[109] 
[[font engine]]
は、
当該[[要素]]が
[CODE[defs]]
[[要素]]の[[子供]]であり、
[CODE[use]] 
[[要素]]でその ID を参照したかのように[[グリフ]]を[[レンダリング]]しなければ[RUBYB[なりません][must]]。
[SRC[>>13]]

[110] 
仕様書で明文規定されているのはこれだけなのでやや曖昧ですが、例示を見ると当該[[要素]]から参照されている可能性がある、
当該[[要素]]の[[兄弟]]の [CODE[defs]] 
は含め、当該[[要素]]以外の[[グリフ]]の[[要素]]は含まない、ということになっています。
しかし当該[[要素]]以外の[[グリフ]]の[[要素]]の子孫への参照が含まれるという可能性も排除されていません。
結局 [[SVG文書]]の全体が必要になりそうに思われます。

[111] 
従って

- [CODE[svg]]
-- [CODE[defs]]
--- 元の [CODE[svg]] の[[子供]]すべて
-- [CODE[use]]

を[[レンダリング]]するのと同等、と考えるべきでしょうか。

[116] 
仕様書には [CODE[svg]] [[要素]]に [[ID]] を付与した例文もいくつかあります。
その場合は >>111 でもうまくいきません。
>>109 >>110 >>111 あたりはあくまで説明の便宜でそう書いていただけなのでしょう...

[118] 
[CODE[svg]] [[要素]]の[[属性]]も使われますし。 [SEE[ [[文字列座標]] ]]

** メモ

[132] 
[[SVG]] の処理にはいくつかの異なる方式がありますが ([[スクリプト]]を実行するかなど)、
ここで定められているのはそのいずれとも異なります。

[133] 
従って通常の [[SVG]] の処理と共通化できるところも多いとはいえ、
どの機能を有効にするかなどに多くの条件分岐が必要となります。

* 色の参照



[91] 
実装の[[CSS変数]]への対応は任意選択です (>>68) が、
[CODE[var()]]
と
[CODE[CPAL]] [[表][OpenType表]]の[[色]]を参照する[[色変数]]に対応することは[RUBYB[強く推奨][strongly recommended]]されます。
[[フォント]]は [[SVG文書]]内で独自の[[変数][CSS変数]]を定義する[RUBYB[べきではありません][should not]]。
[CODE[var()]] は[[色値]]を受け付ける[[属性]]や[[特性]]でのみ使う[RUBYB[べき][should]]で、
値の最初の項目としてのみ出現する[RUBYB[べき][should]]です。
[SRC[>>13]]

[101] 
[CODE[CPAL]] [[パレット]]に対応しない実装でも、
[CODE[var()]] 
には対応し、第2引数のフォールバック値を使うことが[RUBYB[強く推奨][strongly recommended]]されます。
広範囲の配布を想定する[[フォント]]はこの方法によって 
[CODE[CPAL]] 未対応の[[応用]]でもフォールバック値を使えます。
[SRC[>>13 (Note)]]

[102] 
[[text-layout engine]] や[[応用]]は、
各パレット entry に対して[[カスタム特性]]を定義して色値を割り当てます。
カスタム色特性は [CODE[CPAL]] [[表][OpenType表]]を含む[[フォント]]のみ定義する[RUBYB[べきです][should]]。
[[応用]]は[[カスタム特性]]の値を一般的には [CODE[CPAL]] の[[パレット]] entry を使って設定する[RUBYB[べきです][should]]が、
[[利用者]]入力その他の方法で値を割り当てることもできます。
[CODE[CPAL]] の[[パレット]]の entry から値を割り当てるときは、
通常は最初の[[パレット]]を使う[RUBYB[べき][should]]ですが、
[CODE[USABLE_WITH_LIGHT_BACKGROUND]] や
[CODE[USABLE_WITH_DARK_BACKGROUND]] のフラグが付いた[[パレット]]が[[フォント]]に含まれるときは、
そのいずれかを既定値として使えます。
[SRC[>>13]]

[103] 
いずれにせよ[[カスタム特性]]の名前は
[CODE[--color[VAR[n]]]]
の形式で、
[VAR[n]]
は[[0埋め]]しない[[10進数]]で、
[CODE[--color0]], [CODE[--color1]], ...
と
[F[[CODE[numPaletteEntries]]]] より [N[1]]
小さな値までとしなければ[RUBYB[なりません][must]]。
[SRC[>>13]]

- [104] 
[CODE[CPAL]] 色 entry が
[[shape element]] の[[特性]] [CODE[fill]] や [CODE[stroke]],
[[gradient stop element]] の [CODE[stop-color]],
[[feFlood filter element]] の [CODE[flood-color]] [[特性]]に適用されるときは、
α値は [ [N[0]], [N[1]] ]
の[[範囲]]に変換し、同じ[[要素]]の対応する[[特性]]
[CODE[fill-opacity]],
[CODE[stroke-opacity]],
[CODE[stop-opacity]],
[CODE[flood-opacity]]
に乗じなければ[RUBYB[なりません][must]]。
[SRC[>>13]]
- [105] 
実装が[[フィルター]]
[CODE[feDiffuseLighting]] や [CODE[feSpecularLighting]]
に対応する場合で[[パレット]] entry
が
[CODE[lighting-color]] [[特性]]に適用される場合は、
α値は無視されます。
[SRC[>>13]]
- [106] 
これらの形で[[要素]]の [[opacity]] 特性にα値が適用されるときでも、
[[子要素]]に[[継承]]されるのは元々の特性値です。
もっとも[[色]]の特性値を構成するα値もその[[特性]]に於いて[[継承]]されます。
[SRC[>>13]]



-*-*-

[99] 
[CODE[currentColor]] の[[初期値]]は、
[[text-layout engine]] や[[応用]]環境によって設定しなければ[RUBYB[なりません][must]]。
[[応用]]に於いて最適なものを設定できます。
一般には当該[RUBYB[文章][text]]の[[連なり]]に適用される文章[[前景色]]とすることが[RUBYB[推奨][recommended]]されます。
[SRC[>>13]]

* レンダリング

[114] 
まず通常の方法で [[text layout]] を行って[[グリフID]]の列と x, y 位置
(と [[scale]] や [[rotation]] の[[行列]])
を得ます。
次に [CODE[SVG ]] の[[グリフ]]記述があれば、
それを通常の[[グリフ]]記述のかわりに使います。
[SRC[>>13]]

[115] 
glyph ink bounding box には多少変化もあるかもしれませんが、 
[[advance width]] や [[advance height]] は変化しません。
[[line layout]] が [[bounding box]] に依存する場合を除き、
[[行]]の再度の layout は[RUBYB[必須とならないはずです][should not require]]。
[SRC[>>13]]

[117] [[座標]]については[[文字列座標系]]を参照。


[120] 
[[SVGアニメーション]], [[CSSアニメーション]]に対応した[[応用]]は、
場合によっては (例えば[[印刷]]時)、
静的なレンダリングを[RUBYB[必須][required]]とする[RUBYB[かもしれません][may]]。
静的なレンダリングは、 [[SVG文書]]中の[[アニメーション]]を無視して実行させないことで得ることにご注意
([[アニメーション]]を実行して時刻 [N[0]] の初期フレームを撮影するのではありません)。
[SRC[>>13]]

[121] 
[[advance width]], [[advance height]] は[[アニメーション]]で変化させられません。
[[bounding box]] は[[アニメーション]]で変化することがあります。
[SEE[ [[文字列座標系]] ]]
[[bounding box]] が変化するとしても、再配置は起きないので、
他の text element との衝突を防ぐために
[[advance width]] / [[advance height]]
と[[フォント]]の default line metrics
の中にとどまる[RUBYB[べきです][should]]。
[SRC[>>13]]

* 文脈

[23] 
[CODE[SVG ][SVG-in-OpenType]] [[表][OpenType表]]は必須ではありません。
[SRC[>>13]]

[24] 
[CODE[SVG ]] [[グリフ]]とは別に [CODE[glyf]], [CODE[CFF ]], [CODE[CFF2]]
のいずれかの[[グリフ]]は必須です。
[SRC[>>13]]


* 実装


[15] [CITE@en-US[CSS at-rule: `@font-face`: OpenType SVG rendering | Can I use... Support tables for HTML5, CSS3, etc]], [TIME[2024-11-17T09:03:39.000Z]] <https://caniuse.com/mdn-css_at-rules_font-face_opentype_svg>


[16] >>15 によると [[Firefox]] と [[Safari]] は対応していますが、
[[Blink]] は対応していません。
[TIME[2024-11-17T09:04:19.600Z]]

[17] 
>>18 によると [[EdgeHTML]] は対応していたようですが...

[122] 
>>18 によると [[Firefox]] は[[アニメーション]]に対応していますが、
[[EdgeHTML]] は対応していませんでした。

* 関連

[22] [CODE[SVG ]] グリフには [[variable][variable font]] や [[hint]]
は適用できません。
[SRC[>>13]]


[14] [[色フォント]], [[アニメーションフォント]]

* 歴史

** SVG Fonts

[5] [DFN[SVG Fonts]] は、 [[SVG]] を使って記述された[[フォント]]でした。

[10] 
一部の
[[Webブラウザー]]が実装していましたが、
削除されました。


[7] 
代替として、 通常の [[OpenType]] による [[Web Fonts]] を利用できます。

-*-*-

[12] 
[[SVG Fonts]] は[[スタイル]]指定の挙動が理解不能になることや、
[[OpenType]]
の
[CODE[GSUB]] / [CODE[GPOS]]
に相当する機能が欠落していて実用が困難であるとされました。
[SRC[>>2]]


[4] [CITE@en[Note how the SVG currently implemented in browsers is a mix of SVG 1.… · whatwg/html@969c45b]]
([TIME[2015-11-18 11:28:33 +09:00]] 版)
<https://github.com/whatwg/html/commit/969c45b2478d1d2d3be8564ec85dc316a53c8bcf>

[6] [CITE@ja[Henri Sivonenさんのツイート: "Today I wrote a patch to make Gecko’s HTML parser unaware of IE5 databinding, Web Forms 2.0 repetition and SVG fonts."]]
([TIME[2017-05-23 22:13:53 +09:00]])
<https://twitter.com/hsivonen/status/855048094320398336>

[8] [CITE@en[Reference SVG 2]]
([[dstorey]]著, [TIME[2018-05-18 15:05:35 +09:00]])
<https://github.com/whatwg/html/commit/7069de4fcf2f92295dded520ed5d7275addab2e7>

[9] 
[[Acid3]] に[[テスト]]がありましたが、後に削除されました。




** SVG-in-OpenType

[1] [CITE[Well, I'm Back: SVG In OpenType: A New Approach To SVG Fonts]]
( ([TIME[2013-02-01 19:25:37 +09:00]] 版))
<http://robert.ocallahan.org/2013/02/svg-in-opentype-new-approach-to-svg.html>

[2] [CITE@en[SVGOpenTypeFonts - MozillaWiki]]
( ([TIME[2013-01-28 18:41:35 +09:00]] 版))
<https://wiki.mozilla.org/SVGOpenTypeFonts>

[3] [CITE@en[For the record: Adobe's Draft 1 of the OT 'SVG ' table]]
( ([[Sairus Patel]] 著, [TIME[2011-10-28 23:42:36 +09:00]] 版))
<http://lists.w3.org/Archives/Public/public-svgopentype/2011Oct/0000.html>





[18] [CITE@ja[OpenTypeフォントにSVGアニメーションを突っ込んでみる - にせねこメモ]], [TIME[2022-08-14T15:13:28.000Z]] <https://nixeneko.hatenablog.com/entry/2017/10/31/211922>

[19] [CITE@en-US[SVG & colors in OpenType fonts - Mozilla Hacks - the Web developer blog]], [TIME[2023-08-26T12:03:56.000Z]] <https://hacks.mozilla.org/2014/10/svg-colors-in-opentype-fonts/>

[20] [CITE[SVG Glyphs in OpenType Specification]], [TIME[2017-01-23T20:46:13.000Z]], [TIME[2023-08-26T12:04:26.514Z]] <https://www.w3.org/2013/10/SVG_in_OpenType/>

[21] [CITE@en-US[SVG glyphs for OpenType Community Group]], [TIME[2023-08-26T12:04:54.000Z]] <https://www.w3.org/community/svgopentype/>
