表格环境中的 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}

在此处输入图片描述

编辑:该包的另一种解决方案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}

在此处输入图片描述

相关内容