将 \% 附加到最后一个 S 列中的数字的定位

将 \% 附加到最后一个 S 列中的数字的定位

请考虑以下 MWE:

\documentclass{article}
\usepackage{array}
\usepackage{siunitx}
\newcommand\mcp[1]{\multicolumn{1}{>{\centering\arraybackslash}p{22mm}}{\bfseries#1}}

\begin{document}
\begin{tabular}{c
           *{4}{S[table-format=2.2,
                  table-space-text-post=\,\%]<{\,\%}}
                }
    \hline
    &   \mcp{AA}    &   \mcp{BB}    &   \mcp{AA}    &   \mcp{BB}    \\
    \hline
A1  &   0.12        &   0.12        &   0.12        &   0.12        \\
A2  &   0.19        &   0.19        &   0.21        &   0.21        \\
    \hline
\end{tabular}
\end{document}

结果如下:

在此处输入图片描述

S为什么最后一列的格式与之前其他列的格式不同?我是否遗漏了S列选项中的某些内容?

答案1

这是有记录的情况(siunitx手册,第 7.13 节):在这里使用低级\cr

\documentclass{article}
\usepackage{array}
\usepackage{siunitx}
\newcommand\mcp[1]{\multicolumn{1}{>{\centering\arraybackslash}p{22mm}}{\bfseries #1}}

\begin{document}
\begin{tabular}%{\linewidth}{
         {   c
       *{4}{S[table-format=2.2,
              table-space-text-post=\,\%]<{\,\%}}
                            }
    \hline
    &   \mcp{AA}    &   \mcp{BB}    &   \mcp{AA}    &   \mcp{BB}    \cr
    \hline
A1  &   0.12        &   0.12        &   0.12        &   0.12        \cr
A2  &   0.19        &   0.19        &   0.21        &   0.21        \cr
    \hline
\end{tabular}
\end{document}

答案2

您可以使用虚拟列。我提供了表格的两种实现,第二种是tabular*

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

% use this if the headers are just one line long
%\newcommand\mcp[1]{%
%  \multicolumn{1}{c}{\makebox[22mm]{\bfseries #1}}%
%}
\newcommand\mcp[1]{%
  \multicolumn{1}{>{\centering}p{22mm}}{\bfseries #1}%
}

% for the second table
\newcommand{\tbh}[1]{\multicolumn{1}{c}{\bfseries #1}}

\begin{document}

\centering

\begin{tabular}{
  c
  *{4}{S[table-format=2.2,table-space-text-post=\,\%]<{\,\%}}
  c@{}
}
\hline
    & \mcp{AA} & \mcp{BB} & \mcp{AA} & \mcp{BB} & \tabularnewline
\hline
A1  &   0.12   &   0.12   &   0.12   &   0.12   & \\[2ex]
A2  &   0.19   &   0.19   &   0.21   &   0.21   & \\
\hline
\end{tabular}

\bigskip

\begin{tabular*}{\textwidth}{
  @{\hspace{\tabcolsep}\extracolsep{\fill}}
  c
  *{4}{S[table-format=2.2,table-space-text-post=\,\%]<{\,\%}}
  @{\extracolsep{0pt}}c@{\hspace{\tabcolsep}}
}
\hline
    & \tbh{AA} & \tbh{BB} & \tbh{AA} & \tbh{BB} & \\
\hline
A1  &   0.12   &   0.12   &   0.12   &   0.12   & \\[2ex]
A2  &   0.19   &   0.19   &   0.21   &   0.21   & \\
\hline
\end{tabular*}

\end{document}

在此处输入图片描述

相关内容