表格条目的对齐(第 2 部分):负数和具有不同测量单位的表格面板

表格条目的对齐(第 2 部分):负数和具有不同测量单位的表格面板

这个问题与表格条目的对齐:负数的情况,其中的问题是在存在负数和/或统计意义星号的情况下如何对齐表列条目。

就我而言,我遇到了同样的问题,另外还有一个问题,那就是我的表中有不同的面板(在下面的例子中是两个),其中每个面板包含用不同比例测量的变量。

下面是一个简化的工作示例。在 中,panel A我有 2 个小数,前面有 1 位数字;而在 中,panel B我没有小数,只有 2 位或 3 位数字。

我知道一个选项是使用\usepackage{dcolumn},但在这里我不确定如何定义自定义列类型,因为数字根据面板而变化。感谢您的任何建议。

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs, longtable}
\usepackage[left=1.7cm,right=1.7cm,top=1.3cm,bottom=1.3cm]{geometry}
\newcommand{\rowgroup}[1]{\hspace{-2em}#1}  % for indentation

\usepackage{dcolumn}


\begin{document}

\begin{longtable}[c]{ @{\hspace*{\leftmargin}} lcccccc}

    \caption {Example table} \label{tab:table_balance_AvsH} \\ \toprule


    & \multicolumn{3}{c}{Period 1} & \multicolumn{3}{c}{Period 2} \\ \cmidrule(r){2-4} \cmidrule(r){5-7}
    & Group 1 & Group 2 & Difference & Group 1 & Group 2 & Difference \\
    & (1) & (2) & (3) & (4) & (5) & (6) \\  \midrule


    \rowgroup{\textit{Panel A: outcome 1 (USD)}} \\ \addlinespace
     t - 5  & 8.76 & 9.28 & -0.52 & 10.71 & 6.93 & 3.78 \\ 
     t - 4  & 9.07 & 9.17 & -0.10 & 9.07 & 6.93  & 2.14 \\ 
     t - 3  & 9.34 & 8.36 & 0.97  & 9.36 & 7.27  & 2.09 \\ 
     t - 2  & 9.33 & 8.46 & 0.87  & 9.43 & 8.07  & 1.36 \\ 
     t - 1  & 9.40 & 9.07 & 0.33  & 8.87 & 8.33  & 0.53 \\ 

    \addlinespace
    \rowgroup{\textit{Panel B: outcome 2 (Th. USD)}} \\ \addlinespace
     t - 5  & 456  & 650 & -194\mbox{*} & 1,007 & 656   & 352 \\ 
     t - 4  & 490  & 650 & -160\mbox{*} & 1,055 & 619   & 436\mbox{*} \\ 
     t - 3  & -383 & 625 & -1008        & 1,060 & 663   & 398 \\ 
     t - 2  & -467 & 653 & -1120        & 1,120 & 877   & 242 \\ 
     t - 1  & 666  & 746 & -80          & 1,117 & 1,020 & 97  \\ \bottomrule

\end{longtable}

\end{document}

答案1

在此处输入图片描述

\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs, longtable}
\usepackage[left=1.7cm,right=1.7cm,top=1.3cm,bottom=1.3cm]{geometry}
\newcommand{\rowgroup}[1]{\hspace{-2em}#1}  % for indentation

\sisetup{table-format=-4.0,
        table-space-text-post=*,
        table-align-text-post,
        group-minimum-digits = 4,
        group-separator = {,},
        }

\begin{document}
\begin{longtable}[c]{ @{\hspace*{\leftmargin}} l *{6}{S}}
    \caption {Example table} \label{tab:table_balance_AvsH} \\ \toprule
    & \multicolumn{3}{c}{Period 1} & \multicolumn{3}{c}{Period 2} \\ \cmidrule(r){2-4} \cmidrule(r){5-7}
    & {Group 1} & {Group 2} & {Difference} & {Group 1} & {Group 2} & {Difference} \\
    & {(1)} & {(2)} & {(3)} & {(4)} & {(5)} & {(6)} \\  \midrule
    \rowgroup{\textit{Panel A: outcome 1 (USD)}} \\ \addlinespace
     t - 5  & 8.76 & 9.28 & -0.52 & 10.71 & 6.93 & 3.78 \\
     t - 4  & 9.07 & 9.17 & -0.10 & 9.07 & 6.93  & 2.14 \\
     t - 3  & 9.34 & 8.36 & 0.97  & 9.36 & 7.27  & 2.09 \\
     t - 2  & 9.33 & 8.46 & 0.87  & 9.43 & 8.07  & 1.36 \\
     t - 1  & 9.40 & 9.07 & 0.33  & 8.87 & 8.33  & 0.53 \\
    \addlinespace
    \rowgroup{\textit{Panel B: outcome 2 (Th. USD)}} \\ \addlinespace
     t - 5  &  456 & 650 & -194*        & 1 007 & 656   & 352 \\
     t - 4  &  490 & 650 & -160*        & 1 055 & 619   & 436* \\
     t - 3  & -383 & 625 & -1008        & 1 060 & 663   & 398 \\
     t - 2  & -467 & 653 & -1120        & 1 120 & 877   & 242 \\
     t - 1  &  666 & 746 & -80          & 1 117 & 1020  & 97  \\ \bottomrule
\end{longtable}
\end{document}

附录: 如果你在表格的第二部分的数字中添加两个零(拆分表格后会是什么样子,请参见米科答案),表格可能看起来更好看:

在此处输入图片描述

\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs, longtable}
\usepackage[left=1.7cm,right=1.7cm,top=1.3cm,bottom=1.3cm]{geometry}

\sisetup{table-space-text-post=*,
         table-align-text-post,
         group-minimum-digits = 4,
         group-separator = {,},
        }

\begin{document}
\begin{longtable}[c]{c 
                     S[table-format=-3.2]
                     S[table-format= 3.2]
                     S[table-format= 4.2]
                *{2}{S[table-format=-4.2]}
                     S[table-format=-3.2]
                    }
    \caption {Example table} \label{tab:table_balance_AvsH} \\ \toprule
    & \multicolumn{3}{c}{Period 1} & \multicolumn{3}{c}{Period 2} \\ \cmidrule(r){2-4} \cmidrule(r){5-7}
    & {Group 1} & {Group 2} & {Difference} & {Group 1} & {Group 2} & {Difference} \\
    & {(1)} & {(2)} & {(3)} & {(4)} & {(5)} & {(6)} \\  \midrule
  {\textit{Panel A: outcome 1 (USD)}} \\ \addlinespace
     t - 5  & 8.76 & 9.28 & -0.52 & 10.71 & 6.93 & 3.78 \\
     t - 4  & 9.07 & 9.17 & -0.10 & 9.07 & 6.93  & 2.14 \\
     t - 3  & 9.34 & 8.36 & 0.97  & 9.36 & 7.27  & 2.09 \\
     t - 2  & 9.33 & 8.46 & 0.87  & 9.43 & 8.07  & 1.36 \\
     t - 1  & 9.40 & 9.07 & 0.33  & 8.87 & 8.33  & 0.53 \\
    \addlinespace
{\textit{Panel B: outcome 2 (Th. USD)}} \\ \addlinespace
     t - 5  &  456.00 & 650.00 &  -194.00*  & 1 007.00  & 656.00   & 352.00 \\
     t - 4  &  490.00 & 650.00 &  -160.00*  & 1 055.00  & 619.00   & 436.00* \\
     t - 3  & -383.00 & 625.00 & -1008.00   & 1 060.00  & 663.00   & 398.00 \\
     t - 2  & -467.00 & 653.00 & -1120.00   & 1 120.00  & 877.00   & 242.00 \\
     t - 1  &  666.00 & 746.00 &   -80.00   & 1 117.00  & 1020.00  & 97.00  \\ \bottomrule
\end{longtable}
\end{document}

答案2

tabularx这是一个在环境内部嵌入两个环境(为六个数据列分配相同的宽度)的解决方案longtable

个人评论:两个“面板”的内容可能有足够的不同,以保证创建两个完全独立的表格环境。

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs,tabularx,siunitx,longtable}
\usepackage[hmargin=1.7cm,vmargin=1.3cm]{geometry}
\newcommand{\rowgroup}[1]{\hspace{-2em}#1}  % for indentation
\newcolumntype{C}{>{\centering\arraybackslash}X}
\newcommand\mc[1]{\multicolumn{1}{C}{#1}}
\sisetup{group-separator={,} , group-four-digits=true}

\begin{document}
\begin{longtable}{@{}c@{}}
\caption {Example table} \label{tab:table_balance_AvsH}\\
\begin{tabularx}{0.9\textwidth}{ @{\hspace*{\leftmargin}} % first 'tabularx'
    l *{2}{S[table-format=1.2]}
    S[table-format=-1.2] S[table-format=2.2]
    *{2}{S[table-format=1.2]}}
    \toprule
    & \multicolumn{3}{c}{Period 1} & \multicolumn{3}{c}{Period 2} \\ 
    \cmidrule(lr){2-4} \cmidrule(l){5-7}
    & {Group 1} & {Group 2} & {Diff.} & {Group 1} & {Group 2} & {Diff.} \\
    & {(1)} & {(2)} & {(3)} & {(4)} & {(5)} & {(6)} \\  
    \midrule
    \rowgroup{\textit{Panel A: Outcome 1 (USD)\phantom{Th.~}}} 
    & \mc{} & \mc{} & \mc{} & \mc{} & \mc{} & \mc{} \\
    $t - 5$  & 8.76 & 9.28 & -0.52 & 10.71 & 6.93 & 3.78 \\
    $t - 4$  & 9.07 & 9.17 & -0.10 & 9.07 & 6.93  & 2.14 \\
    $t - 3$  & 9.34 & 8.36 & 0.97  & 9.36 & 7.27  & 2.09 \\
    $t - 2$  & 9.33 & 8.46 & 0.87  & 9.43 & 8.07  & 1.36 \\
    $t - 1$  & 9.40 & 9.07 & 0.33  & 8.87 & 8.33  & 0.53 \\
    \addlinespace
\end{tabularx}\\

\begin{tabularx}{0.9\textwidth}{ @{\hspace*{\leftmargin}} % second 'tabularx'
    l S[table-format=-3.0] S[table-format=3.0]
      S[table-format=-4.0,table-space-text-post=\textsuperscript{*}]
      *{2}{S[table-format=4.0]}
      S[table-format=-3.0,table-space-text-post=\textsuperscript{*}]}      
    \rowgroup{\textit{Panel B: Outcome 2 (Th.\ USD)}} 
    & \mc{} & \mc{} & \mc{} & \mc{} & \mc{} & \mc{} \\
    $t - 5$  &  456 & 650 &  -194\textsuperscript{*} & 1007 &  656  & 352 \\
    $t - 4$  &  490 & 650 &  -160\textsuperscript{*} & 1055 &  619  & 436\textsuperscript{*} \\
    $t - 3$  & -383 & 625 & -1008     & 1060 &  663  & 398 \\
    $t - 2$  & -467 & 653 & -1120     & 1120 &  877  & 242 \\
    $t - 1$  &  666 & 746 &   -80     & 1117 & 1020  &  97  \\ 
    \bottomrule
\end{tabularx}
\end{longtable}

\end{document}

相关内容