0

I have a long and wide table (9 columns, 67 rows). For the moment I have tried to use the lscape package to have it presented horizontally. The problem is that it's still too long and too wide, so that many rows and the last column don't fit into the page.

I am familiar with the longtable package and have tried to use it, but it still doesn't fit (neither horizontally nor vertically).

Does anybody have any ideas why this may be happening? Is resizing the font the only thing I can do?

I found some helpful posts but I am still wondering what's best in my case.

I report a fraction of the code in case it's needed.

\documentclass{article}

\usepackage[utf8]{inputenc}

\usepackage{dcolumn}

\usepackage{siunitx}

\usepackage{lscape}

\usepackage{longtable}

\begin{table}[H]

\sisetup{

input-digits = ()-01234567890,

input-open-uncertainty = ,

input-close-uncertainty = ,

table-align-text-post = false,

detect-all } \centering

\begin{longtable}{lccccccccc}

\label{tab:panel_main} \ \hline \toprule & \multicolumn{1}{l}{Model 1} & \multicolumn{1}{l}{Model 2} & \multicolumn{1}{l}{Model 3} & \multicolumn{1}{l}{Model 4} & \multicolumn{1}{l}{Model 5} & \multicolumn{1}{l}{Model 6} & \multicolumn{1}{l}{Model 7} & \multicolumn{1}{l}{Model 8} & \multicolumn{1}{l}{Model 9} \ \midrule

year 1958 & 1.314* & -     & \multicolumn{1}{l}{1.363*} & -     & \multicolumn{1}{l}{1.558**} & \multicolumn{1}{r}{1.345} & -     & -     & - \\

year 1959 & 0.209 & - & \multicolumn{1}{r}{0.0816} & - & \multicolumn{1}{r}{-0.625} & \multicolumn{1}{r}{0.148} & - & - & - \ \bottomrule \multicolumn{2}{c}{ Robust standard errors in parentheses} \ \multicolumn{2}{c}{ *** p$<$0.01, ** p$<$0.05, * p$<$0.1} \ \end{longtable} \end{table} \end{document}

Thanks in advance!

muzimuzhi Z
  • 26,474

2 Answers2

1

Placing a longtable in a table environment is wrong, because table cannot be broken across pages.

My impression is that you have a standard table. Here's some advice to get a better and smaller one.

Never repeat information: you can simply group the model columns and assign numbers to them. Similarly, repeating “year” can be avoided using a header.

With siunitx, aligning figures is much easier.

\documentclass{article}

\usepackage{booktabs} \usepackage{siunitx}

\begin{document}

\begin{table} \centering

\sisetup{table-align-text-after = false}

\begin{tabular}{ @{} l S[table-format=1.3{*}] S[table-format=1.3] S[table-format=1.4{*}] S[table-format=1.3] S[table-format=-1.3{**}] S[table-format=1.3] S[table-format=1.3] S[table-format=1.3] S[table-format=1.3] @{} }

\toprule Year & \multicolumn{9}{c}{Model} \ \cmidrule(l){2-10} & {1} & {2} & {3} & {4} & {5} & {6} & {7} & {8} & {9} \ \midrule

1958 & 1.314* & {--} & 1.363* & {--} & 1.558** & 1.345 & {--} & {--} & {--} \

1959 & 0.209 & {--} & 0.0816 & {--} & -0.625 & 0.148 & {--} & {--} & {--} \ \bottomrule \multicolumn{10}{@{}l@{}}{Robust standard errors in parentheses} \ \multicolumn{10}{@{}l@{}}{*** $p<0.01$, ** $p<0.05$, * $p<0.1$} \ \end{tabular}

\end{table}

\end{document}

Adjust the settings of the columns depending on the actual values you have.

enter image description here

egreg
  • 1,121,712
0

Here is a code that works with lscape and siunitx. Note that a longtable is not a float, so it doesn't have to be nested in a table environment, and it is automatically centred, so \centering is useless. I added various improvements and simplifications of code.

\documentclass{report}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{lscape}
\usepackage{longtable}

\begin{document}

\begin{landscape} \sisetup{% input-digits = ()-01234567890, input-signs = -, input-open-uncertainty = , input-close-uncertainty = , table-align-text-post = false, detect-all, table-format =-1.4**} \setlength{\extrarowheight}{3pt} \begin{longtable}{@{}l{9}{S}}

\label{tab:panel_main} \ \hline \toprule & {Model 1} & {Model 2} & {Model 3} & {Model 4} & {Model 5} & {Model 6} & {Model 7} & {Model 8} & {Model 9} \ \midrule year 1958 & 1.314* & {$ - $} & 1.363* & {$ - $} & 1.558** & 1.345 & {$ - $} & {$ - $} & {$ - $} \ year 1959 & 0.209 & {$ - $} & 0.0816 & {$ - $} & -0.625 & 0.148 & {$ - $}& {$ - $} & {$ - $} \ \midrule[\heavyrulewidth] \multicolumn{10}{l}{ Robust standard errors in parentheses} \ \multicolumn{10}{l}{ *** $p<0.01$, \enspace ** $p<0.05$,\enspace * $p<0.1$} \end{longtable} \end{landscape}

\end{document}

enter image description here

Bernard
  • 271,350