Проблема с rowcolors и @{} в табличной среде

Проблема с rowcolors и @{} в табличной среде

Я хотел бы вставить символ \pm между парой чисел в каждой строке таблицы.

простая таблица без затененных строк

Я хотел бы поочередно раскрашивать строки. Я пытался использовать пакет rowcolors, но он перезаписывает символ.

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

Но это производит:

Таблица с серыми строками, но перезаписанным символом

Этотрешениесвязано, но я не вижу, как это использовать, сохраняя интервалы и не добавляя белых пятен в цвет строки.

решение1

Я не могу найти ошибку, но предлагаю другое решение:

  • \setlength{\tabcolsep}{0pt}
  • >{$\pm$}перед содержимым второго столбца

Код

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

введите описание изображения здесь

EDIT: Другое решение с пакетомtabularray

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

решение2

С {NiceTabular}из 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}

Вам понадобится несколько компиляций.

Вывод кода выше

решение3

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

введите описание изображения здесь

Связанный контент