Gostaria de colorir toda a linha "Trilha 1" e "Trilha 3", exceto as próprias palavras (ou seja, apenas os números, mas a coloração vai de \midrule para a próxima). Isso também removeria os pequenos espaços em branco intermediários, que não sei como remover. Como eu faria isso?
Além disso, é possível adicionar uma legenda para indicar as cores? Eu sei que o Pgfplots faz isso, mas não sei como incorporá-lo devido à diferença entre tikzpicture e tabular (corrija-me se estiver errado, sou novo nesta comunidade).
Aqui está o código executável:
\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}
Não tenho certeza do que fazer, então qualquer ajuda será muito apreciada! Além disso, não sei por que os valores dos dados não estão alinhados; portanto, se isso também pudesse ser corrigido, seria ótimo!
EDIT: Aqui estão algumas das fontes de onde vem o código:
Responder1
Por padrãoguias de livrose as cores das linhas não combinam bem. Você pode contornar isso adicionando o seguinte ao seu preâmbulo:
\addtolength{\extrarowheight}{\belowrulesep}
\aboverulesep=0pt
\belowrulesep=0pt
Para a lenda, eu apenas jogaria o que você deseja em um tabular
ambiente dentro de um minipage
ambiente, o que permite alcançar algo assim:
Você provavelmente precisará ajustar essa “lenda” de acordo com seu gosto.
Isso corrige o problema de as cores das linhas não preencherem todo o tamanho vertical das linhas, o que o OP não pergunta,mas não corrige a linha tênue entre as colunas, que é sobre o que o OP está realmente perguntando. Essa pequena lacuna é um bug. A maneira mais fácil de corrigir isso é adicionar @{}
após cada especificador de coluna, o que basicamente adiciona "nada" entre as colunas, mas em vez de não fazer nada, isso remove uma pequena quantidade de espaço e, como resultado, remove a linha branca fina e tênue entre as colunas.
Com a nova correção a saída é:
Em particular, as linhas tênues entre as colunas desapareceram.
Finalmente, em termos de coloração de linha, talvez isso seja resultado de uma simplificação do seu código real para o MWE, mas em vez de adicionar \mycc
a cada uma das células que você deseja colorir, é mais eficiente definir a cor da linha e depois use \cellcolor
para alterar a cor de fundo apenas da célula da primeira. Na verdade, usando uma macro como
\newcommand\colorrow{\rowcolor{lightgray}\cellcolor{white}}
você pode fazer isso com apenas um comando por linha colorida.
Aqui está o código atualizado:
\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}
Responder2
Usando linhas horizontais, sejam elas desenhadas por \hline
ou por \midrule
,elinhas coloridas (ou sombreadas) de células representam uma mistura de duas metáforas visuais que podem sair pela culatra com bastante facilidade. Não faça isso. Se você descartar (ou comentar) as \midrule
diretivas, a legibilidade da tabela aumentará imediatamente - e você não precisará perder tempo se preocupando em como se livrar dos incômodos espaços em branco que cercam as regras horizontais.
Um comentário separado: em vez de emitir 2*6=12 \cellcolor
diretivas separadas, eu emitiria 2 \rowcolor{lightgray}
diretivas para duas das linhas e 2 \cellcolor{white}
diretivas para as primeiras células nessas duas linhas, para substituir o efeito das \rowcolor
diretivas para essas células.
\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}
Responder3
Uma solução com matriz TiKz – a legenda está inscrita em uma linha em branco no final
\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 Uma solução com excelente nicematrix
pacote
\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 o resultado
A legenda pode ser colocada na sexta linha
Responder4
Se você quiser linhas coloridas compatíveis com booktabs
, você pode usar o ambiente {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}
No entanto, você precisa de várias compilações.