KAGEデータ形式の詳細(草案)
この文書はKAGEシステムにおいて字形の中間記述形式として使われているKAGEデータ(字形中間記述データ)に関して、現時点(2022年2月18日(金) 16:50)での技術的詳細をまとめたものです。この文書を公開する目的は2つあります:
まず1.に関して、(Googleで検索する限りでは)KAGEデータ形式に関して詳細に記述された資料はみつからないという現状があります。そのためKAGEエンジンやグリフエディタなどの周辺ツールのソースコードを読んで多くを推測せざるをえず、KAGEデータを利用するソフトウェアの開発に高い障壁を生じさせています。この障壁を取り除くため、筆者(用戶:twe)がKAGEエンジンのソースコードを読むなどし推測した内容を言語化して残しておくものです。したがって、本来の仕様(があるのかは知りませんが)と用語や解釈が違っている可能性があります。その場合は修正を歓迎します。
2.に関して、グリフウィキでは専ら ttps://github.com/kamichikoichi/kage-engine/ で公開されているKAGEエンジン(以降 kamichikoichi/kage-engine と呼びます)が使われているので、特に非漢字グリフについて、このKAGEエンジンの実装詳細に大きく依存するデータが多くあります。これは「特定の実装が仕様になっている」状態といえます。そのようなデータが増えていけば、複数のKAGEエンジンの実装の間で「こっちのエンジンでは正しく出力されるが、あっちのエンジンでは正しく出力されない」といったケースが増えていき、新しいKAGEエンジンの開発を妨げてしまうほか、既存のKAGEエンジンの修正をも難しくしてしまいます。この状況を打開する第一歩として、個々のデータが特定の実装詳細に依存しているかしていないかの明確な基準をこの文書で定めることにします。
この文書は字形中間記述形式の詳細を記述するものですので、KAGEエンジン(で出力される画像)やグリフウィキ(で管理される他のデータ)の詳細にはあえて立ち入りません。
それから、この文書はあくまでも現時点での詳細を「まとめたもの」ですので、この文書の内容に完全に従うソフトウェア以外を認めない、ということではありませんし、そのような態度がとられることは望みません。また、詳細が変わればこの文書も適宜修正されるべきであり、これで仕様を固定したいというつもりはありません。
この文章を通して使われる用語を以下の通り定義します。
データ行は、筆画行、部品引用行、特殊行のいずれかです。
筆画行 は1つ目の欄が整数「1」「2」「3」「4」「6」「7」のいずれかであるようなデータ行です。 1つの筆画行は1つの 筆画 を表現します。1つの筆画が漢字を手書きする際の1画に対応することもありますが、2つ以上の筆画の組み合わせが手書きの1画に対応する場合もあります。(#「CJK筆画とKAGEデータの筆画の対応表」節も参照してください。)
筆画行を構成する欄はすべて整数であり、部品名を含みません。1つ目の欄の整数は筆画の 線種 を示します。また、欄の個数は線種によって次の表のとおりに決まります。
1つ目の欄 | 線種 | 欄の個数 |
1 | 直線 | 7 |
2 | 曲線 | 9 |
3 | 折れ | 9 |
4 | 乙線 | 9 |
6 | 複曲線 | 11 |
7 | 縦払い | 11 |
いずれの線種においても、2つ目の欄の整数は 頭形状 を、3つ目の欄の整数は 尾形状 を表します。頭形状と尾形状として現れうる整数値とその意味は線種ごとに異なります。 4つ目以降の欄の整数はすべて、筆画を構成する 制御点 の座標を表します。偶数番目(4, 6, 8, 10番目)の欄はx座標を、奇数番目(5, 7, 9, 11番目)の欄はy座標を表します。
筆画は、線種、頭形状、尾形状、制御点の配列、の4つ組で表されます。筆画を構成する制御点の座標の数値は(処理系依存の精度の)実数です。
最初の制御点を筆画の 始点 、最後の制御点を筆画の 終点 と呼びます。
線種によっては筆画の始点や終点が他の筆画に 接続 することがあります。接続には、始点や終点の座標が、他の筆画の始点や終点の座標と一致するもの( カド接続 )と、始点や終点が、他の筆画の始点から終点までの中間点(の近く)に位置するものがあります。
筆画の頭形状や尾形状には、それぞれ始点や終点が接続していることを前提とするものがあります。しかしながら、どの筆画のどこに接続しているのかという情報はKAGEデータに直接は含まれていません。それどころか、他の筆画に接続していることの保証すらありません。
カド接続には、「左上角」「右上角」「左下角」「右下角」を構成するものがあります。これらは、「口」の四隅にある形態の角(┌、┐、└、┘)を指しており、この4つの形態を「口」の字における位置で区別しているものです。したがって、角が字の中でどの位置にあるかは角の名称と関係がありません。
また、「八屋根の右上角」という角もあります。これは 八(u516b-j) や八屋根(
u516b-03)などに固有の形状の角で、横画の終点と右払いの始点で構成されます。
線種が「直線」である筆画は2つの制御点を持ち、これら2つの制御点を結ぶまっすぐな線分を中心線とする図形を表現します。
特に、明朝体において直線的な中心線に対して始筆から終筆までほぼ一定の太さで肉付けされるもの、字表:CJK筆画でいうとu31d0
u31d1
u31daや、
u31c6
u31d5
u31d7
u31d8のそれぞれの前半と後半などを表現します。
直線の筆画には 縦画 を表現するものと 横画 を表現するものがあります。2つの制御点の位置関係によって、次の通りに縦画と横画の区別が行われます。
同じ内容を別の観点で言い直すと、次のようになります。1つ目の制御点から見た2つ目の制御点の向きを求めたとき、それが画面の右向きとなす角 θ が 0° ≦ θ < 45° または θ = 180° を満たす場合に横画であり、そうでない場合は縦画です。
横画を表現する直線筆画に現れうる頭形状は次の表の通りです。
2つ目の欄 | 頭形状 | 説明 |
0 | 開放 | 他のどの筆画にも接続していません。 例. ![]() |
2 | 接続(横) | 他の筆画(縦画、[折れ、乙線]の前半、曲線、複曲線、縦払い)に接続しています。 例. ![]() |
横画を表現する直線筆画に現れうる尾形状は次の表の通りです。
3つ目の欄 | 尾形状 | 説明 |
0 | 開放 | 他のどの筆画にも接続していません。 例. ![]() |
2 | 接続(横) | 他の筆画(縦画、[折れ、乙線]の前半、曲線、複曲線、縦払い)に接続しています。 例. ![]() |
縦画を表現する直線筆画に現れうる頭形状は次の表の通りです。
2つ目の欄 | 頭形状 | 説明 |
0 | 開放 | 他のどの筆画にも接続していません。 例. ![]() |
32 | 接続(縦) | 他の筆画(横画、[折れ、乙線]の後半、曲線、複曲線)の中間に接続しています。 例. ![]() ![]() |
12 | 左上カド | 1. 他の横画の始点に接続して、この横画と左上角を構成します。 例. ![]() 2. 他の筆画([曲線、複曲線]、尾形状 = 左払い)の終点に接続して、この筆画と左上角を構成します。 例. ![]() |
22 | 右上カド | 他の横画の終点に接続して、この横画と右上角を構成します。 例. ![]() |
縦画を表現する直線筆画に現れうる尾形状は次の表の通りです。
3つ目の欄 | 尾形状 | 説明 |
0 | 開放 | 他のどの筆画にも接続していません。 例. ![]() |
32 | 接続(縦) | 他の筆画(横画、[折れ、乙線]の後半、曲線、複曲線)の中間に接続しています。 例. ![]() ![]() |
13 | 左下カド | 1. 他の横画の始点に接続して、この横画と左下角を構成します。 例. ![]() 2. 他の筆画([曲線、複曲線]、頭形状 = 細入り、尾形状 = 止め)の始点に接続して、この筆画と左下角を構成します。 例. ![]() |
23 | 右下カド | 他の横画の終点に接続して、この横画と右下角を構成します。 例. ![]() |
4 | 左ハネ | 左に跳ねます。他のどの筆画にも接続しません。 例. ![]() |
313 | 左下zh用旧 | 他の横画の始点に接続して、この横画と左下角を構成します。台湾の国字標準字体などでは、手書きしたときに縦画と横画を一続きで書く左下角と、2画以上に分けて書く左下角とでデザインに差異を設けており、この差異を再現したい場合に、前者の左下角に使用されます。 例. ![]() |
413 | 左下zh用新 | 1. 他の横画の始点に接続して、この横画と左下角を構成します。中国大陸で使われる宋体では、手書きしたときに縦画と横画を一続きで書く左下角と、2画以上に分けて書く左下角とでデザインに差異を設けており、この差異を再現したい場合に、前者の左下角に使用されます。 例. ![]() 2. 他の筆画([曲線、複曲線]、頭形状 = 接続、尾形状 = 左払い)の始点に接続して、この曲線と右上に跳ね上げる左下角を構成します。 例. ![]() |
24 | 右下H/T | 他の横画の終点に接続して、この横画と右下角を構成します。台湾の国字標準字体などでは、筆写体で横画が右に突き出る右下角と、縦画が下に突き出る右下角とでデザインに差異を設けており、この差異を再現したい場合に、前者の右下角に使用されます。 例. ![]() |
線種が「曲線」である筆画は3つの制御点を持ち、これら3つの制御点で定まる2次ベジエ曲線を中心線とする図形を表現します。
字表:CJK筆画の中でいうと、u31c0
u31c1
u31c2
u31c3
u31cf
u31d2
u31d4や、
u31c7
u31c9
u31ca
u31cb
u31cc
u31d6
u31d9
u31e1の末尾、
u31db
u31ddの前半と後半を表現します。
中心線がほぼ直線的になるものであっても、明朝体において始筆と終筆の間で太さが変化するものは「直線」筆画では表現できず、代わりに「曲線」筆画で表現されます。
曲線筆画に現れうる頭形状は次の表の通りです。
2つ目の欄 | 頭形状 | 説明 |
0 | 開放 | 他のどの筆画にも接続していません。 例. ![]() ![]() |
32 | 接続 | 1. 他の筆画の中間に接続しています。 例. ![]() 2. 他の縦画(尾形状 = 左下zh用新)の終点に接続して、この縦画と右上に跳ね上げる左下角を構成します。 例. ![]() |
12 | 左上カド | 他の横画の始点に接続して、この横画と左上角を構成します。 例. ![]() |
22 | 右上カド | 他の横画の終点に接続して、この横画と右上角を構成します。 例. ![]() ![]() ![]() |
7 | 細入り | 1. 他のどの筆画にも接続していないか、他の筆画の中間に接続しています。右払い、止め、左ハネのいずれかの尾形状と組み合わせます。 例. ![]() ![]() ![]() 2. 他の縦画の終点に接続して、この縦画と左下角を構成します。止めの尾形状と組み合わせます。 例. ![]() |
27 | 屋根付き細入り | 他の横画の終点に接続して、この横画と八屋根の右上角を構成します。 例. ![]() |
曲線筆画に現れうる尾形状は次の表の通りです。
3つ目の欄 | 尾形状 | 説明 |
7 | 左払い | 1. 左下へまたは右上へ払う終筆です。他のどの筆画にも接続していません。 例. ![]() ![]() 2. 他の縦画の始点に接続して、この縦画と左上角を構成します。 例. ![]() |
0 | 右払い | 右下へ払う終筆です。他のどの筆画にも接続しません。 例. ![]() |
8 | 止め | 止めの終筆です。他のどの筆画にも接続しません。 例. ![]() |
4 | 左ハネ | 左に跳ねます。他のどの筆画にも接続しません。 例. ![]() |
5 | 右ハネ | 右上に跳ねます。他のどの筆画にも接続しません。 例. ![]() |
曲線筆画の頭形状と尾形状とその意味は、次の組み合わせでしか出現できません。
頭形状 | 尾形状 | 例 |
0: 開放 | 7: 左払い | ![]() ![]() |
0: 開放 | 5: 右ハネ | ![]() |
32: 接続 | 7: 左払い | ![]() ![]() |
32: 接続 | 4: 左ハネ | ![]() |
32: 接続 | 5: 右ハネ | ![]() |
12: 左上カド | 7: 左払い | ![]() |
22: 右上カド | 7: 左払い | ![]() |
22: 右上カド | 4: 左ハネ | ![]() |
22: 右上カド | 5: 右ハネ | ![]() |
7: 細入り | 0: 右払い | ![]() |
7: 細入り | 8: 止め | ![]() |
7: 細入り | 4: 左ハネ | ![]() |
27: 屋根付き細入り | 0: 右払い | ![]() |
線種が「折れ」である筆画は3つの制御点を持ち、これら3つの制御点を順に結ぶ、2つの線分からなる折れ線を中心線とする図形を表現します。
典型的には、1つ目の制御点の下に2つ目の制御点が、2つ目の制御点の右に3つ目の制御点が並ぶことで、 ㇄(u31c4) や
㇟(u31df) のような筆画を表現します。
直線の筆画2つが構成する左下角が、明朝体において太い縦棒と細い横棒の組み合わせでデザインされる図形 ㇗(u31d7)
匚(u531a) を表現するのに対して、折れの筆画は、縦棒と横棒が太さを大きく変えずカーブを描いてつながる図形
㇄(u31c4)
匸(u5338) を表現します。
折れ筆画に現れうる頭形状とその意味は、縦画を表現する「直線」筆画と共通です。
折れ筆画に現れうる尾形状は次の表の通りです。
3つ目の欄 | 尾形状 | 説明 |
0 | 開放 | 他のどの筆画にも接続していません。 例. ![]() |
5 | 上ハネ | 右上に跳ねます。他のどの筆画にも接続しません。 例. ![]() |
32 | 接続 | 他の筆画(縦画、[折れ、乙線]の前半、曲線、複曲線、縦払い)に接続しています。 例. ![]() |
線種が「乙線」である筆画は3つの制御点を持ち、1つ目の制御点から出発して2つ目の制御点の方向へまっすぐ向かい、途中でなめらかなカーブを描きながら方向を変え、3つ目の制御点へ2つ目の制御点の方向からまっすぐ至る中心線をもつ図形を表現します。途中で描くカーブの形状は処理系依存です。
乙(u4e59) や
u6c17-05などで使われます。
乙線筆画に現れうる頭形状は次の表の通りです。
2つ目の欄 | 頭形状 | 説明 |
0 | 開放 | 他のどの筆画にも接続していません。 |
22 | 右上カド | 他の横画の終点に接続して、この横画と右上角を構成します。 例. ![]() |
乙線筆画に現れうる尾形状は次の表の通りです。
3つ目の欄 | 尾形状 | 説明 |
0 | 開放 | 他のどの筆画にも接続していません。 |
5 | 上ハネ | 右上に跳ねます。他のどの筆画にも接続しません。 例. ![]() |
線種が「複曲線」である筆画は4つの制御点を持ち、これら4つの制御点で定まる3次ベジエ曲線を中心線とする図形を表現します。制御点の少ない「曲線」筆画では表現しきれない場合に利用されます。
現れうる頭形状と尾形状とその組み合わせ、意味は「曲線」筆画と共通です。
線種が「縦払い」である筆画は4つの制御点を持ち、1つ目と2つ目の制御点を結ぶまっすぐな線分に、2〜4つ目の制御点で定まる2次ベジエ曲線を続けた曲線を中心線とする図形を表現します。典型的には、1〜3つ目の制御点は縦一直線に並び、 ㇓(u31d3) のような筆画を表現します。
縦払い筆画に現れうる頭形状とその意味は、縦画を表現する「直線」筆画と共通です。
縦払い筆画に現れうる尾形状は次の表の通りです。
3つ目の欄 | 尾形状 | 説明 |
7 | 左払い | 他のどの筆画にも接続していません。 例. ![]() |
部品引用行 は1つ目の欄が整数「99」であるようなデータ行です。 他の部品に含まれる筆画を、後述の「展開」操作で述べる変形を行って配置することを表します。
部品引用行には8個の欄で構成されるものと11個の欄で構成されるものがあります。いずれの場合も、8つ目の欄は部品名で、1つ目〜7つ目の欄はすべて整数です。11個の欄がある場合は、10個目と11個目の欄はどちらも整数です。
4つ目〜7つ目の欄は、展開操作のパラメータ 部品矩形 を指定します。4つ目と5つ目の欄が部品矩形の左上のx座標とy座標をそれぞれ表し、6つ目と7つ目の欄が部品矩形の右下のx座標とy座標をそれぞれ表します。
2つ目と3つ目の欄は、展開操作のパラメータ 点D のx座標とy座標を指定します。点Dのx座標が100より大きい場合は、この部品引用行に11個の欄がなければならず、その10個目と11個目の欄が展開操作のパラメータ 点S のx座標とy座標を指定します。点Dのx座標が100以下の場合は、点Sの座標は(0, 0)になります。
部品を 展開 する、もしくは部品引用行を展開するとは、 部品名 、 部品矩形 、 点D 、 点S をもつ部品引用行に対して次の操作を行い、[筆画または図形変形命令]からなる配列 A を得ることです。
特殊行 は1つ目の欄が整数「0」であるようなデータ行です。
特殊行は2つ目の欄が整数「97」「98」「99」のいずれかであるならば、 図形変形命令 を表します。図形変形命令は、それまでに画面上に描画された筆画図形のうち特定の矩形に含まれるものを変形することを指示します。
図形変形命令を表す特殊行は、7つの欄からなります。2つ目と3つ目の欄は次の表の通りに図形変形命令の 変形種類 を指定します。
2つ目の欄 | 3つ目の欄 | 変形種類 |
整数「99」 | 整数「1」 | 回転90° |
整数「99」 | 整数「2」 | 回転180° |
整数「99」 | 整数「3」 | 回転270° |
整数「98」 | 整数「0」 | 左右反転 |
整数「97」 | 整数「0」 | 上下反転 |
4つ目〜7つ目の欄が図形変形命令の 変形矩形 を指定します。4つ目と5つ目の欄が変形矩形の左上のx座標とy座標をそれぞれ表し、6つ目と7つ目の欄が変形矩形の右下のx座標とy座標をそれぞれ表します。
図形変形命令は、変形種類と変形矩形の組で表されます。
図形変形命令の 制御点 とは、その図形変形命令の変形矩形の左上と右下の2つの点を指します。
図形変形命令を表さない特殊行をどのように扱うかは、処理系に任されています。
処理系がKAGEデータをもとに図形を生成するとき、個々の筆画からどのような図形を描画するかは処理系に任されています。そのため同一の筆画を、ある処理系は明朝体で描画し、別の処理系はゴシック体、また別の処理系は丸ゴシック体で描画し、……といったことが考えられます。
個々の筆画を画面に描画する(処理系依存の)方法が与えられたとき、データ行の配列であるKAGEデータ A0 を 描画 する方法を次の通り定めます。
Unicode仕様書のAppendix F: Documentation of CJK Strokesに記載されるStrokeと、KAGEデータで表される筆画との対応を表にしたものです。
Stroke | Variant | Acronym | 筆画 | |
![]() | H | 直線(横画) | ||
![]() | T | 曲線、複曲線(頭形状 = 開放、尾形状 = 左払い) | ||
![]() | S | 直線(縦画) | ||
![]() | SG | 直線(縦画、尾形状 = 左ハネ) | ||
![]() | P | 曲線、複曲線(尾形状 = 左払い) | ||
![]() | SP | 縦払い | ||
![]() | ![]() | D | 曲線、複曲線(頭形状 = 細入り、尾形状 = 止め) | |
![]() | N | 曲線、複曲線(頭形状 = 細入り、尾形状 = 右払い) | ||
![]() | 曲線、複曲線(頭形状 = 開放、尾形状 = 左払い) + 曲線、複曲線(頭形状 = 細入り、尾形状 = 右払い) | T + N | ||
![]() | ![]() | TN | 曲線、複曲線(頭形状 = 開放、尾形状 = 左払い) + 曲線、複曲線(頭形状 = 細入り、尾形状 = 右払い) | T + N |
![]() | 直線(横画、尾形状 = 接続(横)) + 曲線、複曲線(頭形状 = 屋根付き細入り、尾形状 = 右払い) | H + N | ||
![]() | HZ | 直線(横画、尾形状 = 接続(横)) + 直線(縦画、頭形状 = 右上カド) | H + S | |
![]() | HP | 直線(横画、尾形状 = 接続(横)) + 曲線、複曲線(頭形状 = 右上カド、尾形状 = 左払い) | H + P | |
![]() | 直線(横画、尾形状 = 接続(横)) + 直線(縦画、頭形状 = 右上カド) | H + S | ||
![]() | HG | 直線(横画、尾形状 = 接続(横)) + 曲線、複曲線(頭形状 = 右上カド、尾形状 = 左払い) | H + P | |
![]() | ![]() | SZ | 直線(縦画、尾形状 = 左下カドまたは左下zh用新または左下zh用旧) + 直線(横画、頭形状 = 接続(横)) | S + H |
![]() | SWZ | 直線(縦画、尾形状 = 右下カド) + 直線(横画、尾形状 = 接続(横)) 論点. 横画の始点でなく終点をカド接続させると、筆画が運筆と反対向きになります。 | S + H | |
![]() | SW | 折れ(尾形状 = 止めまたは接続) | ||
![]() | ST | 直線(縦画、尾形状 = 接続) + 曲線、複曲線(頭形状 = 開放、尾形状 = 左払い) | S + T | |
![]() | 直線(縦画、尾形状 = 左下zh用新) + 曲線、複曲線(頭形状 = 接続、尾形状 = 左払い) | S + T | ||
![]() | PZ | 曲線、複曲線(尾形状 = 左払い) + 曲線、複曲線(頭形状 = 開放、尾形状 = 左払い) | P + T | |
![]() | 直線(縦画、尾形状 = 左下カドまたは左下zh用新または左下zh用旧) + 直線(横画、頭形状 = 接続(横)) | S + H | ||
![]() | PD | 曲線、複曲線(尾形状 = 左払い) + 曲線、複曲線(頭形状 = 細入り、尾形状 = 止め) | P + D | |
(![]() | 直線(縦画、尾形状 = 左下カド) + 曲線、複曲線(頭形状 = 細入り、尾形状 = 止め) | S + D | ||
![]() | PG | |||
![]() | WG | 曲線、複曲線(頭形状 = 細入り、尾形状 = 左ハネ) | ||
![]() | XG | 曲線、複曲線(頭形状 = 開放、尾形状 = 右ハネ) | ||
![]() | BXG | |||
![]() | 折れ(尾形状 = 上ハネ) | SWG | ||
![]() | HZZ | 直線(横画、尾形状 = 接続(横)) + 直線(縦画、頭形状 = 右上カド、尾形状 = 左下カドまたは左下zh用新または左下zh用旧) + 直線(横画、頭形状 = 接続(横)) | H + S + H | |
![]() | HZW | 直線(横画、尾形状 = 接続(横)) + 折れ(頭形状 = 右上カド、尾形状 = 止めまたは接続) | H + SW | |
![]() | HZT | 直線(横画、尾形状 = 接続(横)) + 直線(縦画、頭形状 = 右上カド、尾形状 = 接続) + 曲線、複曲線(頭形状 = 開放、尾形状 = 左払い) | H + S + T | |
![]() | 直線(横画、尾形状 = 接続(横)) + 直線(縦画、頭形状 = 右上カド、尾形状 = 左下zh用新) + 曲線、複曲線(頭形状 = 接続、尾形状 = 左払い) | H + S + T | ||
![]() | HZG | 直線(横画、尾形状 = 接続(横)) + 曲線、複曲線(頭形状 = 右上カド、尾形状 = 左ハネ) | H + (?) | |
![]() | 直線(横画、尾形状 = 接続(横)) + 直線(縦画、頭形状 = 右上カド、尾形状 = 左ハネ) | H + SG | ||
![]() | HZWG | 直線(横画、尾形状 = 接続(横)) + 折れ(頭形状 = 右上カド、尾形状 = 上ハネ) | H + SWG | |
![]() | 直線(横画、尾形状 = 接続(横)) + 曲線、複曲線(頭形状 = 右上カド、尾形状 = 右ハネ) | H + XG | ||
![]() | SZZ | 直線(縦画、尾形状 = 左下カドまたは左下zh用新または左下zh用旧) + 直線(横画、頭形状 = 接続(横)、尾形状 = 接続(横)) + 直線(縦画、頭形状 = 右上カド) | S + H + S | |
![]() | 直線(縦画、尾形状 = 左下カドまたは左下zh用新または左下zh用旧) + 直線(横画、頭形状 = 接続(横)、尾形状 = 接続(横)) + 曲線、複曲線(頭形状 = 右上カド、尾形状 = 左払い) | S + H + P | ||
![]() | SWG | 折れ(尾形状 = 上ハネ) | ||
![]() | HZZZ | 直線(横画、尾形状 = 接続(横)) + 直線(縦画、頭形状 = 右上カド、尾形状 = 左下カドまたは左下zh用新または左下zh用旧) + 直線(横画、頭形状 = 接続(横)、尾形状 = 接続(横)) + 直線(縦画、頭形状 = 右上カド) | H + S + H + S | |
![]() | HZZP | 直線(横画、尾形状 = 接続(横)) + 直線(縦画、頭形状 = 右上カド、尾形状 = 左下カドまたは左下zh用新または左下zh用旧) + 直線(横画、頭形状 = 接続(横)、尾形状 = 接続(横)) + 曲線、複曲線(頭形状 = 右上カド、尾形状 = 左払い) | H + S + H + P | |
![]() | HXWG | 直線(横画、尾形状 = 接続(横)) + 乙線(頭形状 = 右上カド、尾形状 = 上ハネ) | H + (?) | |
![]() | HPWG | 直線(横画、尾形状 = 接続(横)) + 曲線、複曲線(頭形状 = 右上カド、尾形状 = 左払い) + 曲線、複曲線(頭形状 = 細入り、尾形状 = 左ハネ) | H + P + WG | |
![]() | SZWG | 直線(縦画、尾形状 = 左下カドまたは左下zh用新または左下zh用旧) + 直線(横画、頭形状 = 接続(横)、尾形状 = 接続(横)) + 曲線、複曲線(頭形状 = 右上カド、尾形状 = 左ハネ) | S + H + (?) | |
![]() | HZZZG | 直線(横画、尾形状 = 接続(横)) + 直線(縦画、頭形状 = 右上カド、尾形状 = 左下カドまたは左下zh用新または左下zh用旧) + 直線(横画、頭形状 = 接続(横)、尾形状 = 接続(横)) + 直線(縦画、頭形状 = 右上カド、尾形状 = 左ハネ) | H + S + H + (?) | |
![]() | Q |
その他特殊な例:
グリフウィキに登録された漢字のKAGEデータで広く使われている手法のうち、kamichikoichi/kage-engine の実装詳細に依存するものであり、他の処理系は同じようには解釈しない可能性があるものを列挙します。
この草案の個々の部分に関するコメントは文中に(署名付きで)付記してください。草案全体に関するコメントは、以下にお願いします。