我正在寻找一种方法来按小数对齐表格中的数字。您觉得哪里出了问题吗?
\documentclass[12pt,a4paper]{article}
\usepackage{apacite}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{psfrag}
\usepackage{amssymb}
\usepackage[left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry}
\usepackage{graphicx}
\usepackage{float}
\usepackage[flushleft]{threeparttable}
\usepackage{enumitem}
\usepackage{hyperref}
\usepackage[english,spanish]{babel}
\usepackage{mathptmx}
\usepackage{setspace}
\usepackage{dcolumn}
\newcolumntype{d}[1]{D{.}{\cdot}{#1}}
\begin{document}
\begin{tabular}{l*{1}{ccccc}}
\multicolumn{5}{c}{Cuadro I}\\
\multicolumn{5}{c}{Estadísticas descriptivas GEIH} \\
\hline\hline
&\multicolumn{5}{c}{} \\
& Obs& Media& Desviación Estándar& Min& Máx\\
\hline
Ocupados & 96703 & .896& .306& 0& 1\\
Años de educación & 96703 & 10.583& 4.331& 0& 26\\
Soltero & 96703 & .281& .449& 0& 1\\
Jefe de hogar & 96703 & .435& .496& 0& 1\\
Edad & 96703 & 39.301& 13.824& 18& 100\\
\hline
Ocupados según nivel de estudio & & & & & \\
Ninguno & 586599 & .546& .498& 0& 1\\
Bachiller & 586599 & .203& .402& 0& 1\\
Técnico & 586599 & .161& .367& 0& 1\\
Universitario& 586599 & .065& .246& 0& 1\\
Postgrado & 586599 & .000& .007& 0& 1\\
\hline
\end{tabular}
\end{document}
答案1
您声明了d
类型但没有使用它,例如
\documentclass[12pt,a4paper]{article}
% use utf-8 \usepackage[latin1]{inputenc}
\usepackage{dcolumn}
\newcolumntype{d}[1]{D{.}{\cdot}{#1}}
\begin{document}
% l*{1}{ccccc} is the same as lccccc and doesn't use d!
\begin{center}
\begin{tabular}{@{}l d{6.0} d{2.3} d{2.3} d{2.0} d{3.0} @{}}
\multicolumn{6}{c}{Cuadro I}\\
\multicolumn{6}{c}{Estadísticas descriptivas GEIH} \\
\hline\hline
\\
\multicolumn{1}{c}{Obs}&
\multicolumn{1}{c}{Media}&
\multicolumn{1}{c}{\begin{tabular}{@{}c@{}}Desviación\\Estándar\end{tabular}}&
\multicolumn{1}{c}{Min}&
\multicolumn{1}{c}{Máx}\\
\hline
Ocupados & 96703 & .896& .306& 0& 1\\
Años de educación & 96703 & 10.583& 4.331& 0& 26\\
Soltero & 96703 & .281& .449& 0& 1\\
Jefe de hogar & 96703 & .435& .496& 0& 1\\
Edad & 96703 & 39.301& 13.824& 18& 100\\
\hline
\multicolumn{6}{@{}c@{}}{Ocupados según nivel de estudio}\\
Ninguno & 586599 & .546& .498& 0& 1\\
Bachiller & 586599 & .203& .402& 0& 1\\
Técnico & 586599 & .161& .367& 0& 1\\
Universitario& 586599 & .065& .246& 0& 1\\
Postgrado & 586599 & .000& .007& 0& 1\\
\hline
\end{tabular}
\end{center}
\end{document}
\midrule
但是如果你从 包中使用的话,水平规则看起来会更好booktabs
。
答案2
以下是我将如何呈现表格,使用siunitx
。这有几个优点,例如自动统一小数点分隔符和自动格式化大数字。
数字也应该总是显示整数部分siunitx
,如果没有,则自动添加。
\documentclass[12pt,a4paper]{article}
\usepackage[spanish]{babel}
\usepackage{siunitx,booktabs}
\sisetup{output-decimal-marker={,}}
\begin{document}
\begin{table}[htp]
\centering
\caption{Estadísticas descriptivas GEIH}\label{add-here-a-label}
\medskip
\begin{tabular}{
@{}
l
S[table-format=6.0]
S[table-format=2.3]
S[table-format=2.3]
S[table-format=2.0]
S[table-format=3.0]
@{}
}
\toprule
& {Obs} & {Media} & {DE} & {Min} & {Máx} \\
\midrule
Ocupados & 96703 & .896 & .306 & 0 & 1 \\
Años de educación & 96703 & 10.583 & 4.331 & 0 & 26 \\
Soltero & 96703 & .281 & .449 & 0 & 1 \\
Jefe de hogar & 96703 & .435 & .496 & 0 & 1 \\
Edad & 96703 & 39.301 & 13.824 & 18 & 100 \\
\midrule
\multicolumn{6}{@{}l@{}}{\itshape Ocupados según nivel de estudio} \\
Ninguno & 586599 & .546 & .498 & 0 & 1 \\
Bachiller & 586599 & .203 & .402 & 0 & 1 \\
Técnico & 586599 & .161 & .367 & 0 & 1 \\
Universitario & 586599 & .065 & .246 & 0 & 1 \\
Postgrado & 586599 & .000 & .007 & 0 & 1 \\
\bottomrule
\multicolumn{6}{@{}l@{}}{\footnotesize DE: Desviación Estándar} \\
\end{tabular}
\end{table}
\end{document}
答案3
一些建议和评论(无特定顺序):
您定义了
d
列类型,但似乎没有在环境的标题中使用它tabular
。我建议您替换\begin{tabular}{l*{1}{ccccc}}
和
\begin{tabular}{@{} l d{6.0} d{2.3} d{2.3} d{2.0} d{3.0} @{}}
由于五个标题单元格的内容不是数字,因此您需要将它们偷运过去。请参阅下面示例中
dcolumn
的用法。\mc
如果您想在pdf文件中使用逗号作为小数点分隔符,您也应该更改
\newcolumntype{d}[1]{D{.}{\cdot}{#1}}
为\newcolumntype{d}[1]{D{.}{,}{#1}}
。使用
table
环境,并使用包的机制来自定义标题的外观。这样,您可以通过 LaTeX 的-系统caption
交叉引用文档中其他地方的表格。\label
\ref
代替
\usepackage[left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry}
和
\usepackage[margin=2.5cm]{geometry}
代替
Ocupados según nivel de estudio & & & & & \\
和
\multicolumn{6}{@{}l}{Ocupados según nivel de estudio} \\
使表格看起来更加紧凑。相关地,将其拆分
Desviación Estándar
为 2 行。
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mathptmx}
\usepackage[english,spanish]{babel}
\usepackage[margin=2.5cm]{geometry}
\usepackage{amsmath}
%%%\usepackage{amsfonts} % is loaded automatically by 'amssymb'
\usepackage{psfrag} % are you sure you need this package?
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{float}
\usepackage{apacite}
\usepackage[flushleft]{threeparttable}
\usepackage{enumitem}
\usepackage{setspace}
\usepackage{dcolumn}
\newcolumntype{d}[2]{D{.}{,}{#1}}
%% new material:
\usepackage{booktabs}
\usepackage[labelsep=newline,skip=0.333\baselineskip]{caption}
\renewcommand\thetable{\Roman{table}}
\newcommand\mc[2]{\multicolumn{1}{c}{#1}} % handy shortcut macro
\usepackage[colorlinks]{hyperref}
\usepackage[spanish,nameinlink]{cleveref} % optional
\begin{document}
\begin{table}[ht!]
\centering
\caption{Estadísticas descriptivas GEIH} \label{tab:GEIH}
\begin{tabular}{@{} l d{6.0} d{2.3} d{2.3} d{2.0} d{3.0} @{}}
\toprule
& \mc{Obs}& \mc{Media} & \mc{Desviación}& \mc{Min} & \mc{Máx}\\
&&& \mc{Estándar}\\
\midrule
Ocupados & 96703 & 0.896 & 0.306 & 0 & 1\\
Años de educación & 96703 & 10.583 & 4.331 & 0 & 26\\
Soltero & 96703 & 0.281 & 0.449 & 0 & 1\\
Jefe de hogar & 96703 & 0.435 & 0.496 & 0 & 1\\
Edad & 96703 & 39.301 & 13.824 & 18 & 100\\
\midrule
\multicolumn{6}{@{}l}{Ocupados según nivel de estudio} \\
Ninguno & 586599 & 0.546 & 0.498 & 0 & 1\\
Bachiller & 586599 & 0.203 & 0.402 & 0 & 1\\
Técnico & 586599 & 0.161 & 0.367 & 0 & 1\\
Universitario & 586599 & 0.065 & 0.246 & 0 & 1\\
Postgrado & 586599 & 0.000 & 0.007 & 0 & 1\\
\bottomrule
\end{tabular}
\end{table}
Una referencia cruzada al \cref{tab:GEIH}.
\end{document}