表格中的数字(列标题除外)按小数点对齐

表格中的数字(列标题除外)按小数点对齐

我正在尝试将表格中的一些数字按小数点对齐。我一直在使用 dcolumn 选项,但考虑到我的列标题是年份,它也会将年份按小数点对齐,而这并不是我想要的。

这是我的 MWE:

\documentclass{beamer}

\usepackage{dcolumn}
\newcolumntype{d}[1]{D{.}{.}{#1}}

\begin{document}

\begin{frame}{title} 

\begin{table}[H]
\centering
\begin{tabular}{|l|d{4.6}|c|c|} % I just did it for one to see the result
\hline 
\textbf{Poste}  & \textbf{2000} & \textbf{2005} & \textbf{2010} \\  \hline
Alimentation -           b1  & -0.034***  & -0.036**  & -0.016***  \\
Alcool et Tabac -        b2  & -0.009***  & -0.006    & -0.011***  \\
Habillement -            b3  &  0.004     &  0.001    &  0.001     \\
Logement -               b4  & -0.067***  & -0.106*** & -0.073***  \\
Meuble/Entretien -       b5  &  0.019***  &  0.016*** &  0.001***  \\
Santé -                  b6  & -0.001     &  0.005    &  0.036     \\
Transport -              b7  &  0.066***  &  0.075*** & -0.015***  \\
Communication -          b8  & -0.001     & -0.006*** &  0.028***  \\
Loisir/Culture -         b9  &  0.017***  &  0.030*** &  0.012***  \\
Autres biens/services -  b12 & -0.025     & -0.016    & -0.359     \\
\hline
\end{tabular}
\end{table}

\end{frame}

\end{document}

下面是显示年份 (2000) 对齐方式的快照。如何保持其他数字对齐但年份居中(如 2005 和 2010)?

在此处输入图片描述

答案1

我建议使用siunitx(以及booktabs更好的水平规则)。

\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{siunitx,booktabs}

\begin{document}

\begin{frame}{title} 

\begin{center}
\addtolength{\tabcolsep}{-2pt} % or it would be overfull
\begin{tabular}{
  l *{3}{S[table-format=-1.3,table-space-text-post=***]}
}
\toprule
\textbf{Poste}  & {\textbf{2000}} & {\textbf{2005}} & {\textbf{2010}} \\
\midrule
Alimentation -           b1  & -0.034***  & -0.036**  & -0.016***  \\
Alcool et Tabac -        b2  & -0.009***  & -0.006    & -0.011***  \\
Habillement -            b3  &  0.004     &  0.001    &  0.001     \\
Logement -               b4  & -0.067***  & -0.106*** & -0.073***  \\
Meuble/Entretien -       b5  &  0.019***  &  0.016*** &  0.001***  \\
Santé -                  b6  & -0.001     &  0.005    &  0.036     \\
Transport -              b7  &  0.066***  &  0.075*** & -0.015***  \\
Communication -          b8  & -0.001     & -0.006*** &  0.028***  \\
Loisir/Culture -         b9  &  0.017***  &  0.030*** &  0.012***  \\
Autres biens/services -  b12 & -0.025     & -0.016    & -0.359     \\
\bottomrule
\end{tabular}
\end{center}

\end{frame}

\end{document}

如您所见,为了使单元格的内容在数字列中居中,只需将其输入在括号之间即可。

没有理由使用table环境。

在此处输入图片描述

你当然可以保留垂直规则:

\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{siunitx}

\begin{document}

\begin{frame}{title} 

\begin{center}
\addtolength{\tabcolsep}{-2pt}
\begin{tabular}{
  |l| *{3}{S[table-format=-1.3,table-space-text-post=***]|}
}
\hline
\textbf{Poste}  & {\textbf{2000}} & {\textbf{2005}} & {\textbf{2010}} \\
\hline
Alimentation -           b1  & -0.034***  & -0.036**  & -0.016***  \\
Alcool et Tabac -        b2  & -0.009***  & -0.006    & -0.011***  \\
Habillement -            b3  &  0.004     &  0.001    &  0.001     \\
Logement -               b4  & -0.067***  & -0.106*** & -0.073***  \\
Meuble/Entretien -       b5  &  0.019***  &  0.016*** &  0.001***  \\
Santé -                  b6  & -0.001     &  0.005    &  0.036     \\
Transport -              b7  &  0.066***  &  0.075*** & -0.015***  \\
Communication -          b8  & -0.001     & -0.006*** &  0.028***  \\
Loisir/Culture -         b9  &  0.017***  &  0.030*** &  0.012***  \\
Autres biens/services -  b12 & -0.025     & -0.016    & -0.359     \\
\hline
\end{tabular}
\end{center}

\end{frame}

\end{document}

在此处输入图片描述

现在,比较一下这两个渲染图,然后做出选择。我相信你会选择“无垂直线版本”。;-)

答案2

一种方法是将标题写在\multicolumn{1}{c}{<header text>}

\documentclass{beamer}

\usepackage{dcolumn}
\newcolumntype{d}[1]{D{.}{.}{#1}}

\begin{document}

\begin{frame}{title}

\begin{table}[H]
\centering
\begin{tabular}{|l|d{4.6}|c|c|} % I just did it for one to see the result
\hline
\multicolumn{1}{c}{\textbf{Poste}}  
    &   \multicolumn{1}{c}{\textbf{2000}} 
        &   \multicolumn{1}{c}{\textbf{2005}}
            &   \multicolumn{1}{c}{\textbf{2010}}           \\  \hline
Alimentation -           b1  & -0.034***  & -0.036**  & -0.016***  \\
Alcool et Tabac -        b2  & -0.009***  & -0.006    & -0.011***  \\
Habillement -            b3  &  0.004     &  0.001    &  0.001     \\
Logement -               b4  & -0.067***  & -0.106*** & -0.073***  \\
Meuble/Entretien -       b5  &  0.019***  &  0.016*** &  0.001***  \\
Santé -                  b6  & -0.001     &  0.005    &  0.036     \\
Transport -              b7  &  0.066***  &  0.075*** & -0.015***  \\
Communication -          b8  & -0.001     & -0.006*** &  0.028***  \\
Loisir/Culture -         b9  &  0.017***  &  0.030*** &  0.012***  \\
Autres biens/services -  b12 & -0.025     & -0.016    & -0.359     \\
\hline
\end{tabular}
\end{table}

\end{frame}

\end{document}

对于列的格式化,请尝试使用 siunitx 包。

相关内容