[2] OpenType の機能では、 文字 (グリフ) の体系は用字系と言語系の2段階で識別されます。 >>1
[12] 用字系は、 関連する文字を集めたものです。 用字系は1つかいくつかの言語で使われるかもしれないものです。 >>11
[13] フォントは1つの用字系にだけ対応することもできますし、 いくつもの用字系に対応することもできます。 >>11
[14] OpenType Layout フォントにおいては、 用字系はタグで識別されます。
[20]
GSUB
表や
GPOS
表では用字系タグに
DFLT
を指定できます。
用字系特有ではない機能を定義するために使います。
>>18
[21]
応用は、
対象テキストの用字系についての用字系表が存在していない場合や、
対象テキストが特定の用字系を持たないとき (例えば記号のみ含む場合)
に、
DFLT
用字系表を使うべきです。
>>18
[24]
OpenType は、言語は用字系を使って書かれるものだから
DFLT
用字系には既定以外の言語系用の指定はあるべきではない、
としつつも、そのような指定は認められるもので、
応用もそれに対応するべきだとしています。
>>18
[36]
Bangla が beng
,
Bangla v.2 が bng2
のように、
「v.2」に別の用字系タグが割り当てられたものがいくつかあります。
>>33
beng
, bng2
deva
, dev2
gujr
, gjr2
guru
, gur2
knda
, knd2
mlym
, mlm2
mymr
, mym2
orya
, ory2
taml
, tml2
telu
, tel2
[47]
このうち
mymr
は推奨されず、
Myanmar
の Unicode 符号化に対応するフォントは
mym2
を使うべきとされます。
>>33
[51]
lao
,
nko
,
vai
は SPACE
を使います。
'yi '
(空欄に見える部分は U+00A0
U+00A0
) と提示されていて、
2つの空白文字が表示されるように NBSP
を使うが、実際には SP
であると説明されています。 >>33[55]
Musical Symbols を表す musc
があります。 >>33
[56]
Mathematical text layout を表す math
があります。
math layout に関連する機能のため math layout engine が使う想定であり、
MATH
表の説明を参照するようにと説明があります。
>>33
[58]
Hangul Jamo を表す jamo
は、
推奨されないとされ、
Unicode conjoining jamo 文字に対応するフォントは
hang
を使うべきとされます。
>>33
[59]
Hiragana
と
Katakana
のどちらも同じ
kana
が割り当てられています。
>>33
[74] 追加については OpenTypeタグを参照。
[34] 用字系タグは通常 Unicode の用字系に対応しますが、 必ずしも1対1対応ではありません。 >>33
[35]
用字系タグは ISO 15924 用字系符号や Unicode の Script
より前からあるため、
異なる考え方で登録されたものもありますし、
特定の OpenType Layout 実装と関係して登録されたものもあります。
>>33
[4] 言語系は、 ある用字系を利用する言語の体系によって区別するものです。 用字系は言語系で細分することができます >>15。
[61] ここでの言語系とは、 ある用字系の文章がどう表示されるべきかの typographic convention の集合を表します。 >>60
[62] そのような convention は特定の言語だったり、 利用の分野だったり、 異なる出版だったり、 その他の要因に関連付いているかもしれません。 >>60
[27] OpenType Layout フォントにおいては、 言語系はタグで識別されます。
[64] convention の集合は、複数の場面にわたて共有されるかもしれません。 例えば2つの別の (無関係の) 言語が同じ convention に従っているかもしれません。 しかし言語系タグは必要性が認識され次第の登録となるので、 タグそれぞれが convention の異なる固有の集合を表すという保証はありません。 >>60
[65] 言語系タグは、複数の言語に適用される convention を表現するとの意図で登録することができます。 その場合は言語系タグの説明にその意図を反映させるべきです。 >>60
[66] ある特定の言語に複数の別の typographic convention の集合が存在することもあります。 >>60
[67] これらより、 言語系タグは必ずしも言語と1対1対応の関係にはありません。 >>60
[68] しかし多くの登録済みの言語系タグは特定の言語の typographic convention の集合を表すことを意図したものであります。 そのように言語系タグと1つ以上の言語に関係性があるときは、 言語系タグの登録簿に ISO 639 言語符号が示されています。 >>60
[76] BCP 47 言語タグの異体部分タグが参照される形で説明されているものもあります。 >>60
[81] ISO 15924 用字系符号の対応が示されているものもいくつかあります。
[82] 説明として UTC 文書が示されているものがあります。
[83] 他の言語系タグへの参照が示されているものがいくつかあります。 (見よとあるだけでどういう関係性なのかは書かれていません。)
[69] text content の言語を宣言する情報が応用に利用可能なときは、 応用は当該 text の表示時に適用する default language system tag の選択にその情報を使うことができます。 >>60
[70] しかし応用によっては利用する言語系タグの選択権を利用者に与えることを好むかもしれません。 応用の使い方次第で、 選択権を内容の著者に与えることにしても、 内容の読者に与えても、両方に与えても構いません。 >>60
[16] 言語系は用字系とは違って文章処理クライアントが文字だけを見て確定させられるとは限りません。 利用者や OS が言語系を指定する必要があります。 >>15 それがない場合は文章処理クライアントは用字系ごとの既定の言語系の情報を使うことになります >>15, >>28。
[6] 用字系だけが指定され言語系が指定されない状態は既定言語系とされます。
[10] これを表すために dflt
という言語系タグが使われています。
>>1
[7] 何を既定言語系にするかはフォント設計者の裁量に委ねられています。 >>1
[9] ただしどれを既定言語系に選ぶかによって既定でない言語系に対応するための lookup 等の記述が複雑になってしまうことがあります。 対応したい言語系のうちで最大公約数的な方法を使っている言語系を既定とし、 それ以外はそこからの差分で記述するのが賢いのかも知れません。 >>1
[71]
言語系タグは大文字3文字と SPACE
か、大文字4文字のものだけが登録される
convention となっています。 >>60
[72]
dflt
と DFLT
は恒久的に予約されています。
OpenType フォントは言語系記録 (LangSysRecord
)
で言語系タグ dflt
, DFLT
を含むべきではありません。
>>60 (Note)
[73]
フォント開発工具によっては dflt
や DFLT
を既定言語系を表すために使うことがあります。
これはそのような工具の固有の慣習に過ぎず、
OpenType フォントとしては専用の表で表され、
言語系タグとしては使いません。
工具はそのように適切に変換を行う責任があります。
>>60
[79]
Divehi (Dhivehi, Maldivian)
と説明されている
DHV
には
(deprecated)
とも書かれています。
>>60
[75] 追加については OpenTypeタグを参照。
[19]
GSUB
表や
GPOS
表は、
用字系タグと言語系タグの組み合わせに対して適用されるべき機能を記述します。
[29]
JSTF
表は、
用字系タグと言語系タグの組み合わせに対して適用されるべき事項を記述します。
[26]
BASE
表は、
用字系タグと言語系タグ (と他の要素) の組み合わせに対して適用されるべき基線を記述します。
[32] これらを通して言語情報によるグリフ選択等が実現されます。
[3] IETF言語タグやUnicodeロケール識別子は言語中心の識別子なので言語の下位分類に用字系が入っていますが、 OpenType では用字系の下位分類に言語があります。
[30]
meta
表では
IETF言語タグから派生した
ScriptLangTag
が使われます。
[31]
name
表や
cmap
表には言語ID欄があって、
言語を数値識別子で指定できます。
name
表ではIETF言語タグも指定できます。
これらの表の言語指定は文字コードの指定と絡み合っています。
[1] OpenType glyph processing (part 2) - Typography | Microsoft Docs, alib-ms, https://docs.microsoft.com/ja-jp/typography/develop/processing-part2#scripts-and-language-systems
Common
であるとしても、 必ずしもDFLT
を適用するべきとは限りません。 前後の文字の用字系でまとめて処理するのが効率的なら、 そうしても構いません >>18。