¿Cómo componer una tabla larga con diferente número de filas en algunas columnas?

¿Cómo componer una tabla larga con diferente número de filas en algunas columnas?

Cambié al paquete tabularray hace un tiempo y recientemente encontré un "problema" con una tabla larga que abarca más de dos páginas en un documento de clase de informe con lualatex y pdflatex. La tabla tiene un número diferente de filas para las últimas columnas y el objetivo es eliminar las líneas de celda no deseadas alrededor de las celdas vacías en la última línea.

Sin embargo, la primera regla inferior (antes del salto de página) no es el ancho completo como se requiere en el preámbulo de la tabla, sino solo la mitad del ancho como la última fila de la tabla (ver imagen1producido con el MWE e imagen2para la producción 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}

Imagen 1: Salida del MWE

Imagen 2: Rendimiento esperado del MWE

Me pregunto si la regla inferior antes de cada salto de página es la "copia" de la regla inferior de la tabla de forma predeterminada.

También intenté usar solo números de fila en lugar de Y y Z, sin diferencias en el resultado.

¿Quizás me he perdido algo en el manual? Todavía no he encontrado un problema similar publicado en línea.

EDITAR: Probé lo que propuso @Celdor. El problema al definir la última fila como un pie es que se repite en cada página y no imprime una \hline completa.

La repetición de la misma línea en el último MWE puede ser fuente de confusión, por lo que actualicé el MWE con números de fila, reduje los números de columna y mostré el uso de un pie de fila fantasma (de color rosa) sin borde.3.

El resultado deseado es: última fila antes del salto de página con línea h completa, última fila de la tabla, media línea h3

\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}

salida MWE actualizada a la izquierda, derecha: salida esperada

Quizás no sea posible utilizar el paquete tal como está en este caso. Excepto evitar que la tabla abarque varias páginas, ¿podría la redefinición del estilo de la última fila con los comandos makeatletter/if/else/makeatother algo que considerar?

Tales como:
> si hay salto de página, entonces línea h completa (o estilo definido por el usuario para esta línea)
> de lo contrario use el estilo de línea definido por el usuario

Respuesta1

Me gustaría publicar una solución alternativa basada en una sugerencia del responsable del paquete (¡gracias a lvjr!). Básicamente, puede crear una plantilla personalizada que agregue un \hrulepie de mesa en todas las páginas excepto en la última. El siguiente ejemplo probablemente podría ajustarse para que la regla no se dibuje dos veces para las dos columnas de la izquierda:

\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}

Página 1 página 2

información relacionada