名前: 北見 けん 日時: 2001-11-08 17:09:07 IPアドレス: 202.25.71.*
>>3488 >難しそうだなぁと思ってあまり見ていなかったんですが、 ほんとに見てないようですね。(^^) おおぼけかましてます。 オリジナルは \@hangfrom でぶら下げ組みにするんですね。 以下に訂正です。 場合分けは必要なくなって、コードの実行も一回だけです。 \setbox\@tempboxa=\vbox{% \@hangfrom{\hskip #3\relax\@svsec}% \interlinepenalty \@M #8\@@par \setbox\@tempboxa=\lastbox% 最後の行を取り戻す \unskip% 行間グルーも取り除く必要がありましたね \@tempdimb=\wd\@tempboxa% 後でまた使うので保存 \@tempdima=\hsize \advance\@tempdima by -\@tempdimb % \@tempdima はぶら下げ幅、最後に使います % コードの実行回数を抑制するため苦労しています % \linewidth よりも \hsize の方が確実でしょう \setbox\@tempboxa=\hbox{\unhbox\@tempboxa\unskip\unskip}% % 行末のグルーは \parfillskip と \rightskip でしたね % 両方とも取り除きます \advance\@tempdimb by -\wd\@tempboxa % \@tempdimb はグラデーションの長さ \hbox{\kern\@tempdima\box\@tempboxa \Gradation{\strip@pt\@tempdimb}}% % 最後の行を作りなおします }% \unvbox\@tempboxa%上の全てを出力 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 野村さんのに対するツッコミです。 \setbox1=\vbox{etc.} \setbox2=\vbox{\unvbox1 \setbox1=\lastbox} という感じにやっているところですが、 以下の一行でも機能しますよね。 \setbox2=\vbox{etc.\par\setbox1=\lastbox} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ついでに疑問点も。 \@fangfrom の定義は >\def\@hangfrom#1{\setbox\@tempboxa\hbox{{#1}}% > \hangindent \wd\@tempboxa\noindent\box\@tempboxa} でして、野村さんもおそらくこれにあわせて、 >\setbox\@tempboxa\hbox{{\hskip #3\relax\@svsec}}% としていますが、\hbox{{etc.}} と括弧を二重にするのってなぜなんでしょう。 ## \aftergroup によるハッキング対策とかしか思いつきません。 どなたかお願いします。
この書き込みへの返事: