将 Rowstyle 与 siunitx 的 S 列结合使用

将 Rowstyle 与 siunitx 的 S 列结合使用

是否可以使用 sinuitx 提供的带有 S 列的行样式?当我尝试以下操作时,S 列不会对齐数字(它们甚至不被识别为实际数字):

\documentclass{article}
\usepackage{array}
\usepackage{siunitx}

\newcolumntype{+}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
  #1\ignorespaces
}

\begin{document}

\begin{tabular}{+l^c^r^S}
\rowstyle{\bfseries}
    A & B & C & {Number}\\
    a & a & a & 3.14 \\
    b & b & b & 12.1 \\
    c & c & c & .333 \\
\end{tabular}

\end{document}

我还尝试使用其他符号作为 columntype 命令 - 但没有成功。如果没有 rowstyle,S-column 也可以正常工作。

也许使用 dcolumn 有一个解决方案,但是使用 icomma 时报告了问题,并且我希望在我的整个文档中都有 siunitx 的格式。

答案1

在此处输入图片描述

\documentclass{article}
\usepackage{array}
\usepackage{siunitx}

\newcolumntype{+}{>{\global\let\currentrowstyle\empty}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
  #1\ignorespaces
}

\begin{document}

\begin{tabular}{+l^c^r^S}
\rowstyle{\bfseries}
    A & B & C & {Number}\\
    a & a & a & 3.14 \\
    b & b & b & 12.1 \\
    c & c & c & .333 \\
\end{tabular}

\end{document}

相关内容