Booktabs-Tabelle, mehrspaltige Kopfzeile unterstrichen

Booktabs-Tabelle, mehrspaltige Kopfzeile unterstrichen

Ich habe eine Tabelle für eine Regression, die aus zwei Hauptteilen besteht („Einwanderer“ und „Einheimische“). Ich möchte eine kleine Linie unter „Einwanderer“ einfügen, die vom Anfang des ersten Modells („Behinderung“) bis zum Ende des letzten Modells („Rate“) reicht, und eine weitere Linie mit der gleichen Länge unter „Einheimische“. Meine Absicht ist es, die beiden Teile der Tabelle besser zu trennen. Ist das möglich? Wie kann ich das machen? Ich füge meinen Code und einen Screenshot hinzu. Vielen Dank!

    \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)         \\

und so weiter..Bildbeschreibung hier eingeben

(außerdem habe ich, wie Sie sehen, eine zusätzliche leere Spalte dazwischen, um mehr Platz zu schaffen)

Antwort1

Nutzen Sie das \clineÄquivalent vonbooktabs:

Bildbeschreibung hier eingeben

\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}

DerOptional (lr)Das Argument \cmidrulekürzt die Zeilen auf der llinken und rrechten Seite, sodass sie zwischen den Spalten drei und vier getrennt sind.

Antwort2

Fügen Sie den \clineBefehl anstelle von \midruleoder nach der ersten Tabellenzeile ein (je nachdem, was Sie eigentlich wollen). Zum Beispiel

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

Die Zahlen i-jim \cline{i-j}Befehl geben die Spalten an, die „unterstrichen“ werden sollen, d. h. die Zeile beginnt bei Spalte iund endet bei Spalte j.

Bearbeiten: Wenn Sie das Paket verwenden booktabs, verwenden Sie stattdessen den entsprechenden Befehl, \cmidrulewie von @Werner vorgeschlagen. Beachten Sie jedoch, dass das booktabsPaket das Standardaussehen der Tabelle ändert und einige Funktionen der ursprünglichen Tabellen keine zufriedenstellenden Ergebnisse mehr liefern (z. B. vertikale Tabellenregeln). Trotzdem ist die Verwendung von booktabsnormalerweise die bessere Wahl.

Antwort3

Zusätzlich zur Verwendung einiger Linienzeichnungsmakros des booktabsPakets, um der Tabelle ein "offenes" Aussehen zu verleihen, sollten Sie auch

  • Stellen Sie sicher, dass die Tabelle die Breite des Textblocks nicht überschreitet. Dies kann durch die Verwendung einer tabularxUmgebung erreicht werden, um einen Zeilenumbruch in die Zeichenfolgen einzufügen.Offspring survival rate

  • Richten Sie die numerischen Daten an ihren jeweiligen Dezimaltrennzeichen aus und verwenden Sie -für die negativen Zahlen richtige (Minus-)Zeichen anstelle von Bindestrichen. Dies können Sie durch Laden des dcolumnPakets und Verwenden der DSpaltentypen erreichen.

Bildbeschreibung hier eingeben

\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}

verwandte Informationen