Colorare l'intera riga in tabella / tabulare
Vorrei colorare l'intera riga "Trail 1" e "Trail 3", oltre a quelle stesse parole (cioè solo i numeri, ma la colorazione va dalla \ midrule alla successiva). Ciò rimuoverebbe anche i minuscoli spazi bianchi in mezzo, che non sono sicuro di come rimuovere. Come lo farei?
Inoltre, è possibile aggiungere una legenda a questo per indicare i colori? So che Pgfplots fa questo, ma non so come incorporarlo a causa della differenza tra tikzpicture e tabular (correggimi se sbaglio, sono nuovo in questa comunità).
Ecco il codice eseguibile:
\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}
Non sono sicuro di cosa fare, quindi qualsiasi aiuto che sia molto apprezzato! Inoltre, non sono sicuro del motivo per cui i valori dei dati non sono allineati, quindi se anche questo potesse essere corretto, sarebbe fantastico!
EDIT: ecco alcune delle fonti da cui proviene il codice:
Tabling Link
Link da colorare
Risposte
Per impostazione predefinita, i booktabs ei colori delle righe non funzionano bene insieme. Puoi aggirare questo problema aggiungendo quanto segue al tuo preambolo:
\addtolength{\extrarowheight}{\belowrulesep}
\aboverulesep=0pt
\belowrulesep=0pt
Per la leggenda vorrei semplicemente lanciare ciò che vuoi in un tabularambiente all'interno di un minipageambiente, che ti consente di ottenere qualcosa del genere:
Probabilmente dovrai adattare questa "leggenda" ai tuoi gusti.
Ciò risolve il problema con i colori delle righe che non riempiono l'intera dimensione verticale delle righe, cosa che l'OP non chiede, ma non corregge la linea debole tra le colonne , che è ciò che l'OP sta effettivamente chiedendo. Questo debole divario è ihmo un bug. Il modo più semplice per risolvere questo problema è aggiungere @{}dopo ogni specificatore di colonna, che essenzialmente aggiunge "niente" tra le colonne ma piuttosto che non fare nulla rimuove effettivamente una piccola quantità di spazio e, di conseguenza, rimuove la sottile linea bianca debole tra le colonne.
Con la nuova correzione l'output è:
In particolare, le deboli linee tra le colonne sono ora scomparse.
Infine, in termini di colorazione delle righe, forse questo è il risultato di una semplificazione del codice reale per il MWE, ma piuttosto che aggiungere \mycca ciascuna delle celle che si desidera colorare è più efficiente impostare il colore della riga e quindi utilizzare \cellcolorper modificare il colore di sfondo solo della cella nella prima. In effetti, utilizzando una macro come
\newcommand\colorrow{\rowcolor{lightgray}\cellcolor{white}}
puoi farlo con un solo comando per riga colorata.
Ecco il codice aggiornato:
\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}
L'uso di linee orizzontali, disegnate da \hlineo da \midrule, e righe di celle colorate (o ombreggiate) rappresenta una miscela di due metafore visive che possono ritorcersi contro abbastanza facilmente. Non farlo. Se si eliminano (o si commentano) le \midruledirettive, la leggibilità della tabella aumenta immediatamente e non è necessario perdere tempo a preoccuparsi di come sbarazzarsi del fastidioso spazio bianco che circonda le regole orizzontali.
Un commento separato: invece di emettere 2 * 6 = 12 \cellcolordirettive separate , emetterei 2 \rowcolor{lightgray}direttive per due delle righe e 2 \cellcolor{white}direttive per le prime celle in queste due righe, per sovrascrivere l'effetto delle \rowcolordirettive per queste celle.
\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}
Una soluzione con matrice TiKz: la legenda è inscritta in una riga vuota alla fine
\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}
EDIT Una soluzione con l'ottimo nicematrixpacchetto
\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}
e il risultato
La legenda può essere collocata nella sesta riga
Se vuoi che le righe colorate siano compatibili con booktabs, puoi usare l'ambiente {NiceTabular}di 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}
Tuttavia, sono necessarie diverse compilation.