
Ich verwende ltablex
mit \multicolumn
s. Mein Problem ist, dass ich viel Text in einzelne \multicolumn
Elemente 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 \multicolumn
Element 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/ltablex
hier ein X-Feld zu haben (und auch keine tabularx-X-Spalten zu verwenden). Wenn Sie tabularx
Tex 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 mdframed
einen umbrechbaren Rahmen verwenden.
Notiz
\textwidth-2\tabcolsep-2\fboxrule
ist nicht die richtige Berechnung, da die Regelbreite \arrayrulewidth
nicht richtig ist \fboxrule
(diese können natürlich den gleichen Wert haben).
Also so etwas wie:
\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}