Tabularx, альбомная ориентация, \toprule \midrule не полностью подчеркивают строку

Tabularx, альбомная ориентация, \toprule \midrule не полностью подчеркивают строку

Почему-то \topruleне подчеркивает всю строку моей таблицы. Надеюсь, кто-нибудь сможет объяснить мне, что я делаю не так. Моя конечная цель — создать таблицу, похожую на:Фрагмент статьи АНДРЕЯ ГОЛУБОВА, ДИМИТРИСА ПЕТМЕЗАСА и НИКОЛАОСА Г. ТРАВЛОСА «Когда выгодно платить инвестиционному банкиру», 2012 г.

Копия моего сокращенного кода:

\documentclass[12pt,twoside]{article}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{lscape}
        \begin{landscape}
    {
    \def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
    \begin{tabularx}{\textwidth}{l*{4}{lccc}}
    \toprule
                        &\multicolumn{2}{c}{Full sample (1)}  &\multicolumn{2}{c}{Top 50\% experience target ind. (2)}  &\multicolumn{2}{c}{Bottem 50\% Experience target ind(3)}  &\multicolumn{2}{c}{(2-3)}           \\
                        &\multicolumn{2}{c}{}     &\multicolumn{2}{c}{}     &\multicolumn{2}{c}{}     &\multicolumn{2}{c}{}              \\
                        &        mean&          sd&        mean&          sd&        mean&          sd&           b         &           t\\
    \midrule
    Book to Market       &       2.911&      18.792&       3.341&      16.830&       2.642&      19.949&      -0.699         &    (-0.371)\\
    Free cash flow      &     225.883&    4275.873&     325.020&    6726.092&     163.922&    1242.414&    -161.098         &    (-0.290)\\
    Leverage            &       0.578&       0.204&       0.601&       0.206&       0.564&       0.202&      -0.037         &    (-1.734)\\
    Relative size       &      87.852&     667.603&      50.216&     184.712&     111.334&     838.031&      61.119         &     (1.075)\\
    \midrule
    Observations        &         390&            &         150&            &         240&            &         390         &            \\
    \bottomrule
    \end{tabularx}
    }
    \end{landscape}

Стоит отметить, что код создан с использованием пакета STATA esstab + booktabs.

решение1

Я понимаю, что таблица формируется автоматически, но после этого вынуждатьсяисправить его так, чтобы он был читаемым и синтаксически правильным. Например, tabularxздесь совершенно бесполезно, потому что не Xуказан столбец.

Вот переработка siunitxи несколько приемов для уменьшения ширины заголовка.

\documentclass[12pt,twoside]{article}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{rotating}

\newcommand{\splitcell}[2][c]{\begin{tabular}[#1]{@{}c@{}}#2\end{tabular}}

\begin{document}

\begin{sidewaystable}
\centering

\sisetup{% we don't need to parse uncertainty
  input-open-uncertainty={},
  input-close-uncertainty={}
}

\caption{Some caption to the table}

\begin{tabular}{
  @{}
  l
  S[table-format=3.3]
  S[table-format=4.3]
  S[table-format=3.3]
  S[table-format=4.3]
  S[table-format=3.3]
  S[table-format=4.3]
  S[table-format=-3.3]
  S[table-format=-1.3,
    table-space-text-pre={(},
    table-space-text-post={)},
    table-align-text-pre=false
  ]
  @{}
}
\toprule
& \multicolumn{2}{c}{Full sample (1)}
& \multicolumn{2}{c}{\splitcell[t]{Top 50\% \\ experience \\ target ind. (2)}}
& \multicolumn{2}{c}{\splitcell[t]{Bottom 50\% \\ experience \\ target ind. (3)}}
& \multicolumn{2}{c}{$(3)-(2)$}
\\
\cmidrule(lr){2-3}\cmidrule(lr){4-5}\cmidrule(lr){6-7}\cmidrule(l){8-9}
& {mean} & {sd} & {mean} & {sd} & {mean} & {sd} & {b} & {t} \\
\midrule
Book to Market &   2.911 &   18.792 &   3.341 &   16.830 &   2.642 &   19.949 &   -0.699 & (-0.371)\\
Free cash flow & 225.883 & 4275.873 & 325.020 & 6726.092 & 163.922 & 1242.414 & -161.098 & (-0.290)\\
Leverage       &   0.578 &    0.204 &   0.601 &    0.206 &   0.564 &    0.202 &   -0.037 & (-1.734)\\
Relative size  &  87.852 &  667.603 &  50.216 &  184.712 & 111.334 &  838.031 &   61.119 &  (1.075)\\
\midrule
Observations   &  {390}  &          &   {150} &          &  {240}  &          &    {390} &         \\
\bottomrule
\end{tabular}

\end{sidewaystable}

\end{document}

введите описание изображения здесь

решение2

В следующем примере я удалил tabularxи для того, чтобы таблица вписалась в страницу, я ввел переносы строк в заголовках. Я также добавил s \cmidruleи удалил ненужные столбцы (в оригинале вы объявили всего 17 столбцов, но использовали только 9). Во второй таблице я добавил siunitxдля улучшения выравнивания чисел в таблице.

введите описание изображения здесь

\documentclass{article}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{pdflscape}
\usepackage{makecell}
\usepackage{siunitx}
\begin{document}

\begin{landscape}
\centering
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\begin{tabular}{l*{2}{lccc}}
\toprule
                    &\multicolumn{2}{c}{Full sample (1)}  &\multicolumn{2}{c}{\makecell{Top 50\%\\ experience target \\ind. (2)}}  &\multicolumn{2}{c}{\makecell{Bottom 50\%\\ Experience target\\ ind(3)}}  &\multicolumn{2}{c}{(2-3)}           \\
          \cmidrule(r){2-3} \cmidrule(lr){4-5} \cmidrule(lr){6-7} \cmidrule(l){8-9}
                    &        mean&          sd&        mean&          sd&        mean&          sd&           b         &           t\\
\midrule
Book to Market       &       2.911&      18.792&       3.341&      16.830&       2.642&      19.949&      -0.699         &    (-0.371)\\
Free cash flow      &     225.883&    4275.873&     325.020&    6726.092&     163.922&    1242.414&    -161.098         &    (-0.290)\\
Leverage            &       0.578&       0.204&       0.601&       0.206&       0.564&       0.202&      -0.037         &    (-1.734)\\
Relative size       &      87.852&     667.603&      50.216&     184.712&     111.334&     838.031&      61.119         &     (1.075)\\
\midrule
Observations        &         390&            &         150&            &         240&            &         390         &            \\
\bottomrule
\end{tabular}

\bigskip

\begin{tabular}{l
                *{3}{
                S[table-format=3.3]
                S[table-format=4.3]}
                S[table-format=-3.3]
                S[table-format=-1.3,
                  input-open-uncertainty= ,
                  input-close-uncertainty  = ,
                  table-space-text-pre={(}, 
                  table-space-text-post={)},
                  table-align-text-pre = false]
           }
\toprule
     &\multicolumn{2}{c}{Full sample (1)}  
         &\multicolumn{2}{c}{\makecell{Top 50\%\\ experience target \\ind. (2)}}  
             &\multicolumn{2}{c}{\makecell{Bottom 50\%\\ Experience target\\ ind(3)}}  
                 &\multicolumn{2}{c}{(2-3)}           \\
          \cmidrule(r){2-3} \cmidrule(lr){4-5} \cmidrule(lr){6-7} \cmidrule(l){8-9}
    &        {mean}&          {sd}
        &        {mean}&          {sd}
            &        {mean}&          {sd}
                &           {b}         &           {t}\\
\midrule
Book to Market       &       2.911&      18.792&       3.341&      16.830&       2.642&      19.949&      -0.699         &    (-0.371)\\
Free cash flow      &     225.883&    4275.873&     325.020&    6726.092&     163.922&    1242.414&    -161.098         &    (-0.290)\\
Leverage            &       0.578&       0.204&       0.601&       0.206&       0.564&       0.202&      -0.037         &    (-1.734)\\
Relative size       &      87.852&     667.603&      50.216&     184.712&     111.334&     838.031&      61.119         &     (1.075)\\
\midrule
Observations        &         {390}&            &         {150}&            &         {240}&            &         {390}         &            \\
\bottomrule
\end{tabular}
\end{landscape}
\end{document}

решение3

Вот решение, которое продолжает использовать tabularxсреду.

Я сократил общее количество столбцов до 9и назначил центрированную версию Xтипа столбца для всех 8 столбцов данных. Я также использовал несколько \cmidruleдиректив, чтобы придать более визуальную структуру материалу заголовка. Обратите внимание, что, допуская разрывы строк в ячейках заголовка, становится намного проще разместить всю таблицу в альбомном формате.

введите описание изображения здесь

\documentclass[12pt,twoside]{article}
\usepackage[a4paper,margin=2.5cm]{geometry} % set suitable page parameters
\usepackage{booktabs,tabularx,ragged2e}
\newcolumntype{C}{>{\Centering\arraybackslash}X}
\newcommand\doublehsize{\hsize=\dimexpr2\hsize+2\tabcolsep\relax} % handy shortcut macro
\usepackage{rotating}

\begin{document}

\begin{sidewaystable}
\begin{tabularx}{\textwidth}{@{} l *{8}{C} @{}}
\toprule
&\multicolumn{2}{>{\doublehsize}C}{Full sample (1)}  
&\multicolumn{2}{>{\doublehsize}C}{Top 50\% experience target ind.~(2)}  
&\multicolumn{2}{>{\doublehsize}C}{Bottom 50\% experience target ind.~(3)}  
&\multicolumn{2}{>{\doublehsize}C}{$(2)-(3)$} \\

\cmidrule(lr){2-3} \cmidrule(lr){4-5} \cmidrule(lr){6-7} \cmidrule(l){8-9}
 & mean & sd & mean & sd & mean & sd & b & t\\
\midrule
Book to Market  &   2.911&   18.792&   3.341&   16.830&   2.642&   19.949&   $-0.699$ & ($-0.371$)\\
Free cash flow  & 225.883& 4275.873& 325.020& 6726.092& 163.922& 1242.414& $-161.098$ & ($-0.290$)\\
Leverage        &   0.578&    0.204&   0.601&    0.206&   0.564&    0.202&   $-0.037$ & ($-1.734$)\\
Relative size   &  87.852&  667.603&  50.216&  184.712& 111.334&  838.031&   $61.119$ &  ($1.075$)\\
\midrule
Observations    &  390 &  &  150 &  &  240 &  &  390      & \\
\bottomrule
\end{tabularx}
\end{sidewaystable}
\end{document}

Связанный контент