Estoy usando ltablex
con \multicolumn
s. Mi problema es que tengo que introducir una gran cantidad de texto dentro de \multicolumn
elementos individuales y luego, cuando automáticamente divide la tabla en dos páginas diferentes, queda mucho espacio en blanco al final de la primera página. Me gustaría encontrar una pista para dividir automáticamente un \multicolumn
elemento cuando se alcanza el margen inferior, en lugar de dividirlo fila por fila. Aquí hay un ejemplo:
\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}
Respuesta1
No es necesario en absoluto tener un longtable/ltablex
aquí (ni usar columnas tabularx X). Si usa tabularx
tex, se requiere un gran esfuerzo para restablecer la tabla y determinar los anchos de columna óptimos, pero sabe de antemano que las celdas que abarcan están llenas. el ancho y las celdas individuales son una octava parte de eso (o al menos una séptima parte del ancho de línea menos la entrada más grande en la primera columna). Así que puedes decirle eso a TeX y ahorrarle la molestia de resolverlo. Habiendo arreglado los anchos de las celdas, ya no es necesario que estén en la misma tabla, ya que se alinearán de todos modos para que pueda reemplazar las entradas ampliadas por texto normal. Si realmente necesitas las reglas verticales, puedes usarlas mdframed
para tener un marco rompible.
nota
\textwidth-2\tabcolsep-2\fboxrule
no es el cálculo correcto ya que el ancho de la regla \arrayrulewidth
no lo es \fboxrule
(estos pueden tener el mismo valor, por supuesto).
Entonces algo como:
\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}