-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ptex] \hbox{・} の処理 #25
Comments
すっかり忘れていました,ありがとうございます. 07e48d0 で
なお,リストの先頭が JFM カーン(または禁則用ペナルティ→ JFM カーン)であったときにはまだ特に何もしていません.
ですが,単純に削除されるのではなく,グルーが |
よさそうですね。ありがとうございます。 → r45329 でコミット。
ほんとだ,なんでだろう? 要らないノードは作らない方が良いと思うのですが… \tracingonline1 \showboxdepth10000 \showboxbreadth10000
\kanjiskip10pt
\setbox0=\hbox{・あ・}\showbox0
漢\box0漢
\bye |
|
#14 に「\hbox{・} の処理」という言及があったのですが,数ヶ月経って何だったっけ…?となってしまったので,非公開の場所ではない発言なので北川さんのを転載しておこうと思います。
pTeX で
\hbox{・}
で前の方に空白が入る問題ですが,どうやらadjust_hlist
関数のバグのようです.例えば\hbox{(}
と入力したとき,adjust_hlist
関数に渡されるときにはと,先頭に JFM グルーが挿入されています.
しかし
adjust_hlist
関数にあるというコードによって「ボックスの先頭が JFM グルーだった場合にはそのグルーを削除する」処理が行われます.同様に,ボックスの末尾が JFM グルーであった場合も削除されます.そのため,
\hbox{(}
の幅は 0.5 zw となります.一方,
\hbox{・}
では,adjust_hlist
関数に渡される時点でと先頭がグルーではありません.そのため,この場合は頭から二番目のグルーは残り,一方で最後のグルーは消えるので「前のみグルーが入る」という歪な結果になります.
ペナルティは
\unhbox
の時を考えると消す必要はないと思いますが,「先頭が禁則用ペナルティかつその後が JFM グルー(JFM カーンも含む)であった場合でも,その JFM グルーを消す」とするのはどうでしょう?あと,
\prebreakpenalty
に 0 を設定すると,\penalty0
が入るんですね.せっかくなのでここも何とかしたいですね.The text was updated successfully, but these errors were encountered: