我有一个使用 longtable 创建的表,我想对齐表中数字的小数点。我看到以前的帖子建议使用 dcolumn 或 siunitx。但是,我无法让它们在我的案例中发挥作用。下面我报告了尝试使用 dcolumn 或 siunitx 之前的代码,我希望它足够清楚:
\documentclass[a4paper, 12 pt]{article}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{longtable}
\usepackage{dcolumn}
\usepackage{siunitx}
\usepackage[font=small,labelfont=bf]{caption}
\captionsetup{justification=centering, margin=0.7cm}
\geometry {a4paper, left = 25mm, right = 25mm, top = 38 mm, bottom = 38mm}
\newcommand{\quotes}[1]{ ``#1''}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\setlength{\parindent}{0pt}
\linespread{1.5}
\begin{document}
\begin{longtable}[l]{llcS[table-format=4.2]SSS}
\caption{main} \\ \hline
& (1) \\
VARIABLES & eu\_salience\_mean \\ \hline
& \\
1988.year & 0.289** \\
& (0.106) \\
1992.year & 0.633*** \\
& (0.185) \\
1996.year & 0.860*** \\
& (0.205) \\
1999.year & 0.343 \\
& (0.289) \\
2002.year & 2.011*** \\
& (0.254) \\
2006.year & 0.966*** \\
& (0.293) \\
2010.year & 1.469*** \\
& (0.377) \\
2014.year & 0.992** \\
& (0.344) \\
2017.year & 1.440*** \\
& (0.425) \\
2019.year & 1.158** \\
& (0.412) \\
Constant & 4.719*** \\
& (0.225) \\
& \\
Observations & 138 \\
Number of country\_num & 14 \\
R-squared & 0.432 \\ \hline
\multicolumn{2}{c}{ Robust standard errors in parentheses} \\
\multicolumn{2}{c}{ *** p$<$0.01, ** p$<$0.05, * p$<$0.1} \\
\label{tab:main}%
\end{longtable}
\end{document}
这并不是说我遇到了错误,它只是没有改变数字的对齐方式。
谢谢您的帮助!
答案1
这里的核心问题是
\begin{longtable}[l]{llcS[table-format=4.2]SSS}
这意味着S
- 列是第四列,但小数点全在第二列。为了显示效果,我会使用类似
\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{table}
\sisetup{
input-digits = ()01234567890,
input-open-uncertainty = ,
input-close-uncertainty = ,
table-align-text-post = false
}
\begin{tabular}{@{} lS[table-format=2.4{***}] @{}}
\toprule
Variable & {Mean} \\
\midrule
1988.year & 0.289** \\
& (0.106) \\
1992.year & 0.633*** \\
& (0.185) \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
我把它们制成()
“数字”,以便它们能够对齐。
如果您想将非统计值保存在表中(而不是注释中),我会避免对齐它们:
\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{table}
\sisetup{
input-digits = ()01234567890,
input-open-uncertainty = ,
input-close-uncertainty = ,
table-align-text-post = false
}
\begin{tabular}{@{} lS[table-format=2.4{***}] @{}}
\toprule
Variable & {Mean} \\
\midrule
1988.year & 0.289** \\
& (0.106) \\
1992.year & 0.633*** \\
& (0.185) \\
\midrule
Observations & {138} \\
Number of country\_num & {14} \\
R-squared & {0.432} \\
\bottomrule
\end{tabular}
\end{table}
\end{document}