Ganze Zeile in Tabelle/Tabelle einfärben

Ganze Zeile in Tabelle/Tabelle einfärben

Ich möchte die gesamte Zeile „Trail 1“ und „Trail 3“ einfärben, abgesehen von den Wörtern selbst (also nur die Zahlen, aber die Einfärbung verläuft von der \midrule zur nächsten). Dadurch würden auch die winzigen weißen Zwischenräume entfernt, bei denen ich mir nicht sicher bin, wie ich sie entfernen soll. Wie würde ich das tun?

Ist es außerdem möglich, eine Legende hinzuzufügen, um Farben anzuzeigen? Ich weiß, dass Pgfplots dies tut, aber ich weiß nicht, wie ich es aufgrund des Unterschieds zwischen Tikzpicture und tabular einbinden kann (korrigieren Sie mich, wenn ich falsch liege, ich bin neu in dieser Community).

Hier ist der ausführbare Code:

\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}

Ich bin mir nicht sicher, was ich tun soll, daher wäre ich für jede Hilfe sehr dankbar! Außerdem bin ich mir nicht sicher, warum die Datenwerte nicht ausgerichtet sind. Wenn das also auch behoben werden könnte, wäre das großartig!

BEARBEITEN: Hier sind einige der Quellen, aus denen der Code stammt:

Bildbeschreibung hier eingeben

Link zur Tabellenerstellung

Link zum Ausmalen

Antwort1

StandardmäßigBuchtabsund Zeilenfarben passen nicht gut zusammen. Sie können dies umgehen, indem Sie Ihrer Präambel Folgendes hinzufügen:

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

Für die Legende würde ich einfach das, was Sie wollen, in eine tabularUmgebung innerhalb einer minipageUmgebung einfügen, wodurch Sie etwa Folgendes erreichen können:

Bildbeschreibung hier eingeben

Sie müssen diese „Legende“ wahrscheinlich Ihrem Geschmack entsprechend anpassen.

Dies behebt das Problem, dass die Zeilenfarben nicht die gesamte vertikale Größe der Zeilen ausfüllen, worüber der OP nicht fragt.aber es fixiert nicht die schwache Linie zwischen den Säulen, wonach der OP eigentlich fragt. Diese schwache Lücke ist für ihn ein Fehler. Die einfachste Möglichkeit, dies zu beheben, besteht darin, @{}nach jedem Spaltenbezeichner Folgendes hinzuzufügen, was im Wesentlichen „nichts“ zwischen den Spalten hinzufügt, aber anstatt nichts zu tun, wird tatsächlich ein kleiner Abstand entfernt und infolgedessen die dünne, schwache weiße Linie zwischen den Spalten entfernt.

Mit dem neuen Fix lautet die Ausgabe:

Bildbeschreibung hier eingeben

Insbesondere die schwachen Linien zwischen den Spalten sind inzwischen verschwunden.

Was schließlich die Zeilenfärbung betrifft, ist dies vielleicht das Ergebnis einer Vereinfachung Ihres eigentlichen Codes für das MWE, aber anstatt \myccjeder Zelle, die Sie färben möchten, etwas hinzuzufügen, ist es effizienter, die Zeilenfarbe festzulegen und dann \cellcolordie Hintergrundfarbe nur der Zelle in der ersten zu ändern. Tatsächlich kann man mit einem Makro wie

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

Dies ist mit nur einem Befehl pro Farbreihe möglich.

Hier ist der aktualisierte Code:

\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}

Antwort2

Die Verwendung horizontaler Linien, egal ob sie von \hlineoder von gezeichnet werden \midrule,UndFarbige (oder schattierte) Zellenreihen stellen eine Mischung aus zwei visuellen Metaphern dar, die leicht nach hinten losgehen können. Tun Sie das nicht. Wenn Sie die \midruleAnweisungen weglassen (oder auskommentieren), verbessert sich die Lesbarkeit der Tabelle sofort – und Sie müssen sich keine Gedanken darüber machen, wie Sie die lästigen Leerzeichen um die horizontalen Linien herum loswerden.

Ein separater Kommentar: Anstatt 2*6=12 separate \cellcolorAnweisungen auszugeben, würde ich 2 \rowcolor{lightgray}Anweisungen für zwei der Zeilen und 2 \cellcolor{white}Anweisungen für die ersten Zellen in diesen beiden Zeilen ausgeben, um die Wirkung der \rowcolorAnweisungen für diese Zellen außer Kraft zu setzen.

Bildbeschreibung hier eingeben

\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}

Antwort3

Eine Lösung mit TiKz-Matrix - die Legende steht in einer leeren Zeile am Ende

Bildbeschreibung hier eingeben

\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 Eine Lösung mit dem hervorragenden nicematrixPaket

\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}

und das Ergebnis

Bildbeschreibung hier eingeben

Die Legende kann in der sechsten Zeile platziert werden

Antwort4

Wenn Sie farbige Zeilen wünschen, die mit kompatibel sind booktabs, können Sie die Umgebung {NiceTabular}von verwenden 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}

Allerdings benötigt man dazu mehrere Zusammenstellungen.

Ausgabe des obigen Codes

verwandte Informationen