使用 siunitx 在表格中对齐

使用 siunitx 在表格中对齐

我正在使用该siunitx包来对齐表格中的一些数字。请参阅下面的序言

\documentclass[12pt]{report}
 \usepackage[T1]{fontenc}
 \usepackage{textcomp}
 \usepackage{booktabs}
 \usepackage{multirow}
 \usepackage{siunitx}

\begin{document}
 \begin{table}[h]
  \centering
  \sisetup{table-format=2.4}
 \begin{tabular}{@{}lSSS@{}}
    \toprule
    \textbf{Summary statistics} & \textbf{Stock1} & \textbf{Stock2} & \textbf{Stock3} \\ \midrule
    Mean                        & -0.0003       & -0.0007          & -0.0008           \\ \midrule
    Maximum                     & 0.1379           & 0.2028           & 0.0924            \\
    Minimum                     & -0.2166          & -0.1164          & -0.1306           \\ \midrule
    Standard deviation          & 0.0238           & 0.0159           & 0.0128            \\
    Skewness                    & -0.0419          & 0.4084           & -1.2155           \\
    Kurtosis                    & 6.7156           & 18.8598          & 13.5484   \\ \midrule
    Jarque-Bera                 & \multicolumn{1}{c}{11,048}  & \multicolumn{1}{c}{39,311}  & \multicolumn{1}{c}{21,206}  \\
    P-value                     & \textless 0.0001  & \textless 0.0001  & \textless 0.0001   \\ \midrule
    Observations                & \multicolumn{1}{c}{4,438}   & \multicolumn{1}{c}{2,643}   & \multicolumn{1}{c}{2,349}   \\ \bottomrule
 \end{tabular}
  \caption{{\small Summary statistics of the log returns}}
  \label{tab:SumStat}
 \end{table}
\end{document}

输出

在此处输入图片描述

我可以正确对齐表格中的十进制数,但我还有一行整数和一行带有命令\textless(底部两行)。我的问题是:

  1. 我希望整数尽可能居中对齐在小数下方(特别是参见 stock3 的列)。我尝试使用对齐r,但这会将数字推得太靠右。是否可以将数字对齐在和之间cr也许?
  2. 我想要textless符号和小数之间有一些间距。

如能得到任何帮助我将非常感激!

答案1

尽管我自己会做一些不同的事情,但我只会回答你提出的具体问题。

  1. 要使整数在列中居中,请将它们包装成一个组,如{4,438},因为 不会解析这些组siunitx。另外,我将列标题包装成组以使其居中。您也可以选择使用 ,\sisetup{table-format=2.4,group-separator={,},group-four-digits}以便\num{4438}以后更轻松地切换格式。如果您希望这些数字右对齐,您可以table-text-alignment=right在列设置中进行设置。请注意,这也会影响列标题。

  2. 为了获得更好的间距<,请使用\sisetup{table-format=<2.4}

总之,您可以使用以下内容(删除了非必要的软件包):

\documentclass[12pt]{report}
\usepackage{booktabs}
\usepackage{siunitx}

\begin{document}
\begin{table}[h]
  \centering
  \sisetup{table-format=<2.4}
   \begin{tabular}{@{}lSSS@{}}
    \toprule
    \textbf{Summary statistics} & {\textbf{Stock1}} & {\textbf{Stock2}} & {\textbf{Stock3}} \\ \midrule
    Mean                        & -0.0003           & -0.0007           & -0.0008           \\ \midrule
    Maximum                     &  0.1379           &  0.2028           &  0.0924           \\
    Minimum                     & -0.2166           & -0.1164           & -0.1306           \\ \midrule
    Standard deviation          &  0.0238           &  0.0159           &  0.0128           \\
    Skewness                    & -0.0419           &  0.4084           & -1.2155           \\
    Kurtosis                    &  6.7156           & 18.8598           & 13.5484           \\ \midrule
    Jarque-Bera                 & {11,048}          & {39,311}          & {21,206}          \\
    P-value                     & <0.0001           & <0.0001           & <0.0001           \\ \midrule
    Observations                & {4,438}           & {2,643}           & {2,349}           \\ \bottomrule
  \end{tabular}
  \caption{{\small Summary statistics of the log returns}}
  \label{tab:SumStat}
\end{table}
\end{document}

输出

table-text-alignment=right

输出 table-text-alignment=right

答案2

一些评论和意见:

  • 除非你使用 Jarque-Bera 正态性​​检验的方法与统计学和计量经济学中其他人的方法完全不同,否则检验统计量应该写成正实数,不是一对整数。

  • 我将在表格标题中提供更多结构——见下文。

  • 我想知道读者应该从精确到小数点后四位的数字中得到什么。说真的,只提供三位数会大大增加读者真正注意数字的可能性。:-) 幸运的是,siunitx可以自动对S列中的数字进行四舍五入。

  • 尽量少用水平线,因为它们会破坏视觉效果。考虑只提供一点(垂直)空白。

  • 将应在 -type 列中居中的项括S在花括号中。无需写成\multicolumn{1}{c}{...}

在此处输入图片描述

\documentclass[12pt]{report}
 \usepackage[T1]{fontenc}
 \usepackage{booktabs}
 \usepackage{siunitx}

\begin{document}

 \begin{table}[h]
  \centering
  \sisetup{table-format=-1.3,round-mode=places,round-precision=3}
 \begin{tabular}{@{}lSSS@{}}
    \toprule
    \textbf{Summary statistic} & \multicolumn{3}{c@{}}{\textbf{Stock}}\\
    \cmidrule(l){2-4}
    & {1} & {2} & {3} \\ 
    \midrule
    Mean               & -0.0003 & -0.0007 & -0.0008 \\
    \addlinespace
    Maximum            &  0.1379 & 0.2028  & 0.0924  \\
    Minimum            & -0.2166 & -0.1164 & -0.1306 \\
    \addlinespace
    Standard deviation &  0.0238 & 0.0159  & 0.0128  \\
    \addlinespace
    Skewness           & -0.0419 & 0.4084  & -1.2155 \\
    Kurtosis           &  6.7156 & 18.8598 & 13.5484 \\
    Jarque-Bera test   & 11.048  & 39.311  & 21.206  \\
    P-value            & {$<0.0001$}  & {$<0.0001$}  & {$<0.0001$}  \\ 
    \addlinespace
    Observations       & {4,438}  & {2,643}  & {2,349} \\
    \bottomrule
 \end{tabular}
 \caption{Summary statistics of daily log stock returns}
 \label{tab:SumStat}
 \end{table}
\end{document}

答案3

这是一个解决方案,用小数位数作弊。另外,我认为如果没有@表格序言中的最后一个,表格看起来会更好:

\documentclass[12pt]{report}
\usepackage[utf8]{inputenc}%
 \usepackage[T1]{fontenc}
 \usepackage{textcomp}
 \usepackage{booktabs}
 \usepackage{multirow}
 \usepackage{siunitx}
 \usepackage{mathtools}

 \begin{document}

 \begin{table}[h]
  \centering
  \sisetup{table-format=-1.6, table-number-alignment=center, table-comparator}
 \begin{tabular}{@{}lSSS}
    \toprule
    \textbf{Summary statistics} &{ \textbf{Stock1}} & {\textbf{Stock2}} & {\textbf{Stock3}} \\ \midrule
    Mean & -0.0003 & -0.0007 & -0.0008 \\ \cmidrule(r){1-4}
    Maximum & 0.1379 & 0.2028 & 0.0924 \\
    Minimum & -0.2166 & -0.1164 & -0.1306 \\ \cmidrule(r){1-4}
    Standard deviation & 0.0238 & 0.0159 & 0.0128 \\
    Skewness & -0.0419 & 0.4084 & -1.2155 \\
    Kurtosis & 6.7156 & 18.8598 & 13.5484 \\ \cmidrule(r){1-4}
    Jarque-Bera & {11,048} & {39,311} & {21,206} \\
    P-value & {$<\negmedspace 0.0001 $} & {$<\negmedspace 0.0001 $} & {$<\negmedspace 0.0001$} \\ \cmidrule(r){1-4}
    Observations &{4,438} &{2,643} & {2,349} \\ \bottomrule
 \end{tabular}
  \caption{{\small Summary statistics of the log returns}}
  \label{tab:SumStat}
 \end{table}

\end{document} 

在此处输入图片描述

相关内容