Colorear toda la fila en tabla/tabular

Colorear toda la fila en tabla/tabular

Me gustaría colorear la totalidad de la fila "Sendero 1" y "Sendero 3", además de esas palabras en sí (es decir, solo los números, pero el color va desde la regla \midrule hasta la siguiente). Esto también eliminaría los pequeños espacios en blanco intermedios, que no estoy seguro de cómo eliminar. ¿Cómo lo haría?

Además, ¿es posible agregar una leyenda a esto para indicar los colores? Sé que Pgfplots hace esto, pero no sé cómo incorporarlo debido a la diferencia entre tikzpicture y tabular (corrígeme si me equivoco, soy nuevo en esta comunidad).

Aquí está el código ejecutable:

\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[sexy]{evan}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage[table]{xcolor}
\newcommand{\mycc}{\cellcolor{lightgray}}

\begin{document}

\begin{center}
\begin{tabular}{SSSSSSS} \toprule
    {$m$} & {$2$m} & {$4$m} & {$6$m} & {$8$m} & {$10$m} & {$12$m} \\ \midrule
    \text{Trail 1}  & \mycc 1.48  & \mycc 2.76 & \mycc 4.02  & \mycc 5.22 & \mycc 6.43 & \mycc 7.76 \\ \midrule
    \text{Trail 2}  & 1.53 & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\ \midrule
    \text{Trail 3}  & \mycc 1.53  & \mycc 2.94 & \mycc 4.53  & \mycc 5.96 & \mycc 7.36 & \mycc 8.83 \\ \midrule
    \text{Trail 4}  & 1.80  & 3.46 & 4.94  & 6.49 & 8.20  & 9.85 \\ \bottomrule 
\end{tabular}    
\end{center}

\end{document}

No estoy seguro de qué hacer, así que cualquier ayuda será muy apreciada. Además, no estoy seguro de por qué los valores de los datos no están alineados, así que si eso también pudiera solucionarse, ¡sería genial!

EDITAR: Estas son algunas de las fuentes de donde proviene el código:

ingrese la descripción de la imagen aquí

Enlace de presentación

Enlace para colorear

Respuesta1

Por defectopestañasy los colores de las filas no combinan bien. Puede solucionar este problema agregando lo siguiente a su preámbulo:

\addtolength{\extrarowheight}{\belowrulesep}
\aboverulesep=0pt
\belowrulesep=0pt

Para la leyenda, simplemente arrojaría lo que deseas en un tabularentorno dentro de un minipageentorno, lo que te permite lograr algo como esto:

ingrese la descripción de la imagen aquí

Probablemente necesitarás ajustar esta "leyenda" para adaptarla a tus gustos.

Esto soluciona el problema con los colores de las filas que no llenan el tamaño vertical completo de las filas, sobre lo cual el OP no pregunta.pero no arregla la tenue línea entre las columnas, que es sobre lo que realmente pregunta el OP. Esta leve brecha es en mi opinión un error. La forma más sencilla de solucionar este problema es agregar @{}después de cada especificador de columna, lo que esencialmente es agregar "nada" entre las columnas, pero en lugar de no hacer nada, esto en realidad elimina una pequeña cantidad de espacio y, como resultado, elimina la delgada línea blanca tenue. entre las columnas.

Con la nueva solución, el resultado es:

ingrese la descripción de la imagen aquí

En particular, las líneas tenues entre las columnas han desaparecido.

Finalmente, en términos del color de las filas, tal vez esto sea el resultado de una simplificación de su código real para el MWE, pero en lugar de agregar \mycca cada una de las celdas que desea colorear, es más eficiente establecer el color de la fila y luego Úselo \cellcolorpara cambiar el color de fondo solo de la celda en la primera. De hecho, usando una macro como

\newcommand\colorrow{\rowcolor{lightgray}\cellcolor{white}}

Puedes hacer esto con solo un comando por fila coloreada.

Aquí está el código actualizado:

\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
%\usepackage[sexy]{evan}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage[table]{xcolor}
\newcommand{\mycc}{\cellcolor{lightgray}}
\newcommand\colorrow{\rowcolor{lightgray}\cellcolor{white}}

\addtolength{\extrarowheight}{\belowrulesep}
\aboverulesep=0pt
\belowrulesep=0pt

\begin{document}

\begin{center}
  \begin{tabular}{*6{S@{}}S} \toprule
    {$m$} & {$2$m} & {$4$m} & {$6$m} & {$8$m} & {$10$m} & {$12$m} \\ \midrule
    \colorrow
    \text{Trail 1}  &  1.48  &  2.76 &  4.02  &  5.22 &  6.43 &  7.76 \\ \midrule
    \text{Trail 2}  & 1.53 & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\ \midrule
    \colorrow
    \text{Trail 3}  &  1.53  &  2.94 &  4.53  &  5.96 &  7.36 &  8.83 \\ \midrule
    \text{Trail 4}  & 1.80  & 3.46 & 4.94  & 6.49 & 8.20  & 9.85 \\ \bottomrule
\end{tabular}

\smallskip

\hfil
\begin{minipage}{0.3\textwidth}
  \textbf{Legend}\\
  \begin{tabular}{ll}
     \mycc This colour & stuff
  \end{tabular}
\end{minipage}
\end{center}

\end{document}

Respuesta2

Usando líneas horizontales, ya sean dibujadas por \hlineo por \midrule,yLas filas de celdas coloreadas (o sombreadas) representan una mezcla de dos metáforas visuales que pueden resultar contraproducentes con bastante facilidad. No lo hagas. Si elimina (o comenta) las \midruledirectivas, la legibilidad de la tabla aumenta inmediatamente, y no necesita perder tiempo preocupándose por cómo deshacerse del molesto espacio en blanco que rodea las reglas horizontales.

Un comentario aparte: en lugar de emitir 2*6=12 \cellcolordirectivas separadas, emitiría 2 \rowcolor{lightgray}directivas para dos de las filas y 2 \cellcolor{white}directivas para las primeras celdas de estas dos filas, para anular el efecto de las \rowcolordirectivas para estas celdas.

ingrese la descripción de la imagen aquí

\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage[sexy]{evan} 
\usepackage{booktabs,siunitx}
\usepackage[table]{xcolor}

\begin{document}
\begin{center}
\renewcommand\arraystretch{1.25} % for a more open "look"
\begin{tabular}{@{} l *{6}{S[table-format=1.2]} } 
\toprule
    & {2m} & {4m} & {6m} & {8m} & {10m} & {12m} \\ %\midrule
    \rowcolor{lightgray}%
    \cellcolor{white}%
    Trail 1  & 1.48 & 2.76 & 4.02 & 5.22 & 6.43 & 7.76 \\ %\midrule
    Trail 2  & 1.53 & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\ %\midrule
    \rowcolor{lightgray}%
    \cellcolor{white}%
    Trail 3  & 1.53 & 2.94 & 4.53 & 5.96 & 7.36 & 8.83 \\ %\midrule
    Trail 4  & 1.80 & 3.46 & 4.94 & 6.49 & 8.20 & 9.85 \\ 
\bottomrule 
\end{tabular}    
\end{center}
\end{document}

Respuesta3

Una solución con matriz TiKz: la leyenda está inscrita en una fila en blanco al final

ingrese la descripción de la imagen aquí

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}

\tikzset{ 
    table/.style={
        matrix of nodes,
        nodes={
            rectangle,
            draw=none,
            align=center
        },
        minimum height=1.5em,
        every even row/.style={
            nodes={fill=black!30}
        },
        column 1/.style={
            nodes={text width=4em,font=\bfseries}
        },
    }
}

\begin{tikzpicture}
\matrix (first) [table,text width=4em]
{
    {$m$} & {$2$m} & {$4$m} & {$6$m} & {$8$m} & {$10$m} & {$12$m} \\
|[fill=white]|{Trail 1}  & 1.48  &  2.76 & 4.02  &  5.22 &  6.43 &  7.76 \\ 
{Trail 2}  & 1.53 & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\
|[fill=white]|{Trail 3}  &  1.53  & 2.94 &  4.53  &  5.96 &  7.36 & 8.83 \\
{Trail 4}  & 1.80  & 3.46 & 4.94  & 6.49 & 8.20  & 9.85 \\
&|[fill=white]|{}&&&&&\\
&&|[fill=black!30]|Legend&{defintion}&&&\\
};
\end{tikzpicture}
\end{document}

EDITAR Una solución con el excelente nicematrixpaquete.

\documentclass{article}
\usepackage{nicematrix}

\begin{document}
\begin{NiceTabular}{rrrrrrr}[code-before = \rowcolors{1}{white}{blue!15} \columncolor{white}{1}] 
    {$m$} & {$2$m} & {$4$m} & {$6$m} & {$8$m} & {$10$m} & {$12$m} \\
    \text{Trail 1}  & 1.48  &  2.76 & 4.02  &  5.22 &  6.43 &  7.76 \\
    \text{Trail 2}  & 1.53 & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\ 
    \text{Trail 3}  &  1.53  & 2.94 &  4.53  &  5.96 &  7.36 & 8.83 \\ 
    \text{Trail 4}  & 1.80  & 3.46 & 4.94  & 6.49 & 8.20  & 9.85 \\ 
\end{NiceTabular}   
\end{document}

y el resultado

ingrese la descripción de la imagen aquí

La leyenda se puede colocar en la sexta fila.

Respuesta4

Si desea que las filas de colores sean compatibles con booktabs, puede utilizar el entorno {NiceTabular}de nicematrix.

\documentclass[11pt]{scrartcl}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{xcolor}
\usepackage{nicematrix}

\begin{document}

\begin{center}
\begin{NiceTabular}{SSSSSSS}[colortbl-like] \toprule
    {$m$} & {$2$m} & {$4$m} & {$6$m} & {$8$m} & {$10$m} & {$12$m} \\ \midrule
    \text{Trail 1}  & \rowcolor{lightgray}1.48  & 2.76 & 4.02 & 5.22 & 6.43 & 7.76 \\ \midrule
    \text{Trail 2}  &                     1.53  & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\ \midrule
    \text{Trail 3}  & \rowcolor{lightgray}1.53  & 2.94 & 4.53 & 5.96 & 7.36 & 8.83 \\ \midrule
    \text{Trail 4}  &                           & 3.46 & 4.94 & 6.49 & 8.20 & 9.85 \\ \bottomrule 
\end{NiceTabular}    
\end{center}

\end{document}

Sin embargo, necesitas varias compilaciones.

Salida del código anterior

información relacionada