Problem mit Zeilenfarben und @{} in tabellarischer Umgebung

Problem mit Zeilenfarben und @{} in tabellarischer Umgebung

Ich möchte in jeder Zeile einer Tabelle das Symbol \pm zwischen einem Zahlenpaar einfügen.

einfache Tabelle ohne schattierte Zeilen

Ich möchte die Zeilen abwechselnd einfärben. Ich habe versucht, das Paket „rowcolors“ zu verwenden, aber dies überschreibt das Symbol.

\documentclass{article}
\usepackage{colortbl}
\usepackage[table]{xcolor}
\definecolor{lightgray}{gray}{0.92}
\begin{document}
\rowcolors{1}{}{lightgray}
\begin{tabular}{r@{$\pm$}r}
 1 & 0.5 \\
  1 & 0.5 \\
\end{tabular}
\end{document}

Das Ergebnis ist jedoch:

Tabelle mit grauen Zeilen aber überschriebenem Symbol

DasLösungist verwandt, aber ich sehe nicht, wie ich dies unter Beibehaltung des Abstands verwenden kann, ohne weiße Flecken in der Zeilenfarbe einzuführen.

Antwort1

Ich kann den Fehler nicht finden, schlage aber eine andere Lösung vor:

  • \setlength{\tabcolsep}{0pt}
  • >{$\pm$}vor dem Inhalt der zweiten Spalte

Der Code

\documentclass{article}
\usepackage{colortbl}
\usepackage{amsmath}
\usepackage[table]{xcolor}
\definecolor{lightgray}{gray}{0.92}
\begin{document}
\rowcolors{1}{}{lightgray}
\setlength{\tabcolsep}{0pt}
\begin{tabular}{r >{$\pm$}r}
1 & 0.5 \\
12345 & 0.5 \\
\end{tabular}
\end{document}

Bildbeschreibung hier eingeben

EDIT: Eine andere Lösung mit dem Pakettabularray

\documentclass{article}
\usepackage{tabularray}
\usepackage{xcolor}
\definecolor{lightgray}{gray}{0.92}
\begin{document}
  \begin{tblr}{
    colspec = {Q[r,mode=math] Q[l,mode=math]},
    vline{2} = {text=\clap{$\pm$}},
    %
    row{even} = {lightgray},
    }
    1 & 0.5 \\
    12345 & 0.5 \\
    \end{tblr}
\end{document}

Antwort2

Mit {NiceTabular}von nicematrix.

\documentclass{article}
\usepackage{nicematrix}
\definecolor{lightgray}{gray}{0.92}
\begin{document}

\begin{NiceTabular}{r@{$\pm$}r}
\CodeBefore
  \rowcolors{1}{}{lightgray}
\Body
  1 & 0.5 \\
  1 & 0.5 \\
\end{NiceTabular}
\end{document}

Man braucht mehrere Zusammenstellungen.

Ausgabe des obigen Codes

Antwort3

Mit tabularray:

\documentclass[a4paper, 11pt]{article}
\usepackage{xcolor}
\definecolor{lightgray}{gray}{0.92}
\usepackage{tabularray}

\begin{document}
\[
\begin{tblr}{
    colspec={lr},
    column{1}={rightsep=0.7pt},
    column{2}={leftsep=0pt},
    cell{1-Z}{1}={appto={\pm}},
    cell{even}{1-Z}={lightgray},
    }
1 & 0.5 \\
1 & 0.5 \\
\end{tblr}
\]
In case there is a header:
\[
\begin{tblr}{
    hspan=minimal,
    colspec={Q[1.6em,r]Q[1.6em,l]},
    column{1}={rightsep=0.7pt},
    column{2}={leftsep=0pt},
    cell{1}{1}={c=2}{c, mode=text},
    cell{2-Z}{1}={appto={\pm}},
    cell{odd[2-Z]}{1-Z}={lightgray},
    }
Header&\\
1 & 0.5 \\
1 & 0.5 \\
\end{tblr}
\]

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen