Re: 表の中の箇条書きと罫線の行間

名前: 本田
日時: 2006-09-23 00:19:00
IPアドレス: 222.158.121.*

>>44982 まずarray packageは考慮しません これはきわめて重要な仮定です なぜならば,array packageの有無で 今問題になっているpなどの処理は大きく変わります. そして,array packageの処理の方が一般に LaTeX2eデフォルトのものよりも処理が複雑です さらに,Bbさんの\@startpboxの再定義は LaTeX2eデフォルトのものをベースとしており おまけに,LaTeX2eデフォルトの\@startpboxと array packageの\@startpboxは処理が異なります. 順番につぶしていきます. まず,「下のアキ」の問題. \documentclass{jarticle} \makeatletter %\def\@startpbox#1{\bgroup %\hrule\@height\z@\@width\z@\@depth\dp\@arstrutbox %\setlength\hsize{#1}\@arrayparboxrestore} %\let\@@startpbox\@startpbox \def\@endpbox{% \ifhmode \@finalstrut\@arstrutbox \else \ifdim\prevdepth>\z@ \ifdim\prevdepth>\dp\@arstrutbox\else \vskip-\prevdepth \fi \fi \hrule \@height\z@\@width\z@\@depth\dp\@arstrutbox \fi \par\egroup\hfil} \let\@@endpbox\@endpbox \makeatother \begin{document} \begin{tabular}{p{1zw}} \hline \makeatletter \raisebox{0pt}[0pt][\dp\@arstrutbox]{a}\makeatother \par \\\hline \end{tabular} \begin{tabular}{p{1zw}} \hline y\par \\\hline \end{tabular} \begin{tabular}{p{1zw}} \hline y \\\hline \end{tabular} \end{document} これくらいの処理が必要です. セルの深さを考えてそれが正で\prevdepth以下の場合, かつ垂直モードで終わる場合に, \prevdepth分の補正をいれないと そうではない「普通の状態」との整合性がとれません. これくらいすると,少なくとも「下のアキ」は リスト環境・非リスト環境ともに揃うはずです. また,上ではコメントアウトしていますが \@startpboxで「深さによって柱をいれる」というのは やはりまずいです. コメントアウトを外して処理してください. 明らかに体裁が崩れます. これで宿題は一個すんだわけで 残りは ・上のアキとリスト環境 ・array packageへの考慮 ですが・・こんなところで. #いや,実はまだ考えてないわけで #難易度は残ってるものの方が高いのは明らかだったり。。。(-_-;;;

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)