\columncolor на переднем плане, если используется \multirow

\columncolor на переднем плане, если используется \multirow

Кажется, если я использую>{\columncolor{green!30}}c ив этом столбце есть \multirowсодержимое, цвет оказывается на переднем плане.

Единственное различие в этих двух таблицах заключается в том, что во второй таблице изменения применены >{\columncolor{green!30}}к первому столбцу, а в первой — нет.

введите описание изображения здесь

Код:

\documentclass{article}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{colortbl}
\usepackage{multirow}

\newcommand*{\MyTabelContent}{%
        \toprule
        &$+$ & 0 & 1 & 2 & 3 & 4 & 5 
        \\
        \multirow{6}{*}{\rotatebox{90}{Label}}
         &0 & & & & & &
        \\
         &1 & & & & & &
        \\
         &2 & & & & & &
        \\
         &3 & & & & & &
        \\
         &4 & & & & & &
        \\
         &5 & & & & & &
        \\
        \bottomrule
}

\begin{document}
\noindent
    \begin{tabular}{c >{\columncolor{cyan!30}}cccccc c @{}}
        \MyTabelContent
    \end{tabular}
    \quad
    \begin{tabular}{>{\columncolor{green!30}}c >{\columncolor{cyan!30}}cccccc c @{}}
        \MyTabelContent
    \end{tabular}%
\end{document}

решение1

Вы можете получить то, что вам нужно, используя \multirowв самой нижней строке и указав отрицательное количество строк.

\documentclass{article}
\usepackage[table]{xcolor} % also loads colortbl
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{multirow}

\newcommand*{\MyTabelContent}{%
        \toprule
        &$+$ & 0 & 1 & 2 & 3 & 4 & 5 
        \\
         &0 & & & & & &
        \\
         &1 & & & & & &
        \\
         &2 & & & & & &
        \\
         &3 & & & & & &
        \\
         &4 & & & & & &
        \\
        \multirow{-6}{*}{\rotatebox{90}{Label}}
         &5 & & & & & &
        \\
        \bottomrule
}

\begin{document}
\noindent
    \begin{tabular}{c >{\columncolor{cyan!30}}cccccc c @{}}
        \MyTabelContent
    \end{tabular}
    \quad
    \begin{tabular}{>{\columncolor{green!30}}c >{\columncolor{cyan!30}}cccccc c @{}}
        \MyTabelContent
    \end{tabular}%
\end{document}

введите описание изображения здесь

решение2

С помощью {NiceTabular}of nicematrix(и ключа colortbl-like) вы сразу получаете ожидаемый результат.

\documentclass{article}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{nicematrix}

\newcommand*{\MyTabelContent}{%
        \toprule
        &$+$ & 0 & 1 & 2 & 3 & 4 & 5 
        \\
        \multirow{6}{*}{\rotatebox{90}{Label}}
         &0 & & & & & &
        \\
         &1 & & & & & &
        \\
         &2 & & & & & &
        \\
         &3 & & & & & &
        \\
         &4 & & & & & &
        \\
         &5 & & & & & &
        \\
        \bottomrule
}

\begin{document}
\noindent
    \begin{NiceTabular}{c >{\columncolor{cyan!30}}ccccccc@{}}[colortbl-like]
        \MyTabelContent
    \end{NiceTabular}
    \quad
    \begin{NiceTabular}{>{\columncolor{green!30}}c >{\columncolor{cyan!30}}ccccccc@{}}[colortbl-like]
        \MyTabelContent
    \end{NiceTabular}%
\end{document}

Цветные панели простираются до правил booktabsдизайна nicematrix.

Вам нужно несколько компиляций (т.к. nicematrixвнутри используются узлы PGF/Tikz).

Вывод кода выше

Связанный контент