Schrecklicher Seitenumbruch bei Verwendung sehr langer mehrspaltiger Elemente

Schrecklicher Seitenumbruch bei Verwendung sehr langer mehrspaltiger Elemente

Ich verwende ltablexmit \multicolumns. Mein Problem ist, dass ich viel Text in einzelne \multicolumnElemente einfügen muss. Wenn die Tabelle dann automatisch auf zwei verschiedene Seiten aufgeteilt wird, bleibt am Ende der ersten Seite viel Leerraum. Ich würde gerne einen Hinweis finden, wie ein \multicolumnElement automatisch aufgeteilt wird, wenn der untere Rand erreicht ist, anstatt es zeilenweise aufzuteilen. Hier ist ein Beispiel:

\begin{tabularx}{\linewidth}{| l | X | X | X | X | X | X | X |}
blabla & more blabla & \multicolumn{3}{c|}{merging cells} & \multicolumn{3}{c|}{more merging} \\
\multicolumn{8}{|p{\textwidth-2\tabcolsep-2\fboxrule}|}{a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, } \\
\hline
\multicolumn{8}{|p{\textwidth-2\tabcolsep-2\fboxrule}|}{a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, } \\
\hline
\multicolumn{8}{|p{\textwidth-2\tabcolsep-2\fboxrule}|}{a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, } \\
\hline
\multicolumn{8}{|p{\textwidth-2\tabcolsep-2\fboxrule}|}{a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, } \\
\hline
...
\multicolumn{8}{|p{\textwidth-2\tabcolsep-2\fboxrule}|}{a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, a very long text, } \\
\hline
\end{tabularx}

Antwort1

Es ist überhaupt nicht nötig, longtable/ltablexhier ein X-Feld zu haben (und auch keine tabularx-X-Spalten zu verwenden). Wenn Sie tabularxTex verwenden, ist es sehr aufwändig, die Tabelle neu einzustellen und optimale Spaltenbreiten zu bestimmen, aber Sie wissen im Voraus, dass die überspannenden Zellen die volle Breite haben und die einzelnen Zellen ein Achtel davon (oder zumindest ein Siebtel der Zeilenbreite abzüglich des größten Eintrags in der ersten Spalte) haben. Sie können TeX also sagen, was Sie tun müssen, und es muss sich nicht mehr darum kümmern. Wenn Sie die Zellenbreiten festgelegt haben, müssen sie nicht mehr in derselben Tabelle sein, da sie ohnehin in einer Reihe stehen, sodass Sie die überspannenden Einträge durch normalen Text ersetzen können. Wenn Sie die vertikalen Linien wirklich brauchen, können Sie mdframedeinen umbrechbaren Rahmen verwenden.

Notiz

\textwidth-2\tabcolsep-2\fboxrule

ist nicht die richtige Berechnung, da die Regelbreite \arrayrulewidthnicht richtig ist \fboxrule(diese können natürlich den gleichen Wert haben).

Also so etwas wie:

Bildbeschreibung hier eingeben

\documentclass{article}

\addtolength\textheight{-30\baselineskip}
\addtolength\paperheight{-30\baselineskip}
\pdfpageheight\paperheight
\newenvironment{trow}
{\par
\begin{tabular}{|*8{p{\dimexpr(((\textwidth-\arrayrulewidth)/8)-2\tabcolsep-\arrayrulewidth)\relax}|}}
\hline}
{\\\hline\end{tabular}%
\par}
\begin{document}
\setlength\parindent{0pt}

\def\x{a very long text, a very long text, a very long text, a very long
text, a very long text, a very long text, a very long text, a very
long text, a very long text, a very long text, a very long text, a
very long text, a very long text, a very long text, a very long text,
a very long text, a very long text, a very long text, a very long
text, a very long text, a very long text, }

\x
\begin{trow}
red&yellow&blue&green&red&yellow&blue&green
\end{trow}
\begin{trow}
1&2&3&4&5&6&7&8
\end{trow}

\x
\begin{trow}
red&yellow&blue&green&red&yellow&blue&green
\end{trow}
\begin{trow}
1&2&3&4&5&6&7&8
\end{trow}

\x
\begin{trow}
red&yellow&blue&green&red&yellow&blue&green
\end{trow}
\begin{trow}
1&2&3&4&5&6&7&8
\end{trow}


\end{document}

verwandte Informationen