在长表环境中对齐小数点

在长表环境中对齐小数点

我有一个使用 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}

相关内容