名前: . 日時: 2005-02-23 21:51:13 IPアドレス: 219.108.36.*
>>34650 \documentclass{article} % このサンプル中で用いる一時使用のための寸法の用意 \newlength\adjamount% これは,文書中で 1 回だけ行えば充分です. \begin{document} あくまでも,その場しのぎですが… \begin{center} \begin{tabular}{|c|c|} \hline A & B \\ \hline C & D \\[-1mm] % ↑この場合,(1 行分の高さの)縦罫線が入った行を作成してから % “次の行や罫線との間隔を狭める”という処理を行うので, % 縦罫線が下に突き出します. \hline \end{tabular} \bigskip \setlength{\adjamount}{\arraystretch\ht\strutbox} \addtolength{\adjamount}{\arraystretch\dp\strutbox} % ↑\adjamount = 表の中の行送り % たいていは,上の 2 行の代わりに % \setlength{\adjamount}{\arraystretch\baselineskip} % でも構わないでしょう. \addtolength{\adjamount}{1mm}% この時点で,\adjamount = 行送り + 1mm \begin{tabular}{|c|c|} \hline A & B \\ \hline \multicolumn{1}{c}{C} % ← \multicolumn を使い, & \multicolumn{1}{c}{D} % この行では縦罫線を省略します. \\[-\adjamount]% ← 1 行分 + 1mm 戻ります. & \\ \hline % ← このダミー行に縦罫線を入れさせます. \end{tabular} \end{center} \bigskip ただし,この手でも 1 行しかない表に対してはうまくいきません. \begin{center} \setlength{\adjamount}{\arraystretch\normalbaselineskip}% \addtolength{\adjamount}{1mm} \begin{tabular}{|c|c|} \hline \multicolumn{1}{c}{C} & \multicolumn{1}{c}{D} \\[-\adjamount] & \\ \hline \end{tabular} \end{center} また,\LaTeX2HTML などで他の形式に変換させると ダミー行に由来する空欄が生じてしまうので, それが問題になる場合には他の方法を用いることになります. \bigskip やはりその場しのぎですが,表の中の行送りを変えてもよいでしょう. % ただし,表の中の行送り(表の個々の行に tabular 環境が暗黙のうちに % 入れる支柱の height と depth の和)は“\box\strutbox(\strut による % 支柱そのものとなるボックス)の高さの \arraystretch 倍”という形で, % 単純に \baselineskip の値を変更しても表の中の行送りは変わりません. % また,\arraystretch を変更しても個々の行に入れる支柱の height と % depth が同じ比率で変わり,depth のみ減らすということにはなりません. % そこで,単純な手として(乱暴な手でもあります)\arraystretch を 0 にして % 個々の行に明示的に支柱を置いてみます. \begin{center} \renewcommand*{\arraystretch}{0} \begin{tabular}{|c|c@{\hskip\tabcolsep\protect\strut}|}\hline % (*) % ↑@ 指定を使って \strut を入れておきます. A & B \\ \hline C & \multicolumn{1}{c|}{% D% \setlength{\dimen0}{\dp\strutbox}% \strut の“深さ” \addtolength{\dimen0}{-1mm}% \setlength{\dimen2}{\dimen0}% \addtolength{\dimen2}{\ht\strutbox}% % ↑\dimen2 = ここで用いる支柱の“高さ”と“深さ”の和 \rule[-\dimen0]{0pt}{\dimen2}} % ↑(*) のところで入れた支柱を\multirocolumn を用いて外し, % その代わりに寸法を変えた支柱を入れます. % この一連の記述を適当なマクロにしておけば, % 表の記述の手間はさほど増えないでしょう. \\ \hline \end{tabular} \bigskip \begin{tabular}{|c|c|}\hline C & D% \setlength{\dimen0}{\dp\strutbox}% \addtolength{\dimen0}{-1mm}% \setlength{\dimen2}{\dimen0}% \addtolength{\dimen2}{\ht\strutbox}% \rule[-\dimen0]{0pt}{\dimen2} \\ \hline \end{tabular} \end{center} \end{document}
この書き込みへの返事: