Booktabs テーブル、複数列ヘッダーの下線

Booktabs テーブル、複数列ヘッダーの下線

回帰分析の表があり、そこには 2 つの主要な部分 (「移民」と「地元住民」) があります。移民の下に、最初のモデルの開始位置 (「障害」) から最後のモデルが終了する位置 (「率」) まで伸びる短い線を入れ、同じ長さの別の線を「地元住民」の下に入れたいと思います。私の意図は、表の 2 つの部分をより適切に分離することです。それは可能ですか? どうすればいいですか? コードとスクリーンショットを追加します。どうもありがとうございます!

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

などなど。ここに画像の説明を入力してください

(また、お分かりのように、スペースを増やすために、間に空の列を追加しています)

答え1

\cline同等のものを使用するbooktabs:

ここに画像の説明を入力してください

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

オプション (lr)引数は、左端と右端\cmidruleの線をトリムして、3 列目と 4 列目の間に分離します。lr

答え2

\clineコマンドを、最初のテーブル行の代わりに、または後に(実際に何が必要かに応じて)追加します\midrule。たとえば、

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

i-jコマンド内の数字は\cline{i-j}、「下線」を付ける列を指定します。つまり、行は列 で始まりi、列 で終わりますj

編集: パッケージを使用している場合は、 @Werner の提案に従って、代わりにbooktabs同等のコマンドを使用してください。ただし、パッケージはデフォルトの表の外観を変更するため、元の表の一部の機能 (垂直の表の罫線など) では満足のいく結果が得られなくなることに注意してください。そうは言っても、通常は を使用する方がよい選択です。\cmidrulebooktabsbooktabs

答え3

パッケージの線描画マクロのいくつかを使用してbooktabsテーブルに「開いた」外観を与えることに加えて、

  • 表がテキストブロックの幅を超えないようにします。これは、tabularx文字列に改行を挿入する環境を使用して行うことができます。Offspring survival rate

  • 数値データをそれぞれの小数点に揃え、-負の数にはダッシュではなく適切な (マイナス) 記号を使用します。これは、dcolumnパッケージをロードして列タイプを使用することで実行できますD

ここに画像の説明を入力してください

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

関連情報