我正在使用 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}