Tuesday, January 29, 2008

Laboratory::LaTeX - 表を二つ以上上揃えで並べる

表を一行で二つ以上並べたいとかなったとき,下記のとおりにするかもしれません.
\begin{table}
\begin{tabular}{ll}
\begin{tabular}{|c|c|c|}
\hline
a & a & a \\ \hline
a & a & a \\ \hline
a & a & a \\ \hline
a & a & a \\ \hline
a & a & a \\ \hline
\end{tabular}

&

\begin{tabular}{|c|c|}
\hline
b & c \\ \hline
d & e \\
\hline
\end{tabular}
\end{tabular}
\end{table}


ただこうしてしまうと,一番外側のtableがページの真ん中にこようとしてしまう上,
二つのテーブルが上下の真ん中を取ろうとしてしまう.
つまるところ二つのテーブルの行数が異なると,上揃えないし下揃えしたくなるのに
中揃えになってしまって気持ち悪い.

私の場合,気持ち悪いのもありますが,
大学のシラバスのPDFを作るシステムの開発も最近やってまして,
中揃えなレイアウトは困るわけです.
どーすりゃいいんだーと悩んでいたのですが,
下記のとおり,表示する二つのテーブルのtabularに[t]をつければ上揃えができるようです.
\begin{table}[!h]
\begin{tabular}{ll}
\begin{tabular}[t]{|c|c|c|}
\hline
a & a & a \\ \hline
a & a & a \\ \hline
a & a & a \\ \hline
a & a & a \\ \hline
a & a & a \\ \hline
\end{tabular}

&

\begin{tabular}[t]{|c|c|}
\hline
b & c \\ \hline
d & e \\
\hline
\end{tabular}
\end{tabular}
\end{table}

\end{document}

ちなみに一番外っかわのtableには[!h]をつけて,ページの上側に表示されるようにしています.
二つのテーブルのうち,一つはminipageの中で表示させたいときなんかは,
\begin{table}[!h]
\begin{tabular}{ll}
\begin{tabular}[t]{|c|c|c|}
\hline
a & a & a \\ \hline
a & a & a \\ \hline
a & a & a \\ \hline
a & a & a \\ \hline
a & a & a \\ \hline
\end{tabular}

&

\begin{minipage}[t]{5cm}
\begin{tabular}[t]{|c|c|}
\hline
b & c \\ \hline
d & e \\
\hline
\end{tabular}
\end{minipage}
\end{tabular}
\end{table}

\end{document}

でいけました.まぁminipageにも位置のオプションつけてるだけですが.
Googleで探してもこの手の問題の解決策が全然見当たらず,困っていましたが,
なんとかなりました.
別に常識的なことなんでしょうかね??
まだまだTeXの勉強が足らんちゅーことでしょうか.

No comments: