Open h-kitagawa opened 5 years ago
以下,補足&私が感じている疑問点です.
.\tenrm a .\hbox(8.99998+1.0)x4.14998, yoko direction ..\kern-3.14001 ..\displace 0.0 ..\test Γ ..\kern-2.71 .\tenrm a
TFM 由来のカーンと JFM 由来のカーンとは区別できないので,ボックス内の先頭・末尾の JFM 由来カーンを消去しないというのは納得ができます.しかし,「フォント由来の自動的に挿入されるカーンのおかげでボックスの周囲に [x]kanjiskip が入らなくなる」というのが気になります.
.\tenrm a .\glue(\xkanjiskip) 2.40553 plus 1.0 minus 1.0 .\hbox(8.99998+1.0)x10.0, yoko direction ..\displace 0.0 ..\test γ ..\glue(refer from jfm) 0.0 .\tenrm a
「ボックス内の先頭のノードが JFM 由来のグルーの場合はそれを消し,最後のノードが JFM 由来のグルーの場合はゼロにする」というコードは,少なくとも pTeX j1.7e p1.0.9F (1992-01-21) 以降にあります.
TFM 由来のカーンと JFM 由来のカーンとは区別できない
glue_kern と lig_kern の処理は完全に別実装なので,必要があれば区別は出来そうです。(たしか #52 の頃に似た話が合った気がする)
「ボックス内の先頭のノードが JFM 由来のグルーの場合はそれを消し,最後のノードが JFM 由来のグルーの場合はゼロにする」
「フォント由来の自動的に挿入される JFM グルーのおかげでボックスの直後に [x]kanjiskip が入らなくなる」というのが気になります.
私も疑問ではありますが,最近は jlreq クラスの (u)pTeX 用メトリクスのように「始め括弧類の後・終わり括弧類の前」のような「[x]kanjiskip を入れたくない場所に JFM グルーを入れてある例」もある(“たぶん意図はそうだろう”と私が勝手に推測しているにすぎませんが)ので,単に変えれば解決というわけでもないと思っています。
「文字タイプ 0 の文字」との間に JFM グルー(やカーン)が設定されている文字がボックスの最初・末尾に来た場合の処理が,グルーかカーンかによって異なります.
例として,gist を作りました.Γ は前後の「文字タイプ 0 の文字」との間にカーン,γ はグルーを入れるようにしていますが,
とグルーかカーンか,さらにグルーの場合は前後で [x]kanjiskip の入り方が異なります.