Re: 段落解体ゼミ(^-^) (Re: ボックスに枠付きのボックス)

名前: 北見 けん
日時: 2001-11-09 21:47:54
IPアドレス: 202.25.71.*

>>3532 表題変更されたのですね。 ##確かに内容と合っていませんでした。 %%%%%%%%%%%%%%%%%%%%%%%% さて本題。 >1.グルーが収縮されて一行に収まるような状態だったのが,行末 > からはみ出る これ、ちょっと確認できませんでした。サンプルありますか? >2.節見出しの前後の垂直方向のスペースがおかしい これは確かにそうでした。ちょっと難問です(後述)。 >3.三行にわたる見出しの場合,二行目と三行目の間が空きすぎる これは、二行にわたる場合に一行目と二行目の間でも起きますね。 原因は \Gradation が結構な高さを持っているからです。 %%%%%%%%%%%%%%%%%%%%%%%% それでは、保留した >2. についてです。 これは、中身「\@hangfrom{\hskip #3\relax\@svsec}\interlinepenalty \@M #8\@@par}」 を \vbox に入れてしまったからです。 \vbox の中の最初の行と、\vbox の直前の行との間には適切な行間グルーが入りません。 (\vbox そのものと直前の行との間には入りますが、多くの場合適切とは云い難いでしょう) 直前の行との関係を \vbox 内部に持ち込むには、 >>3397から辿って>>3342くらいまで遡れば書いてあります。 (野村さんは既に読んでいることと思いますが) しかし、この処方でも不充分です。 というのは、\@hangfrom で段落が始まるときに \parskip のグルーが 垂直リストに加えられますが、これも、\vbox の中の最初の行には加えられません。 では \vskip\parskip を \vbox の中の最初に入れれば良いかと云うと、 そうとも限りません。一律に入れてしまうと、ページの頭でも \parskip のグルーが 入ってしまいますが、本来はページの頭には \parskip のグルーは入りません。 このあたりは、TeX 本体が自動的に行っていることです。 TeX 自身は、現在組みたてている垂直リストの先頭にいるかどうかを把握していますが、 我々ユーザーが、マクロのレベルでそれを把握する方法はないようです。 ##あるんでしょうか?? >>詳しい方 %%%%%%%%%%%%%%%%%%%%%%%% 今回の目的のためには、組み上げた段落の最後の行の長さを取得しなければなりません。 そのためには、\lastbox で最後の行を切り出さなければなりません。 \lastbox は一番外側の垂直モードでは使えませんから、 段落はやはり \vbox の中で処理しなければいけません。 というわけで、この >2. は相当厄介な問題の様です。 ページ作成を TeX に任せずに、\vsplit などを用いて、完全に自分でやるか、 \parskip に 0pt などを設定するかくらいしかないんじゃないでしょうか?? いかがでしょう >>みなさん

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)