Mit siunitx eine Tabellenspalte hervorheben?

Mit siunitx eine Tabellenspalte hervorheben?

Ich verwende siunitx, um meine Spalten am Dezimalpunkt auszurichten. Ich möchte eine der Spalten in meiner Tabelle hervorheben (bearbeitet: einer Spalte einen farbigen Hintergrund geben). Ich habe mich gefragt, ob siunitx dafür eine Funktion hat. Bisher ist es mir nur gelungen, die Schriftfarbe wie folgt zu ändern:

\documentclass[]{article}

\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{color}

\begin{document}

\begin{tabular}{S[table-format=3.2]S[table-
format=3.2]S[table-format=3.2,color=red]}
    \toprule
    1 &       2 &       3  \\
    1.0 &     2.0 &     3.0 \\
    \bottomrule
\end{tabular}
\end{document}

Das Ergebnis lautet:

Tabelle mit rotem Text.

Es wäre wirklich toll, wenn jemand eine sanfte Grünfarbe kennt, die sich auch in Graustufen gut drucken lässt.

Antwort1

Ihre Lösung funktioniert nicht. Eine einfache Lösung, bei der auch die Schriftart in den Spaltenüberschriften farbig dargestellt wird, lautet:

\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage[table]{xcolor}

\begin{document}

\begin{tabular}{S[table-format=3.2]
                S[table-format=3.2]
  >{\color{red}}S[table-format=3.2]}% correct way to prescribe font color
    \toprule
    1 &       2 &       3  \\
    1.0 &     2.0 &     3.0 \\
    \bottomrule
\end{tabular}
\end{document}

Bildbeschreibung hier eingeben

Fortgeschrittenere Lösung, bei der Sie auswählen können, welche Zellen ihren Inhalt rot darstellen sollen:

\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{xcolor}
\usepackage{etoolbox}           % <--
\newrobustcmd{\R}{\color{red}}  % <--

\begin{document}
\begin{tabular}{S[table-format=3.2]
                S[table-format=3.2]
                S[detect-weight,% <--
                  table-format=3.2]}
    \toprule
    1   &   2   &     3  \\
    1.0 &   2.0 & \R  3.0 \\
    \bottomrule
\end{tabular}
\end{document}

Bildbeschreibung hier eingeben

bearbeiten: aus Ihrem Kommentar geht hervor, dass Sie den Spaltenhintergrund eigentlich gerne in einem „sanften Grün“ hätten. Informationen zu den Farben finden Sie in der Paketdokumentation xcolor. Dort werden vordefinierte Farben detailliert mit Namen beschrieben und es wird erklärt, wie man eigene Farben definiert. Kurz gesagt, die Farbe sollten Sie selbst auswählen, am besten ist einfaches Grau, wie ich es unten in MWE verwende.

Notiz:Die Verwendung farbiger Spalten funktioniert nicht gut mit den Regeln von booktabs!

Bildbeschreibung hier eingeben

Um die Spaltenfarbe bis zur Regel zu haben, haben Sie zwei Möglichkeiten: (i) Ändern Sie die Regel in \hlineoder (ii) definieren Sie booktabsdie Regeln so neu, dass Sie den hinzugefügten vertikalen Raum darum herum entfernen:

\setlenght\aboverulesep{0pt}
\setlength\belowrulesep{0pt}

(nicht im MWE unten berücksichtigt)

\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage[table]{xcolor}% <--- changed

\begin{document}

\begin{tabular}{S[table-format=3.2]
                S[table-format=3.2]
>{\columncolor{gray!20}}S[table-format=3.2]}
    \toprule
    1 &       2 &       3  \\
    1.0 &     2.0 &     3.0 \\
    \bottomrule
\end{tabular}
\end{document}

verwandte Informationen