Incompatibilidade entre xltabular e multirow

Incompatibilidade entre xltabular e multirow

Quando descobri xltabulardisse “uau, isso é um milagre!”: Um pacote que combina tabularxe longtableonde se pode dar proporções de larguras de células e uma largura global, e todos os cálculos são feitos automaticamente, um sonho se torna realidade! E funciona muito bem, exceto por uma coisa: parece ser incompatível com multirow.

Aqui está um MWE:

\documentclass{article}
\usepackage{xltabular,multirow}
\pagestyle{empty}
\usepackage{makecell}
\setcellgapes{2.5pt}
\begin{document}

\renewcommand\arraystretch{1.4644}
\makegapedcells

\begin{center}\begin{xltabular}{\textwidth}{|
>{\setlength{\hsize}{0.076\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.129\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.087\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.167\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.14\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.116\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.16\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.125\hsize}\centering\arraybackslash}X|}
\hline 
\multicolumn{3}{|c|}{A. bla bla bla
}
&\multicolumn{2}{c|}{B. bla bla bla
}
&C. bla bla bla bla  bla bla bla bla  bla bla bla bla 
&D. bla bla bla bla  bla bla bla bla  bla bla bla bla
&E. bla bla bla bla bla bla bla  bla bla bla bla bla bla 
\\\cline{1-5}F. bla bla bla bla bla bla 
&G. bla bla bla bla bla bla 
&H. bla bla bla bla bla bla 
&I. bla bla bla bla bla bla 
&J. bla bla bla bla bla bla 
&
&
&\\\hline
\end{xltabular}\end{center}

que dá

insira a descrição da imagem aqui

Naturalmente, gostaria de converter as células C, D e E em células de 2 linhas para usar o espaço vertical das células FJ. Usando o seguinte código:

\begin{center}\begin{xltabular}{\textwidth}{|
>{\setlength{\hsize}{0.076\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.129\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.087\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.167\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.14\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.116\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.16\hsize}\centering\arraybackslash}X|
>{\setlength{\hsize}{0.125\hsize}\centering\arraybackslash}X|}
\hline 
\multicolumn{3}{|c|}{A. bla bla bla
}
&\multicolumn{2}{c|}{B. bla bla bla
}
&\multirow{2}{*}{C. bla bla bla bla  bla bla bla bla  bla bla bla bla}
&\multirow{2}{*}{D. bla bla bla bla  bla bla bla bla  bla bla bla bla}
&\multirow{2}{*}{E. bla bla bla bla bla bla bla  bla bla bla bla bla bla }
\\\cline{1-5}F. bla bla bla bla bla bla 
&G. bla bla bla bla bla bla 
&H. bla bla bla bla bla bla 
&I. bla bla bla bla bla bla 
&J. bla bla bla bla bla bla 
&
&
&\\\hline
\end{xltabular}\end{center}

Recebo o resultado (bastante decepcionante):

insira a descrição da imagem aqui

Você sabe como conseguir o efeito de várias linhas usando xltabular?

Responder1

Você pode brincar com o argumento opcional de `\multirow para mover para cima ou para baixo o conteúdo de \multirow. Aqui está um código com os valores corretos para \hsize. Também reduzi o valor de \tabcolsep, porque as larguras das colunas são muito pequenas. Também se pode questionar se há valores até o terceiro dígito decimal.

\documentclass{article}
\usepackage{geometry}
\usepackage{xltabular,multirow}
\pagestyle{empty}
\usepackage{makecell}
\setcellgapes{2.5pt}

\begin{document}

\renewcommand\arraystretch{1.4644}
\makegapedcells

\begin{center}
\setlength{\tabcolsep}{3pt}
\begin{xltabular}{\textwidth}{|
>{\hsize=0.608\hsize\centering\arraybackslash}X|
>{\hsize=1.032\hsize\centering\arraybackslash}X|
>{\hsize=0.696\hsize\centering\arraybackslash}X|
>{\hsize=1.336\hsize\centering\arraybackslash}X|
>{\hsize=1.12\hsize\centering\arraybackslash}X|
>{\hsize=0.928\hsize\centering\arraybackslash}X|
>{\hsize=1.28\hsize\centering\arraybackslash}X|
>{\centering\arraybackslash}X|
}
\hline
\multicolumn{3}{|c|}{A. bla bla bla
}
&\multicolumn{2}{c|}{B. bla bla bla
}
&\multirow{2}{=}[-0.9ex]{C. bla bla bla bla bla bla bla bla bla bla bla bla}
&\multirow{2}{=}[-0.9ex]{D. bla bla bla bla bla bla bla bla bla bla bla bla}
&\multirow{2}{=}[-0.9ex]{E. bla bla bla bla bla bla bla bla bla bla bla bla bla}
\\\cline{1-5}F. bla bla bla bla bla bla
&G. bla bla bla bla bla bla
&H. bla bla bla bla bla bla
&I. bla bla bla bla bla bla
&J. bla bla bla bla bla bla
&
&
&\\\hline
\end{xltabular}
\end{center}

\end{document} 

insira a descrição da imagem aqui

informação relacionada