三个数字。
首先,text2 在 textB/textC 上方一行 [OK] 不幸的是,我需要在源代码中为 text2 添加一行 - 因此,textA 需要太多空间(但我可以忍受)
现在,我想将背景颜色设为灰色而不是白色,如果 text2 在第一行,则此方法可行(参见 multirow(1))。
第三,如果 text2 位于 textB/textC 上方,则灰色不起作用 - 为什么 text2 会被覆盖,尽管它的颜色是黑色?谢谢!
这里是最小的例子:
\documentclass{scrbook}
\usepackage[usenames,dvipsnames,table]{xcolor}
\usepackage{multirow}
\usepackage{colortbl}
\usepackage[english]{babel}
\usepackage{biblatex}
\usepackage{pdfpages}
\definecolor{COLORROW}{HTML}{BEBEBE}
\makeatother
\begin{document}
\begin{tabular}{rrr}
& \multicolumn{2}{c}{\multirow{3}{*}{\footnotesize{text2}}} \\
\rotatebox{90}{\footnotesize{textA}} & \footnotesize{textB} & \footnotesize{textC} \\
\end{tabular}
\begin{tabular}{rrr}
\rowcolor{COLORROW}
& \multicolumn{2}{c}{\multirow{1}{*}{\footnotesize{text2}}} \\
\rowcolor{COLORROW}
\rotatebox{90}{\footnotesize{textA}} & \footnotesize{textB} & \footnotesize{textC} \\
\end{tabular}
\begin{tabular}{rrr}
\rowcolor{COLORROW}
& \multicolumn{2}{c}{\multirow{3}{*}{\footnotesize{text2}}} \\
\rowcolor{COLORROW}
\rotatebox{90}{\footnotesize{textA}} & \footnotesize{textB} & \footnotesize{textC} \\
\end{tabular}
\end{document}
文本
答案1
摘自该包的用户指南第 3.4 节multirow
:
如果您使用
\multirow
该colortbl
软件包,则必须采取预防措施,以便为包含的列着色\multirow
。该colortbl
软件包的工作原理是分别为每个单元格着色。因此,如果您使用\multirow
正值<nrows>
,colortbl
将首先为顶部单元格着色,然后从此单元格开始\multirow
排版<nrows>
单元格,然后colortbl
再为其他单元格着色,从而有效地隐藏该区域中的文本。...
用户指南继续建议一种解决方法,但据我所知,该解决方法不适用于您的设置。相反,我建议使用两个嵌套环境,并且根本tabular
不使用。multirow
顺便说一句,请注意 不是\footnotesize
一个接受参数的宏。相反,它的作用类似于开关,即其范围是当前 TeX 组的末尾。\footnotesize textC
最好写 而不是\footnotesize{textC}
。如果你是一个注重细节的人,你可能会写{\footnotesize textC}
。但是,由于环境中的单元格是 TeX 组,因此在这种情况下tabular
写 而不是 没有任何优势。{\footnotesize textC}
\footnotesize textC
\documentclass{scrbook}
\usepackage[usenames,dvipsnames,table]{xcolor}
\definecolor{mygray}{HTML}{BEBEBE}
\usepackage{multirow,graphicx}
\usepackage[english]{babel}
\newcommand\rot[1]{\rotatebox{90}{\footnotesize#1}} % handy shortcut macro
\begin{document}
\begin{tabular}{|rrr|}
\hline
& \multicolumn{2}{c|}{\multirow{3}{*}{\footnotesize text2}} \\
\rot{textA} & \footnotesize textB & \footnotesize textC \\
\hline
\end{tabular} --- without color, ``text2'' is visible
\begin{tabular}{rrr}
\rowcolor{mygray}
& \multicolumn{2}{c}{\multirow{3}{*}{\footnotesize text2 }} \\
\rowcolor{mygray}
\rot{textA} & \footnotesize textB & \footnotesize textC \\
\end{tabular} --- with color and multirow, ``text2 is hidden''
\begin{tabular}{rrr}
\rowcolor{mygray} & & \\
\rowcolor{mygray} \rot{textA} & \multicolumn{2}{c}{%
\begin{tabular}[b]{@{}cc@{}}
\rowcolor{mygray} \multicolumn{2}{c}{\footnotesize text2} \\
\rowcolor{mygray} \footnotesize textB & \footnotesize textC
\end{tabular}}
\end{tabular} --- ``text2'' is visible once more
\end{document}