Cómo hacer tablas manualmente usando booktabs

Cómo hacer tablas manualmente usando booktabs

Soy realmente nuevo en el uso de LaTex y me gustaría recibir ayuda para crear esta tabla usando booktabsformato. Yo uso Re idealmente lo generaría usando xtablesel paquete. Sin embargo, no pude lidiar con el tema de la extensión de columnas.

Por eso intenté insertar \multicolumnel comando manualmente.

Aquí está el código:

\documentclass{article}

\usepackage{booktabs}
\usepackage{multirow}
\begin{document}


 \begin{table}[ht]
\centering
\begin{tabular}{@{\extracolsep{4pt}}llccccccc}
\toprule   
{} & {} & {Observations} & \multicolumn{3}{c}{Median}  & \multicolumn{3}{c}{SD}\\
 \cline{3-3} 
 \cline{4-6} 
 \cline{7-9} 
 Year & Group & N & V1 & V2 & V3 & V1 & V2 & V3 \\ 
   \hline
   \multirow{2}{*}{2012}
  & Control & 2 & 0.052 & 0.294 & 0.115 & 0.304 & 0.619 & 0.611 \\ 
  & Treat & 2 & 0.511 & 0.083 & 0.123 & 0.573 & 0.541 & 0.734 \\ 
  \multirow{2}{*}{2016}
  & Control & 3 & 0.320 & 0.344 & 0.382 & 0.382 & 0.494 & 0.477 \\ 
  & Treat & 3 & 0.378 & 0.296 & 0.123 & 0.386 & 0.668 & 0.732 \\ 
 \hline
\end{tabular}
\caption{Mean by Year and Group} 
\end{table}
\end{document}

Sin embargo, creo que esta tabla no está muy bien formateada, no según los booktabsestándares, ¿verdad? ¿Cómo hacer manualmente una tabla con el mismo diseño, pero mejor formateada?

Gracias

Respuesta1

El principal problema con la tabla es que no estás usando las booktabsreglas, sino una mezcla de reglas tabulares estándar ( \hliney \cline) y booktabsreglas ( \toprule).

Reemplazar estas reglas con las booktabsversiones ( \midruley \cmidrule) \bottomrulele brinda el formato agradable que desea.

He quitado las multirowcosas. Esto no añade nada a tu mesa; está perfectamente claro simplemente poner el año en la primera fila de los pares de filas para ese año. En general, evitaría usarlo multirowen absoluto. Tiene sus usos, pero generalmente para cosas como formularios que tienen celdas encuadradas. Para tablas de investigación estándar casi nunca es apropiado.

PD: ¡Espero que los datos estén inventados! Tus N son realmente pequeñas... :)

\documentclass{article}

\usepackage{booktabs}
\begin{document}


 \begin{table}[ht]
\centering
\begin{tabular}{@{\extracolsep{4pt}}llccccccc}
\toprule   
{} & {} & {Observations} & \multicolumn{3}{c}{Median}  & \multicolumn{3}{c}{SD}\\
 \cmidrule{3-3} 
 \cmidrule{4-6} 
 \cmidrule{7-9} 
 Year & Group & N & V1 & V2 & V3 & V1 & V2 & V3 \\ 
\midrule
2012  & Control & 2 & 0.052 & 0.294 & 0.115 & 0.304 & 0.619 & 0.611 \\ 
  & Treat & 2 & 0.511 & 0.083 & 0.123 & 0.573 & 0.541 & 0.734 \\ 
2016  & Control & 3 & 0.320 & 0.344 & 0.382 & 0.382 & 0.494 & 0.477 \\ 
  & Treat & 3 & 0.378 & 0.296 & 0.123 & 0.386 & 0.668 & 0.732 \\ 
\bottomrule
\end{tabular}
\caption{Mean by Year and Group} 
\end{table}
\end{document}

salida de código

Algunos comentarios sobre la composición tipográfica de datos numéricos.

Usar el ctipo de columna realmente no es el mejor plan cuando se escriben datos numéricos. Generalmente queremos que los datos numéricos estén alineados de alguna manera, de modo que si los números son de diferentes tamaños, se alineen correctamente.

Para datos decimales, es normal alinearse con el punto decimal. Para datos no decimales, la alineación simple a la derecha está bien.

Para alinear con el punto decimal, puedes usar el siunitxpaquete o el dcolumnpaquete. siunitxtiene muchas capacidades sofisticadas para formatear datos numéricos automáticamente, incluida la agrupación de dígitos para números grandes. También proporciona formas de componer correctamente las unidades SI. El dcolumnpaquete está diseñado específicamente para la alineación del punto decimal. A continuación se muestra un ejemplo para mostrarle las diferencias.

\documentclass{article}
\usepackage{booktabs}
\usepackage{dcolumn}
\usepackage{siunitx}

% Shorthand for multicolumn
\newcommand\mc[1]{\multicolumn{1}{c}{#1}}
\begin{document}
\begin{tabular}{ccrD{.}{.}{2.3}S}
\toprule
Center & Center & \mc{right} & \mc{D-column} & \mc{S-column}  \\
\midrule
1 & 32.6 & 1 & 32.6 & 32.6  \\
10 & 335.434 & 10 & 335.434 & 335.434  \\
100 & 0.99 & 100 & 0.99 & 0.99  \\
5 & 1 & 5 & 1 & 1  \\
\bottomrule
\end{tabular}
\end{document}

salida de muestra

Respuesta2

En primer lugar, todas las reglas deben realizarse con booktabs, ya que agrega algo de relleno a las reglas de la mesa (las filas de la mesa en látex básico a menudo son demasiado apretadas).

En segundo lugar, los títulos de las tablas deben serarribatablas, ya que las tablas pueden ocupar varias páginas y los lectores no deberían tener que pasar la página para saber de qué trata la tabla. Para esto, el título packagees útil, el látex básico se olvida de intercambiar los valores de \abovecaptionskipy \belowdisplayskipcuando el título está sobre la mesa.

En tercer lugar, lo reemplazaría Observationscon una abreviatura, ya que me parece feo tener una columna de un solo dígito con un encabezado de columna tan ancho.

Cuarto, establecería un espacio entre columnas más pequeño para los dos grupos de 3 columnas al final de la tabla. Además, el (lr)parámetro `\cmidrules es útil aquí para mejorar el aspecto general de la tabla.

\documentclass{article}
\usepackage{array, multirow, caption, booktabs}

\begin{document}

 \begin{table}[ht]
\centering\setlength\extrarowheight{2pt}
\caption{Mean by Year and Group}
\begin{tabular}{@{\extracolsep{4pt}}llc*{2}{c@{\enspace}c@{\enspace}c}}
\toprule
{} & {} & {Obsv\textsuperscript{ns}} & \multicolumn{3}{c}{Median} & \multicolumn{3}{c}{SD}\\
 \cmidrule(lr){3-3}
 \cmidrule{4-6}
 \cmidrule(lr){7-9}
 Year & Group & N & V1 & V2 & V3 & V1 & V2 & V3 \\
   \midrule
   \multirow{2}{*}{2012}
  & Control & 2 & 0.052 & 0.294 & 0.115 & 0.304 & 0.619 & 0.611 \\
  & Treat & 2 & 0.511 & 0.083 & 0.123 & 0.573 & 0.541 & 0.734 \\
\addlinespace
  \multirow{2}{*}{2016}
  & Control & 3 & 0.320 & 0.344 & 0.382 & 0.382 & 0.494 & 0.477 \\
  & Treat & 3 & 0.378 & 0.296 & 0.123 & 0.386 & 0.668 & 0.732 \\
 \bottomrule
\end{tabular}
\end{table}

\end{document} 

ingrese la descripción de la imagen aquí

Nota: Si no desea abreviar `Observaciones, debería considerar reorganizar la tabla intercambiando filas y columnas.

información relacionada