使用 siunitx 突出显示表格列?

使用 siunitx 突出显示表格列?

我正在使用 siunitx 按小数点对齐我的列。我想突出显示表格中的其中一列(已编辑:使列具有彩色背景)。我想知道 siunitx 是否有此功能。到目前为止,我只能像这样更改字体颜色:

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

其结果如下:

带有红色文本的表格。

如果有人知道一种柔和的绿色并且可以在灰度下正常打印,那就太好了。

答案1

您的解决方案不起作用。简单的解决方案(它也会在列标题中为字体着色)是:

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

在此处输入图片描述

更先进的解决方案,您可以在其中选择哪些单元格将包含红色内容:

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

在此处输入图片描述

编辑: 从您的评论可以看出,您实际上喜欢用某种“柔和的绿色”颜色来设置彩色列背景。有关颜色,请查看xcolor包的文档,其中详细描述了按名称预定义的颜色或如何定义自己的颜色。简而言之,您应该自己选择颜色,最好使用简单的灰色,就像我在下面的 mwe 中使用的一样。

笔记:使用彩色列不符合规则booktabs

在此处输入图片描述

要使列颜色符合规则,有两种方法:(i)将规则更改为\hline,或(ii)重新定义booktabs规则,删除其周围添加的垂直空间:

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

(以下 mwe 中未考虑)

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

相关内容