我有带星号的数字,想按小数对齐它们。在 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
,因此任何常见的对齐扩展都可以工作,十进制对齐由(至少)dcolumn
和siunitx
包添加,我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}
注意:表格似乎比文本宽度更宽。这就是为什么姆韦我缩小\tabcolsep
到4pt
并用于\small
字体大小。