使用长表按小数点对齐

使用长表按小数点对齐

我有带星号的数字,想按小数对齐它们。在 longtable 环境中如何实现这一点?

\documentclass[12pt]{report}
\usepackage{longtable}
\begin{document}
\begin{longtable}{lrrrrrr}
\hline
\caption{Estimated price elasticities of BMI} \\
\hline
   & (1)   & (2)   & (3)   & (4)   & (5)   & (6) \\
Log BMI & OLS   & q10   & q25   & q50   & q75   & q90 \\
\hline
\\      
\endfirsthead
\multicolumn{6}{c}%
{{ \tablename\ \thetable{} -- continued from previous page}} \\
\hline
   & (1)   & (2)   & (3)   & (4)   & (5)   & (6) \\
 & OLS   & q10   & q25   & q50   & q75   & q90 \\
 \hline 
\endhead
    Price of rice                        & 0.112*** & 0.071 & 0.068 &     0.113** & 0.161*** & 0.137* \\
                                         & (0.041) & (0.053) & (0.045) & (0.047) & (0.055) & (0.074) \\
    Price of other cereals               & -0.051 & -0.055 & -0.081** & -0.069** & -0.022 & -0.023 \\
                                         & (0.033) & (0.039) & (0.035) & (0.034) & (0.044) & (0.059) \\

 \end{longtable}%

 \end{document}

答案1

在此处输入图片描述

longtable在内部使用tabular,因此任何常见的对齐扩展都可以工作,十进制对齐由(至少)dcolumnsiunitx包添加,我dcolumn在这里使用。请注意,这会将数字设置为数学模式,这通常更好,并**使用数学上标设置,而不是依赖于文本字体*被凸起。我允许市场在这里稍微覆盖到列间空间,以允许表格适合页面宽度。

\documentclass[12pt]{report}
\usepackage{longtable,dcolumn}
\begin{document}
\newcommand\hd[1]{\multicolumn{1}{c}{#1}}
\newcommand\zz[1]{^{#1}\!\!}
\setlength\extrarowheight{2pt}
\setlength\tabcolsep{4.5pt}
\begin{longtable}{@{}l*{6}{D..{2.5}}@{}}
\hline
\caption{Estimated price elasticities of BMI} \\
\hline
   & \hd{(1)}   & \hd{(2)}   & \hd{(3)}   & \hd{(4)}   & \hd{(5)}   & \hd{(6)} \\
\hd{Log BMI} & \hd{OLS}   & \hd{q10}   & \hd{q25}   & \hd{q50}   & \hd{q75}   & \hd{q90} \\
\hline
\\      
\endfirsthead
\multicolumn{6}{c}%
{{ \tablename\ \thetable{} -- continued from previous page}} \\
\hline
   & \hd{(1)}   & \hd{(2)}   & \hd{(3)}   & \hd{(4)}   & \hd{(5)}   & \hd{(6)} \\
 & \hd{OLS}   & \hd{q10}   & \hd{q25}   & \hd{q50}   & \hd{q75}   & \hd{q90} \\
 \hline 
\endhead
    Rice                        & 0.112\zz{***} & 0.071 & 0.068 &     0.113\zz{**} & 0.161\zz{***} & 0.137\zz{*} \\
                                         & (0.041) & (0.053) & (0.045) & (0.047) & (0.055) & (0.074) \\
    Other cereals               & -0.051 & -0.055 & -0.081\zz{**} & -0.069\zz{**} & -0.022 & -0.023 \\
                                         & (0.033) & (0.039) & (0.035) & (0.034) & (0.044) & (0.059) \\

 \end{longtable}

 \end{document}

答案2

使用siunitx...

在此处输入图片描述

\documentclass[12pt]{report}
\usepackage{geometry}
\usepackage{longtable}
\usepackage{siunitx}

\begin{document}

{\setlength\tabcolsep{4pt}
 \renewcommand\arraystretch{1.2}
 \small 
    \begin{longtable}{l*{6}{S[input-symbols = {()},
                              table-space-text-post={(},
                              table-space-text-post ={)*},
                              table-format=-1.3]}
                          }
\hline
\caption{Estimated price elasticities of BMI} \\
\hline
        & {(1)}     & {(2)}     & {(3)}     & {(4)}     & {(5)}     & {(6)}     \\
Log BMI & {OLS}     & {q10}     & {q25}     & {q50}     & {q75}     & {q90}     \\
    \hline
\endfirsthead
\caption{ -- continued from previous page}                                      \\
    \hline
        & {(1)}     & {(2)}     & {(3)}     & {(4)}     & {(5)}     & {(6)}     \\
Log BMI & {OLS}     & {q10}     & {q25}     & {q50}     & {q75}     & {q90}     \\
    \hline
 \hline
\endhead
Price of rice
        &  0.112*** &  0.071    &  0.068    &  0.113**  &  0.161*** &  0.137*   \\
        & (0.041)   & (0.053)   & (0.045)   & (0.047)   & (0.055)   & (0.074)   \\
Price of other cereals
        & -0.051    & -0.055    & -0.081**  & -0.069**  & -0.022    & -0.023    \\
        & (0.033)   & (0.039)   & (0.035)   & (0.034)   & (0.044)   & (0.059)   \\
    \hline
    \end{longtable}%
}
 \end{document}

注意:表格似乎比文本宽度更宽。这就是为什么姆韦我缩小\tabcolsep4pt并用于\small字体大小。

相关内容