TeXの記憶(80) — rowの中央に配置する

LaTeXのtabularコマンドを使っているときに、あるセルだけ複数行の中央に配置したいときがあります。こんなときはどなたかが作られた\CenterRowが便利です。

\newcommand{\CenterRow}[2]{
  \dimen0=\ht\strutbox%
  \advance\dimen0\dp\strutbox%
  \multiply\dimen0 by#1%
  \divide\dimen0 by2%
  \advance\dimen0 by-.5\normalbaselineskip%
  \raisebox{-\dimen0}[0pt][0pt]{#2}}

中央に配置しない場合は、\raisebox{xxx}[0pt][0pt]を使うと高さに影響を与えずに自由に配置できるのでこちらも便利です。テキスト中に小さな画像ファイルを入れたりするときに \raisebox{1mm}[0pt][0pt]{\includegraphics{…}}のように使っています。

\begin{tabular}{|c|c|}\hline
見出し1 & 見出し2 \\\hline
\CenterRow{2}{天地中央} & 右の要素1 \\
& 右の要素2 \\\hline
\raisebox{-3mm}[0pt][0pt]{天地中央} & 右の要素1 \\
& 右の要素2 \\\hline
\end{tabular}

1023

コメント