Tabla Booktabs, encabezado de varias columnas subrayado

Tabla Booktabs, encabezado de varias columnas subrayado

Tengo una tabla para una regresión, que tiene dos partes principales ("Inmigrantes" y "Locales"). Me gustaría poner una pequeña línea debajo de Inmigrantes que va desde donde comienza el primer modelo ("Discapacidad") hasta donde termina el último modelo ("tasa"), y otra línea del mismo largo debajo de "Locales". Mi intención es separar mejor las dos partes del cuadro. ¿Es esa una posibilidad? ¿Cómo puedo hacerlo? Estoy agregando mi código y una captura de pantalla. ¡Muchas gracias!

    \begin{table}[H]\centering
    \def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
    \caption{Health}
    \begin{tabular}{l*{5}{c}}
    \toprule
    &\multicolumn{2}{c}{Immigrants}  & & \multicolumn{2}{c}{Locals}                                     \\
    \addlinespace
    &\multicolumn{1}{c}{Disability}&\multicolumn{1}{c}{Offspring survival rate}& & \multicolumn{1}{c}{Disability}&\multicolumn{1}{c}{Offspring survival rate}\\
     \midrule
    Low         &    -0.00190         &    -0.00525         & &     0.00185          &    -0.00186         \\
        &     (-0.43)         &     (-0.40)         & &       (0.83)         &     (-0.36)         \\
   \addlinespace
    High        &    -0.00865         &     0.00429         & &    -0.00413         &     -0.0207\sym{*}  \\
        &     (-1.21)         &      (0.20)         & &     (-1.01)         &     (-2.24)         \\

etcétera..ingrese la descripción de la imagen aquí

(Además, como puedes ver, tengo una columna vacía adicional entre ellas para crear más espacio)

Respuesta1

Utilice el \clineequivalente ofrecido porbooktabs:

ingrese la descripción de la imagen aquí

\documentclass{article}

\usepackage{booktabs}

\begin{document}

\begin{table}
  \centering
  \def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}%
  \begin{tabular}{l*{4}{c}}
    \toprule
    & \multicolumn{2}{c}{Immigrants}  & \multicolumn{2}{c}{Non-immigrants} \\
    \cmidrule(lr){2-3}\cmidrule(lr){4-5}
    & \multicolumn{1}{c}{Disability} & \multicolumn{1}{c}{Offspring survival rate} & 
      \multicolumn{1}{c}{Disability} & \multicolumn{1}{c}{Offspring survival rate} \\
    \midrule
    Low    &  -0.00190    &  -0.00525    &  0.00185     &  -0.00186       \\
           &   (-0.43)    &   (-0.40)    &   (0.83)     &  (-0.36)        \\
    \addlinespace
    High   &  -0.00865    &  0.00429     &  -0.00413    &  -0.0207\sym{*} \\
           &   (-1.21)    &   (0.20)     &   (-1.01)    &  (-2.24)        \\
    \bottomrule
  \end{tabular}
\end{table}

\end{document}

Elopcional (lr)El argumento para \cmidrulerecorta la línea en el lado lizquierdo y rderecho para que estén separados entre las columnas tres y cuatro.

Respuesta2

Agregue el \clinecomando en lugar de \midruleo después de la primera fila de la tabla (dependiendo de lo que realmente desee). Por ejemplo

& \multicolumn{2}{c}{Immigrants} & & \multicolumn{2}{c}{Locals} \\ \cline{2-3} \cline{5-6}

Los números i-jen el \cline{i-j}comando especifican las columnas que deben estar "subrayadas", es decir, la línea comienza en la columna iy termina en la columna j.

Editar: Si está utilizando el booktabspaquete, utilice el comando equivalente \cmidrulesugerido por @Werner. Sin embargo, tenga en cuenta que el booktabspaquete modifica la apariencia predeterminada de la tabla y algunas características de las tablas originales ya no producen resultados satisfactorios (como las reglas de las tablas verticales). Dicho esto, utilizar booktabssuele ser una mejor opción.

Respuesta3

Además de utilizar algunas de las macros de dibujo lineal del booktabspaquete para darle a la tabla un aspecto "abierto", también deberías

  • hacer que la tabla no exceda el ancho del bloque de texto; Esto se puede hacer usando un tabularxentorno para insertar un salto de línea en las cadenas.Offspring survival rate

  • alinear los datos numéricos en sus respectivos marcadores decimales y utilizar -signos (menos) adecuados en lugar de guiones para los números negativos; Esto se puede hacer cargando el dcolumnpaquete y usando los Dtipos de columnas.

ingrese la descripción de la imagen aquí

\documentclass{article}
\usepackage{booktabs,tabularx,dcolumn}
\newcolumntype{d}[1]{D..{#1}}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\newcommand\mc[1]{\multicolumn{1}{C}{#1}} % shortcut macro
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}

\begin{document}

\begin{table}
\caption{Health}
\begin{tabularx}{\textwidth}{ l *{4}{d{2.5}} }
\toprule
& \multicolumn{2}{c}{Immigrants}  & \multicolumn{2}{c}{Non-immigrants} \\
\cmidrule(lr){2-3}\cmidrule(l){4-5}
& \mc{Disability} & \mc{Offspring survival rate} 
& \mc{Disability} & \mc{Offspring survival rate} \\
\midrule
Low   &-0.00190  & -0.00525 &  0.00185 &  -0.00186     \\
      & (-0.43)  & (-0.40)  &   (0.83) &  (-0.36)      \\
\addlinespace
High & -0.00865 &  0.00429 &  -0.00413 & -0.0207\sym{*} \\
     &  (-1.21) &  (0.20)  &  (-1.01)  &  (-2.24)       \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}

información relacionada