如何仅使用 siunitx 将百分号 % 附加到某些列/行

如何仅使用 siunitx 将百分号 % 附加到某些列/行

我有两个与显示的 MWE 相关的问题:

  • 如何使用包将百分号仅附加到某一列或某一行的单元格,siunitx无论表格是按行还是按列定义?(我知道我只能把它放在标题中,但这不是重点)。
  • 如何添加垂直空间,它与注释不起作用\vspace*{2cm}

PS:我对这个包还不太熟悉。

以下是从中摘选的简化版 MWE这里

\documentclass[preview,border=5pt]{standalone}
\usepackage{booktabs}
\usepackage{siunitx}    
\newcommand\mc[1]{\multicolumn{1}{c}{#1}}

\begin{document}    
\begin{table}
\centering
%defined by rows
\begin{tabular}{ l*{5}{S[input-symbols = {()},
                              table-space-text-post=\ ,
                              table-format=-1.2]}}
\toprule
\multicolumn{4}{c}{Panel A: $\beta_{\sigma,t}$} \\ \midrule
& \mc{Low}  & \mc{Med}  & \mc{High} \\  \midrule
MV  & 1.64  &  1.14  &  1.58  \\
    & 1.17  &  0.97  &  0.87  \\
TA  & 1.90  &  1.03  &  0.88   \\
\bottomrule
\end{tabular}
%\vspace{2cm}

%defined by columns
\begin{tabular}{ c*{4}{S[input-symbols = {()},
                              table-space-text-post=\ ,
                              table-format=-1.2]}}
\toprule
\multicolumn{4}{c}{Panel A:  $\beta_{\sigma,t}$} \\ \midrule
& \mc{Low}  & \mc{Med}  & \mc{High} \\  \midrule
MV  & 1.64  &  1.14  &  1.58  \\
    & 1.17  &  0.97  &  0.87  \\
TA  & 1.90  &  1.03  &  0.88   \\
\bottomrule
\end{tabular}
\end{table}        
\end{document}

答案1

(我很快就会删除它)

下面的代码应该将 % 附加到仅最后 3 列,但它只将 % 附加到最后两列,而且最后一列上还有一个难看的空格。

在此处输入图片描述

\documentclass[preview,border=5pt]{standalone}
\usepackage{booktabs}
\usepackage{siunitx}

\newcommand\mc[1]{\multicolumn{1}{c}{#1}}

\begin{document}

\begin{table}
\centering
%defined by columns
\begin{tabular}{ c c*{3}{S[input-symbols = {()},
                              table-space-text-post=\si{\,\%}\ ,
                              table-format=-1.2]<{\,\%}}}
\toprule
\multicolumn{4}{c}{Panel A:  $\beta_{\sigma,t}$} \\ \midrule
& \mc{Low}  & \mc{Med}  & \mc{High} \\
\midrule
MV  & 1.64  &   1.14  &  1.58   \\
& 1.17  & 0.97 &  0.87  \\
TA   &  1.90      &  1.03     &  0.88   \\
\bottomrule
\end{tabular}
\end{table}

\end{document}

答案2

添加%到列类型中每个单元格S的方式与其他列类型相同:

 S[....]<{\%}

使用siunitx面向表格的选项,您可以对外观进行微调%。下面是 MWE 中的两个示例:

\documentclass[preview,border=5pt]{standalone}
\usepackage{booktabs}
\usepackage{siunitx}
\newcommand\mc[1]{\multicolumn{1}{c}{#1}}

\begin{document}
\begin{table}
\centering
%defined by rows
\begin{tabular}{ c *{3}{S[input-symbols={()},
                          table-format=-1.2]<{\,\%}
               }}
\toprule
\multicolumn{4}{c}{Panel A: $\beta_{\sigma,t}$} \\ \midrule
& \mc{Low}  & \mc{Med}  & \mc{High} \\  \midrule
MV  & 1.64  &  1.14  &  1.58  \\
    & 1.17  &  0.97  &  0.87  \\
TA  & 1.90  &  1.03  &  0.88   \\
\bottomrule
\end{tabular}
\vspace{0.5cm}

%defined by columns
\begin{tabular}{ c *{3}{S[input-symbols={()},
                          table-format=-1.2,
                          table-space-text-post=\,]<{\,\%}}
                }
\toprule
\multicolumn{4}{c}{Panel A:  $\beta_{\sigma,t}$} \\ \midrule
& \mc{Low}  & \mc{Med}  & \mc{High} \\  \midrule
MV  & 1.64  &  1.14  &  1.58  \\
    & 1.17  &  0.97  &  0.87  \\
TA  & 1.90  &  1.03  &  0.88   \\
\bottomrule
\end{tabular}
\end{table}
\end{document}

在此处输入图片描述

编辑: 在您的 MWE 中(我没有仔细检查),您定义的列比表中使用的列多。我纠正了这个问题。我还展示了它的\vspace{0.5cm}工作原理。

相关内容