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:
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 tabular
Umgebung innerhalb einer minipage
Umgebung einfügen, wodurch Sie etwa Folgendes erreichen können:
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:
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 \mycc
jeder Zelle, die Sie färben möchten, etwas hinzuzufügen, ist es effizienter, die Zeilenfarbe festzulegen und dann \cellcolor
die 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 \hline
oder 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 \midrule
Anweisungen 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 \cellcolor
Anweisungen 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 \rowcolor
Anweisungen für diese Zellen außer Kraft zu setzen.
\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
\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 nicematrix
Paket
\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
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.