我正在尝试将表格中的一些数字按小数点对齐。我一直在使用 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 包。