multirowで色付け実験
下の方にまとめて出力結果があります。
- プリアンブル
\usepackage{graphicx,colortbl,multirow} \setlength{\doublerulesep}{2pt} \setlength{\arrayrulewidth}{1pt} \doublerulesepcolor{red} \arrayrulecolor{blue}
- 第1例:\multirowの基本的な使い方。
\begin{tabular}{|c|c|} \hline \multirow{2}{1zw}{A} & B \\ \cline{2-2} & C \\ \hline \end{tabular}
- 第2例:素直に行に色付けする\rowcolorを使ってみる。左下のセルの塗りつぶしでテキストが上書きされる。右の行罫線も消えている。
\begin{tabular}{|c|c|} \hline \rowcolor{yellow}\multirow{2}{1zw}{A} & B \\ \cline{2-2} \rowcolor{yellow}& C \\ \hline \end{tabular}
- 第3例:セルごとに色付けする\cellcolorを使っても同じ結果。
\begin{tabular}{|c|c|} \hline \multirow{2}{1zw}{\cellcolor{yellow}A} & \cellcolor{yellow} B \\ \cline{2-2} \cellcolor{yellow}& \cellcolor{yellow} C \\ \hline \end{tabular}
ではこれを何とかする方法はないのか。「multirow」「color」で検索。
\multirowをcolortblと一緒に使うとき、\multirowを含む列を色付けしたければ事前に対策を練らねばならない。colortblはそれぞれのセルを別々に色付けする。だから\multirowを正のnrows値と一緒に使うとcolortblがまず一番上のセルを塗り、それから\multirowがこのセルから初めてnrows個のセルを組版し、その後でcolortblが他のセルを塗るので、その領域のテキストは隠れてしまう。これはnrowsに負値をいれて\multirowを最終行に置くことで解決する。
http://www.ctan.org/tex-archive/macros/latex/contrib/multirow/の最後の段落。なるほど。行数に負値を入れるという発想はなかった。
- 第4例:multirowの行数に負値を入れて最終行に置くと確かに左の列は解決。右の行罫線は\clineを二つ重ねても表示されない。\clineは自由度が低いようだ。
\begin{tabular}{||c||c||} \hline \hline \cellcolor{yellow}& \cellcolor{yellow} B \\ \arrayrulecolor{blue} \cline{2-2}\cline{2-2} \multirow{-2}{1zw}{\cellcolor{yellow}A} & \cellcolor{yellow} C \\ \hline\hline \end{tabular}
- 第5例:しかたないので行罫線を使うのはやめて、黒く塗った小さなセルを作って罫線とみなすことにする。ここから線の色とか黒にする。行数と行高をいじったことで左列にも影響が出る。
\doublerulesepcolor{black} \arrayrulecolor{black} \begin{tabular}{||c||c||} \hline \hline \cellcolor{yellow}& \cellcolor{yellow} B \\ \cellcolor{yellow}\vspace{-1.4zw}& \cellcolor{black}\\ \multirow{-3}{1zw}{\cellcolor{yellow}A} & \cellcolor{yellow} C \\ \hline\hline \end{tabular}
- 第6例:左列を調整してようやく目的のものができる。
\begin{tabular}{||c||c||} \hline \hline \cellcolor{yellow}& \cellcolor{yellow} B \\ \cellcolor{yellow}\vspace{-1.4zw}& \cellcolor{black}\\ \multirow{-3}{1zw}{\cellcolor{yellow}\vspace{-1.4zw}A} & \cellcolor{yellow} C \\ \hline\hline \end{tabular}
-
- TeXで表の色組みはHTMLほど簡単にはいかないらしい。