使用多行时文本被覆盖

使用多行时文本被覆盖

三个数字。

首先,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

如果您使用\multirowcolortbl软件包,则必须采取预防措施,以便为包含的列着色\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}

相关内容