Estou usando ltablex
com \multicolumn
s. Meu problema é que tenho que introduzir muito texto dentro de \multicolumn
itens únicos, então quando ele quebra automaticamente a tabela em duas páginas diferentes, fica muito espaço em branco no final da primeira página. Gostaria de encontrar uma pista para quebrar automaticamente um \multicolumn
item quando a margem inferior for atingida, em vez de quebrar linha por linha. Aqui está um exemplo:
\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}
Responder1
Não há necessidade de ter um longtable/ltablex
aqui (nem de usar colunas tabularx X). Se você usar tabularx
tex, será necessário muito esforço para redefinir a tabela e determinar as larguras ideais das colunas, mas você sabe de antemão que as células abrangentes estão cheias largura e as células individuais são um oitavo disso (ou pelo menos um sétimo da largura da linha menos a maior entrada na primeira coluna). Então você pode dizer isso ao TeX e evitar o incômodo de resolver isso. Depois de fixar as larguras das células, elas não precisam mais estar na mesma tabela, pois serão alinhadas de qualquer maneira, para que você possa substituir as entradas de extensão por texto normal. Se você realmente precisa das regras verticais, você pode usar mdframed
para ter uma moldura quebrável.
observação
\textwidth-2\tabcolsep-2\fboxrule
não é o cálculo correto, pois a largura da regra \arrayrulewidth
não é \fboxrule
(elas podem ter o mesmo valor, é claro).
Então, 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}