2

I have a quite large amount of data that I want to present in a single table. Splitting the table in several parts unfortunately does not make sense, as any cut would be arbitrary and would lead to confusion for the readers.

Usually, a lot of cells in a table would mean that I'd have to either distribute the rows (longtable package) or the columns (\widesplit) across pages. But can I also combine longtable with \widesplit if I have both a lot of rows and columns?

Since the table is to be printed in a book publication, my idea would be that the table would begin on the even page, then continue on the odd page in the columns' direction, but then also be spread to the next pair of pages as in a longtable.

A possible idea might be to have two longtables, and to force the first to be printed on the even pages of the book, while forcing the second one to be printed on the odd pages. Unfortunately, I'm unsure how to force a longtable to be spread across odd/even pages only.

MWE (sort of):

\documentclass{scrbook}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage[papersize={170mm,240mm},top=27.4mm,inner=20.5mm,outer=24.5mm,marginparwidth=50pt]{geometry}
\begin{document}
\begin{longtable}{*{20}l}
\toprule
Object & Property 1 & Property 2 & P3 & P4 & P5 & P6 & P7 & P8 & P9 & P10 & P11 & P12 & P13 & P14 & P15 & P16 & P17 & P18 & P19\\
\midrule\endhead
\bottomrule\endfoot
Object 1 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 2 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 3 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 4 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 5 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 6 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 7 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 8 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 9 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 10 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 11 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 12 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 13 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 14 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 15 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 16 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 17 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 18 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 19 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 20 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 21 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 22 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 23 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 24 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 25 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 26 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 27 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 28 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 29 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 30 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 31 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 32 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 33 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 34 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 35 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 36 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 37 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 38 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 39 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 40 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 41 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
Object 42 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19\\
\end{longtable}
\end{document}
1

You could do something not unlike this

enter image description here

\documentclass{scrbook}
\errorcontextlines100
\usepackage[papersize={170mm,240mm},top=27.4mm,inner=20.5mm,outer=24.5mm,marginparwidth=50pt]{geometry}
\newbox\xlhead
\newbox\xrhead
\def\cleartoevenside{%
\clearpage
\ifodd\value{page}\mbox{}\clearpage\fi
}
%\showoutput

\def\xhead#1{%
\cleartoevenside
\setbox0\vbox{}%
\setbox2\vbox{}%
\xrow{#1}%
\setbox\xlhead\vbox{\hrule\vskip2pt\box0\vskip2pt\hrule\vskip2pt}%
\setbox\xrhead\vbox{\hrule\vskip2pt\box2\vskip2pt\hrule\vskip2pt}%
\setbox0\vbox{\copy\xlhead}%
\setbox2\vbox{\copy\xrhead}%
}
\newcount\colcount
\def\xrow#1{%
\setbox4\hbox{}%
\setbox6\hbox{}%
\colcount=0 \xxrow#1&%
\setbox0\vbox{\unvbox0\box4}%
\setbox2\vbox{\unvbox2\box6}%
\ifdim\ht0>.8\textheight
\box0\vfill
\pagebreak
\box2\vfill
\pagebreak
\setbox0\vbox{\copy\xlhead}%
\setbox2\vbox{\copy\xrhead}%
\fi}

\def\xfinish{%
\box0\vfill
\pagebreak
\box2\vfill
\pagebreak
}
\def\xxrow#1&{%
\advance\colcount 1 %
\setbox\ifnum\colcount<10 4\else 6\fi\hbox{%
\unhbox\ifnum\colcount<10 4\else 6\fi
\xdoformat{\strut\ignorespaces#1\ifhmode\unskip\fi}}%
\ifnum\colcount<20 \expandafter\xxrow\fi}

\def\xdoformat{%
\csname xformat%
    \expandafter\ifx\csname xformat\the\colcount\endcsname\relax
      *\else\the\colcount\fi
\endcsname
}

\def\xdeclareformat#1#2{%
 \expandafter\def\csname xformat#1\endcsname##1{#2}}

\xdeclareformat{*}{\makebox[1cm][l]{#1}}
\xdeclareformat{1}{\framebox[2.2cm][r]{\strut#1}}
\xdeclareformat{2}{\makebox[2cm][l]{#1}}
\xdeclareformat{3}{\makebox[2cm][l]{#1}}
\xdeclareformat{10}{\framebox{\strut\ldots}\makebox[1cm][l]{#1}}
\begin{document}


\xhead{Object & Property 1 & Property 2 & P3 & P4 & P5 & P6 & P7 & P8 & P9 & P10 & P11 & P12 & P13 & P14 & P15 & P16 & P17 & P18 & P19}

\xrow{Object 1 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}

\xrow{Object 2 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 3 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 4 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 5 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 6 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 7 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 8 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 9 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 10 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 11 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 12 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 13 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 14 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 15 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 16 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 17 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 18 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 19 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 20 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 21 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 22 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 23 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 24 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 25 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 26 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 27 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 28 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 29 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 30 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 31 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 32 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 33 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 34 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 35 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 36 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 37 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 38 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 39 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 40 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 41 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xrow{Object 42 & Value 1 & Value 2 & V3 & V4 & V5 & V6 & V7 & V8 & V9 & V10 & V11 & V12 & V13 & V14 & V15 & V16 & V17 & V18 & V19}
\xfinish

\end{document}
  • This is a very helpful answer. I particularly like the low-level approach, providing a lot of control over the outcome. For example, in my specific case it was a good idea to increase \ifdim\ht0>.95\textheight(up from .8\textheight). It was also easy to adapt the number of columns (\colcount). In my specific application, I also issued a \newgeometry{inner=10mm} before and a \restoregeometry after the table. This however might be dangerous in other applications. Finally, footnotesize and \scshape also contributed to a 53x57 table that is actually a pleasure to look at. – Felix Emanuel Dec 11 '16 at 12:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.