Especificando una columna inicial con el paquete colortbl y xcolor

Especificando una columna inicial con el paquete colortbl y xcolor

Tengo una tabla que intenté configurar de la siguiente manera (ejemplo artificial):

% Preview source code

%% LyX 2.3.2-2 created this file.  For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{geometry}
\geometry{verbose,tmargin=0.25in,bmargin=0.25cm,lmargin=0.25cm,rmargin=0.25cm}
\usepackage{array}
\usepackage{multirow}
\usepackage{graphicx}

\makeatletter

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
%% Because html converters don't know tabularnewline
\providecommand{\tabularnewline}{\\}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\usepackage[table]{xcolor} %for use in color links
\usepackage{colortbl}

\makeatother

\usepackage{babel}
\begin{document}
\noindent \begin{flushleft}
\rowcolors{3}{gray!20}{}%
\begin{tabular}{ccccccc}
 &  & \multicolumn{5}{c}{Lorem ipsum dolor sit amet}\tabularnewline
 &  & Header & Header & Header & Header & Header\tabularnewline
\multirow{8}{*}{\cellcolor{white}\rotatebox{90}{Lorem ipsum}} & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
\end{tabular}\rowcolors{2}{}{}
\par\end{flushleft}
\end{document}

Disculpas de antemano por este código generado, pero un comentarista a continuación solicitó un ejemplo compilable completo en lugar de solo el fragmento tabular que había publicado originalmente. Con suerte, esto lo aclarará, pero pido disculpas de antemano si ha confuso el problema.

De todos modos, esto se representa como:

Mesa

Como se ve, el encabezado lateral que estoy usando en el lado izquierdo de la tabla se sobrescribe con el color de la fila, interrumpiendo el texto.

Lo que me gustaría hacer es que toda la primera columna que contiene el encabezado de la fila izquierda sea blanca en todas las filas, lo cual intenté hacer agregando \cellcolor{white}a la celda de varias filas, pero como indica la imagen, solo borró la franja gris superior en esa celda, y no hizo nada al resto de la primera columna.

¿Cómo puedo hacer que el texto completo del encabezado se muestre correctamente?

Respuesta1

El uso \multirowes la causa de sus problemas.

\documentclass{article}
\usepackage{graphicx}
\usepackage[table]{xcolor} %for use in color links

\begin{document}

\begin{flushleft}
\begin{tabular}{@{}c}
\rotatebox[origin=c]{90}{Lorem ipsum\hspace{2\dimexpr\ht\strutbox+\dp\strutbox}}
\end{tabular}%
\rowcolors{3}{gray!20}{}%
\begin{tabular}{cccccc}
 & \multicolumn{5}{c}{Lorem ipsum dolor sit amet}\tabularnewline
 & Header & Header & Header & Header & Header\tabularnewline
Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
\end{tabular}\rowcolors{2}{}{}
\end{flushleft}

\end{document}

He reducido el documento al mínimo necesario.

Tenga en cuenta que esto \noindent\begin{flushleft}no tiene sentido, porque simplemente agrega un espacio vertical no deseado (una línea en blanco). Tampoco \par\end{flushleft}es necesario.

ingrese la descripción de la imagen aquí

¿Qué ordena el extraño \hspace? Agrega el tamaño vertical de las dos filas del encabezado.

Respuesta2

En el siguiente código, agregué un \cellcolor{white}comando a todas las celdas que están en una fila gris y en realidad deberían tener un fondo blanco. También cambié el \multirowcomando de la primera fila a la última fila y lo usé -8en lugar de 8:

\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{geometry}
\geometry{verbose,tmargin=0.25in,bmargin=0.25cm,lmargin=0.25cm,rmargin=0.25cm}
\usepackage{array}
\usepackage{multirow}
\usepackage{graphicx}

\usepackage[table]{xcolor}


\begin{document}
\noindent 
\begin{flushleft}
\rowcolors{3}{gray!20}{}%
\begin{tabular}{ccccccc}
 &  & \multicolumn{5}{c}{Lorem ipsum dolor sit amet}\tabularnewline
 &  & Header & Header & Header & Header & Header\tabularnewline
\cellcolor{white} & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
\cellcolor{white} & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
\cellcolor{white} & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
\cellcolor{white} & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
\multirow{-8}{*}{\rotatebox{90}{Lorem ipsum}} & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\tabularnewline
\end{tabular}
\par\end{flushleft}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta3

En{NiceTabular} of nicematrix, tiene un comando incorporado \rowcolorsque tiene una opción para controlar las columnas afectadas por el comando.

\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage{geometry}
\geometry{verbose,tmargin=0.25in,bmargin=0.25cm,lmargin=0.25cm,rmargin=0.25cm}
\usepackage{graphicx}
\usepackage{nicematrix}

\begin{document}
\begin{NiceTabular}{ccccccc}[color-inside]
 &  & \Block{1-*}{Lorem ipsum dolor sit amet}\\
 &  & Header & Header & Header & Header & Header\\
\rowcolors{gray!20}{}[cols=2-7]
\Block{*-1}<\rotate>{Lorem ipsum}
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\\
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\\
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\\
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\\
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\\
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\\
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\\
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\\
\end{NiceTabular}
\end{document}

Necesitas varias compilaciones (porquenicematrix utiliza nodos PGF/Tikz bajo el capó).

Salida del código anterior

En este caso, existe una solución más sencilla. Puedes especificar que tu tabular tenga lo quenicematrix llama una "primera columna" (con la tecla first-col) y el comando \rowcolorsactuará directamente como se esperaba.

\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage{geometry}
\geometry{verbose,tmargin=0.25in,bmargin=0.25cm,lmargin=0.25cm,rmargin=0.25cm}
\usepackage{graphicx}
\usepackage{nicematrix}

\begin{document}
\begin{NiceTabular}{cccccc}[first-col,color-inside]
 &  & \Block{1-*}{Lorem ipsum dolor sit amet}\\
 &  & Header & Header & Header & Header & Header\\
\rowcolors{gray!20}{}
\Block{*-1}<\rotate>{Lorem ipsum}
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\\
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\\
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\\
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\\
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\\
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\\
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\\
 & Content & \#\#\# & \#\#\# & \#\#\# & \#\#\# & \#\#\#\\
\end{NiceTabular}
\end{document}

La salida es la misma.

información relacionada