
Mudei para o pacote tabularray há algum tempo e encontrei um "problema" recentemente com uma longa tabela abrangendo mais de duas páginas em um documento de classe de relatório com lualatex e pdflatex. A tabela possui um número diferente de linhas para as últimas colunas e o objetivo é remover as linhas de células indesejadas ao redor das células vazias na última linha.
No entanto, a primeira regra inferior (antes da quebra de página) não tem largura total conforme exigido no preâmbulo da tabela, mas apenas metade da largura como a última linha da tabela (ver imagem1produzido com o MWE e imagem2para a produção esperada).
MWE:
\documentclass{report}
\usepackage{tabularray}
\begin{document}
\begin{longtblr}
[ caption = {Caption of the table presented just below},
]
{ vlines={solid},
vline{5-7} ={Z}{0pt},
vline{4} = {1.5pt},
hline{1-2}={1.5pt,solid},
hline{1-Y}={-}{solid},
hline{Z}={1-3}{solid},
rowhead=1,
colspec={X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]},
}
Z & alpha & beta & Z & alpha & beta\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & & &
\end{longtblr}
\end{document}
Gostaria de saber se a regra inferior antes de cada quebra de página é a "cópia" da regra inferior da tabela por padrão.
Também tentei usar apenas números de linha em vez de Y e Z, sem diferença na saída.
Talvez eu tenha perdido alguma coisa no manual? Ainda não encontrei um problema semelhante publicado online.
EDIT: tentei o que o @Celdor propôs. O problema de definir a última linha como pé é que ela se repete em todas as páginas e não imprime uma \hline completa.
A repetição da mesma linha no último MWE pode ser fonte de confusão, então atualizei o MWE com números de linhas, reduzi números de colunas e mostrei o uso de um rowfoot fantasma (colorido em rosa) sem borda3.
A saída desejada é: última linha antes da quebra de página com linha completa, última linha da tabela, meia linha3
\documentclass{report}
\usepackage{tabularray}
\usepackage{xcolor}
\begin{document}
\begin{longtblr}
[ caption = {Caption of the table presented just below},
]{ rowfoot = 1,
vlines={solid},
vline{4-5} ={Y}{0pt},
vline{-} ={Z}{0pt},
vline{3} = {1-Y}{1.5pt},
hline{1-2}={1.5pt,solid},
hline{1-Y}={-}{solid},
hline{Z}={2-4}{0pt},
rowhead=1,
cell{Z}{-}={red!10},
colspec={X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]},
}
Z & alpha & Z & beta\\
1 & alpha & 1 & beta\\
2 & alpha & 2 & beta\\
3 & alpha & 3 & beta\\
4 & alpha & 4 & beta\\
5 & alpha & 5 & beta\\
6 & alpha & 6 & beta\\
7 & alpha & 7 & beta\\
8 & alpha & 8 & beta\\
9 & alpha & 9 & beta\\
10 & alpha & 10 & beta\\
11 & alpha & 11 & beta\\
12 & alpha & 12 & beta\\
13 & alpha & 13 & beta\\
14 & alpha & 14 & beta\\
15 & alpha & 15 & beta\\
16 & alpha & 16 & beta\\
17 & alpha & 17 & beta\\
18 & alpha & 18 & beta\\
19 & alpha & 19 & beta\\
20 & alpha & 20 & beta\\
21 & alpha & 21 & beta\\
22 & alpha & 22 & beta\\
23 & alpha & 23 & beta\\
24 & alpha & 24 & beta\\
25 & alpha & 25 & beta\\
26 & alpha & 26 & beta\\
27 & alpha & 27 & beta\\
28 & alpha & 28 & beta\\
29 & alpha & 29 & beta\\
30 & alpha & 30 & beta\\
31 & alpha & 31 & beta\\
32 & alpha & 32 & beta\\
33 & alpha & 33 & beta\\
34 & alpha & 34 & beta\\
35 & alpha & 35 & beta\\
36 & alpha & 36 & beta\\
37 & alpha & 37 & beta\\
38 & alpha & 38 & beta\\
39 & alpha & 39 & beta\\
40 & alpha & 40 & beta\\
41 & alpha & 41 & beta\\
42 & alpha & 42 & beta\\
43 & gamma &\\
& & &
\end{longtblr}
\end{document}
Talvez não seja possível usar o pacote como está neste caso. Exceto evitar que a tabela se estenda por várias páginas, a redefinição do estilo da última linha com os comandos makeatletter/if/else/makeatother poderia ser algo a ser examinado?
Tal como:
> se pagebreak, então hline completo (ou estilo definido pelo usuário para esta linha)
> senão use o estilo de linha definido pelo usuário
Responder1
Eu gostaria de postar uma solução alternativa baseada em uma sugestão do mantenedor do pacote (graças ao lvjr!). Essencialmente, você pode criar um modelo personalizado que adiciona um \hrule
rodapé à mesa em todas as páginas, exceto na última. O exemplo abaixo provavelmente poderia ser ajustado para que a regra não seja desenhada duas vezes para as duas colunas da esquerda:
\documentclass{report}
\usepackage{tabularray}
\DefTblrTemplate{firstfoot,middlefoot}{mytemplate}{
\vskip -0.4pt
\hrule height 0.4pt width \tablewidth
}
\DefTblrTemplate{lastfoot}{mytemplate}{
}
\NewTblrTheme{mytheme}{
\SetTblrTemplate{foot}{mytemplate}
}
\begin{document}
\begin{longtblr}
[ caption = {Caption of the table presented just below},
theme=mytheme,
]
{ vlines={solid},
vline{5-7} ={Z}{0pt},
vline{4} = {1.5pt},
hline{1-2}={1.5pt,solid},
hline{1-Y}={-}{solid},
hline{Z}={1-3}{solid},
rowhead=1,
colspec={X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]X[halign=c, valign=m]},
}
Z & alpha & beta & Z & alpha & beta\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & 6 & rho & omega\\
5 & alpha & mu & & &
\end{longtblr}
\end{document}