Я использую ltablex
с \multicolumn
s. Моя проблема в том, что мне нужно ввести много текста внутри отдельных \multicolumn
элементов, а затем, когда он автоматически разбивает таблицу на две разные страницы, в конце первой страницы остается много пустого пространства. Я хотел бы найти подсказку для автоматического разбиения элемента \multicolumn
при достижении нижнего поля, вместо того, чтобы разбивать построчно. Вот пример:
\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}
решение1
Нет никакой необходимости иметь longtable/ltablex
здесь (и использовать tabularx X columns.) Если вы используете tabularx
tex, то потребуется много усилий для переустановки таблицы и определения оптимальной ширины столбцов, но вы заранее знаете, что охватывающие ячейки имеют полную ширину, а отдельные ячейки составляют восьмую часть от этого (или, по крайней мере, седьмую часть ширины строки за вычетом наибольшей записи в первом столбце). Так что вы можете сообщить это TeX и избавить его от необходимости разбираться с этим. После исправления ширины ячеек им больше не нужно находиться в одной таблице, поскольку они в любом случае выстроятся в линию, поэтому вы можете заменить охватывающие записи обычным текстом. Если вам действительно нужны вертикальные линии, вы можете использовать их mdframed
для создания разрываемой рамки.
примечание
\textwidth-2\tabcolsep-2\fboxrule
это неправильный расчет, так как ширина линейки \arrayrulewidth
неверна \fboxrule
(конечно, они могут иметь одинаковое значение).
Итак, что-то вроде:
\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}