TeXの記憶(116)–tabularの中にtabularを入れる

入り組んだ表をtabular環境を使って組むのは面倒です。

ほんとうに面倒な表なら最初からIllustratorで組もうと思うのですが、ちょこっと複雑な表の場合は全部LaTeXで組みたい欲求にかられてしまいます。これがいけません。たいていの場合や試行錯誤に時間をとられて結局は中途半端なマクロで終わってしまいます。

この例もそんな詰めが甘い組版の1つです。

0119

\begin{tabular}{|l|l|l|}\hline
あああ &
\kern-\tabcolsep\begin{tabular}{r|r}
XXX & YYY \\\hline
XXX & YYY \\\hline
Z &W
\end{tabular}\kern-\tabcolsep&
\dimen0=\ht\strutbox
\advance\dimen0\dp\strutbox
\multiply\dimen0 by 3
\divide\dimen0 by 2
\dimen1=\dimen0
\advance\dimen1 -2.5mm
\dimen2=\dimen0
\advance\dimen2 -\dimen1
\ht\strutbox=\dimen1
\dp\strutbox=\dimen2
\kern-\tabcolsep\begin{tabular}{l|l}
○○○ & □□□ \\\hline
●●● & ■■■
\end{tabular}\kern-\tabcolsep\\\hline
えええ & おおお & かかか\\\hline
\end{tabular}

XXX,YYYの部分、◯●の部分の内側それぞれtabularで組んでいます。

XXX,YYYの3段を自然な形で\tabularで組んでから、右側の2段を計算しています。

3段分の高さを\dimen0に入れてから、それを2で割り、中の要素が中央に収まるように高さと深さを決めています。

もっと考えれば、-2.5mmなんて固定の値を使わないで自動的に計算できると思いますが、中途半端ななま終わってしまいました。

いつもですが、終わってしまえば面倒だったことを忘れてしまいます。ちょっとの間に、あたかも瞬時にできたかのように脳内変換されています。

私が突き詰めたマクロを書けないのは、これも理由の1つに違いない。

コメント