longtabu con varias columnas y varias filas

longtabu con varias columnas y varias filas

Utilicé el código propuesto por @Zarko. Hasta ahora, funciona excepto por las filas múltiples, que parecen caerse del marco de la página como se ilustra en la captura de pantalla. Alguien tiene una idea?

\documentclass[12pt]{article}
\usepackage[onehalfspacing]{setspace}
\usepackage[american]{babel}
\usepackage{booktabs, multirow, longtable, tabu}
\usepackage{siunitx}

\usepackage{color}
\definecolor{gray}{rgb}{0.8,0.8,0.8}
\usepackage{colortbl}    


\begin{document}

\begin{longtabu} to \textwidth { X[1, l] X[1, l] 
                           *{6}{S[table-format=2.3]}
                            }
\toprule
\toprule
& & \multicolumn{3}{c}{\textbf{def1}} & \multicolumn{3}{c}{\textbf{def2}} \\
\cmidrule(lr){3-5}\cmidrule(lr){6-8}
& & {contrast} & {t} & {p} & {contrast} & {t} & {p} \\ 
\endfirsthead
\toprule
& & \multicolumn{3}{c}{\textbf{def1}} & \multicolumn{3}{c}{\textbf{def2}} \\
& & contrast & t & p & contrast & t & p \\
\toprule
\endhead
\bottomrule
\multicolumn{8}{r}{continued on the next page} \\
\endfoot
\bottomrule
\bottomrule
\endlastfoot

\toprule
\multicolumn{8}{c}{\textbf{group1}} \\
\toprule
\multirow{6}{*}{\textbf{design1}}  
& pos1 & 15.05 & 1.06 & 0.145 & -3.41 & -0.28 & 0.610 \\
& pos2 & 9.20 & 0.65 & 0.258 & -4.02 & -0.32 & 0.627 \\
& pos3 & 32.92 & 2.30 & \cellcolor{gray}0.011 & 4.87 & 0.40 & 0.344 \\
& pos4 & 6.46 & 0.69 & 0.247 & 3.94 & 0.45 & 0.327 \\
& pos5 & 10.99 & 0.87 & 0.191 & 0.41 & 0.03 & 0.486 \\
& pos6 & 36.70 & 2.20 & \cellcolor{gray}0.014 & 30.20 & 1.94 & \cellcolor{gray}0.026 \\
\midrule
\multirow{6}{*}{\textbf{design2}}
& pos1 & 6.51 & 0.87 & 0.192 & -2.79 & -0.41 & 0.661 \\
& pos2 & 1.91 & 0.29 & 0.385 & -3.21 & -0.54 & 0.706 \\
& pos3 & 16.49 & 2.52 & \cellcolor{gray}0.006 & 4.21 & 0.73 & 0.233 \\
& pos4 & 4.42 & 0.96 & 0.168 & 1.15 & 0.28 & 0.391 \\
& pos5 & 0.13 & 0.02 & 0.491 & -0.26 & -0.05 & 0.521 \\
& pos6 & 11.73 & 1.63 & \cellcolor{gray}0.052 & 12.18 & 1.88 & \cellcolor{gray}0.031 \\
\midrule
\multirow{6}{*}{\textbf{design3}}
& pos1 & 17.02 & 1.18 & 0.119 & -5.75 & -0.46 & 0.678 \\
& pos2 & 11.08 & 0.77 & 0.220 & -3.85 & -0.30 & 0.618 \\
& pos3 & 35.82 & 2.41 & \cellcolor{gray}0.008 & 6.00 & 0.48 & 0.316 \\
& pos4 & 9.59 & 0.96 & 0.170 & 1.78 & 0.19 & 0.423 \\
& pos5 & 9.25 & 0.70 & 0.243 & 0.86 & 0.07 & 0.472 \\
& pos6 & 34.91 & 1.99 & \cellcolor{gray}0.024 & 32.28 & 2.04 & \cellcolor{gray}0.021 \\
\toprule
\multicolumn{8}{c}{\textbf{group2}} \\
\toprule
\multirow{6}{*}{\textbf{design1}}
& pos1 & 16.98 & 1.07 & 0.142 & -10.16 & -0.70 & 0.759 \\
& pos2 & 18.47 & 1.10 & 0.136 & 2.77 & 0.18 & 0.429 \\
& pos3 & 15.28 & 1.23 & 0.110 & 16.18 & 1.41 & 0.079 \\
& pos4 & 21.38 & 1.92 & \cellcolor{gray}0.027 & -0.18 & -0.02 & 0.507 \\
& pos5 & 30.56 & 2.54 & \cellcolor{gray}0.006 & 16.49 & 1.50 & 0.067 \\
& pos6 & 29.32 & 3.40 & \cellcolor{gray}0.000 & -7.31 & -0.98 & 0.836 \\
\midrule
\multirow{6}{*}{\textbf{design2}}
& pos1 & 5.45 & 0.71 & 0.239 & -3.97 & -0.56 & 0.712 \\
& pos2 & 9.89 & 1.48 & 0.070 & -0.84 & -0.14 & 0.554 \\
& pos3 & 7.32 & 1.38 & 0.084 & 4.53 & 0.93 & 0.176 \\
& pos4 & 10.15 & 2.04 & \cellcolor{gray}0.021 & -0.86 & -0.19 & 0.575 \\
& pos5 & 11.09 & 2.20 & \cellcolor{gray}0.014 & 3.13 & 0.67 & 0.250 \\
& pos6 & 9.31 & 1.88 & \cellcolor{gray}0.030 & -3.42 & -0.75 & 0.774 \\
\midrule
\multirow{6}{*}{\textbf{design3}}
& pos1 & 16.54 & 1.06 & 0.145 & -7.81 & -0.55 & 0.709 \\
& pos2 & 11.86 & 0.72 & 0.236 & -6.58 & -0.43 & 0.667 \\
& pos3 & 15.75 & 1.29 & 0.099 & 14.89 & 1.32 & 0.093 \\
& pos4 & 25.87 & 2.36 & \cellcolor{gray}0.009 & -1.19 & -0.12 & 0.548 \\
& pos5 & 30.73 & 2.59 & \cellcolor{gray}0.005 & 14.17 & 1.31 & 0.096 \\
& pos6 & 31.61 & 3.66 & \cellcolor{gray}0.000 & -6.28 & -0.85 & 0.802 \\
\end{longtabu}

\end{document}

ingrese la descripción de la imagen aquí

Respuesta1

con el uso siunitxdel paquete:

ingrese la descripción de la imagen aquí

\documentclass[12pt]{article}
\usepackage[american]{babel}
\usepackage{siunitx} % <-- added
\usepackage{booktabs, multirow, longtable, tabu}
\usepackage[onehalfspacing]{setspace}


%\usepackage{showframe}
\begin{document}

\begin{longtabu} to \textwidth { X[1.5, l] X[1, l] 
                               *{6}{S[table-format=2.3]} % <-- changed
                                }
\toprule
    & & \multicolumn{3}{c}{\textbf{def1}}   & \multicolumn{3}{c}{\textbf{def2}} \\
    \cmidrule(lr){3-5}\cmidrule(lr){6-8}
    & & {contrast} & {t} & {p}              & {contrast} & {t} & {p}            \\ 
\midrule
\endfirsthead
\toprule
    & & \multicolumn{3}{c}{\textbf{def1}}   & \multicolumn{3}{c}{\textbf{def2}} \\
    \cmidrule(lr){3-5}\cmidrule(lr){6-8}
    & & contrast & t & p                    & contrast & t & p \\
\midrule
\endhead
    \bottomrule
\multicolumn{8}{r}{continued on the next page} \\
\endfoot
\bottomrule
\endlastfoot
% end of tabu preamble
\multicolumn{8}{c}{\textbf{group 1}} \\
\midrule
\multirow{6}{*}{\textbf{design1}}  
    & pos1  & 15.05 & 1.06 & 0.145 & -3.41 & -0.28 & 0.610 \\
    & pos2  & 9.20  & 0.65 & 0.258 & -4.02 & -0.32 & 0.627 \\
    & pos3  & 32.92 & 2.30 & 0.011 &  4.87 &  0.40 & 0.344 \\
    & pos4  & 6.46  & 0.69 & 0.247 &  3.94 &  0.45 & 0.327 \\
    & pos5  & 10.99 & 0.87 & 0.191 &  0.41 &  0.03 & 0.486 \\
    & pos6  & 36.70 & 2.20 & 0.014 & 30.20 &  1.94 & 0.026 \\
%\midrule
\end{longtabu}

\end{document}

También cambié longtabu"premble": eliminé reglas duplicadas. El resultado mostrado se obtiene después de la segunda ejecución de la compilación MWE.

Editar: Con mi MWE, ahora completo con la tabla completa, obtengo el resultado deseado y esperado:

ingrese la descripción de la imagen aquí

¡Por favor, observe las diferencias entre el MWE propuesto a continuación y su código en cuestión! En mi MWE puse una gran cantidad de esfuerzo necesario para limpiar su código. En él se eliminan todas \multicolumnslas definiciones innecesarias y rediseñadas para encabezados y pies de página, los cambios pueden alterar las reglas utilizadas, etc.:

\documentclass[12pt]{article}
\usepackage[american]{babel}
\usepackage{siunitx}
\usepackage{booktabs, multirow, longtable, tabu}
\usepackage[onehalfspacing]{setspace}

%---------------------------------------------------------------%
\usepackage{showframe}% to show page layout
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\begin{document}

\begin{longtabu} to \textwidth { X[1.5, l] X[1, l]
                               *{6}{S[table-format=2.3]}
                                }
\toprule
    & & \multicolumn{3}{c}{\textbf{def1}}   & \multicolumn{3}{c}{\textbf{def2}} \\
    \cmidrule(lr){3-5}\cmidrule(lr){6-8}
    & & {contrast} & {t} & {p}              & {contrast} & {t} & {p}            \\
\midrule
\endfirsthead
\toprule
    & & \multicolumn{3}{c}{\textbf{def1}}   & \multicolumn{3}{c}{\textbf{def2}} \\
    \cmidrule(lr){3-5}\cmidrule(lr){6-8}
    & & contrast & t & p                    & contrast & t & p \\
\midrule
\endhead
    \bottomrule
\multicolumn{8}{r}{continued on the next page} \\
\endfoot
\bottomrule
\endlastfoot
% end of tabu preamble
\multicolumn{8}{c}{\textbf{group 1}} \\
\midrule
\multirow{6}{*}{\textbf{design1}}
    & pos1  & 15.05 & 1.06 & 0.145 & -3.41 & -0.28 & 0.610 \\
    & pos2  & 9.20  & 0.65 & 0.258 & -4.02 & -0.32 & 0.627 \\
    & pos3  & 32.92 & 2.30 & 0.011 &  4.87 &  0.40 & 0.344 \\
    & pos4  & 6.46  & 0.69 & 0.247 &  3.94 &  0.45 & 0.327 \\
    & pos5  & 10.99 & 0.87 & 0.191 &  0.41 &  0.03 & 0.486 \\
    & pos6  & 36.70 & 2.20 & 0.014 & 30.20 &  1.94 & 0.026 \\
\midrule
\multirow{6}{*}{\textbf{design2}}  
    & pos1  & 6.51  & 0.87 & 0.192 & -2.79 & -0.41 & 0.661 \\
    & pos2  & 1.91  & 0.29 & 0.385 & -3.21 & -0.54 & 0.706 \\
    & pos3  & 16.49 & 2.52 & 0.006 & 4.21  &  0.73 & 0.233 \\
    & pos4  & 4.42  & 0.96 & 0.168 & 1.15  &  0.28 & 0.391 \\
    & pos5  & 0.13  & 0.02 & 0.491 & -0.26 & -0.05 & 0.521 \\
    & pos6  & 11.73 & 1.63 & 0.052 & 12.18 &  1.88 & 0.031 \\
\midrule
\multirow{6}{*}{\textbf{design3}}  
    & pos1  & 17.02 & 1.18 & 0.119 & -5.75 & -0.46 & 0.678 \\
    & pos2  & 11.08 & 0.77 & 0.220 & -3.85 & -0.30 & 0.618 \\
    & pos3  & 35.82 & 2.41 & 0.008 &  6.00 &  0.48 & 0.316 \\
    & pos4  & 9.59  & 0.96 & 0.170 &  1.78 &  0.19 & 0.423 \\
    & pos5  & 9.25  & 0.70 & 0.243 &  0.86 &  0.07 & 0.472 \\
    & pos6  & 34.91 & 1.99 & 0.024 & 32.28 &  2.04 & 0.021 \\
\midrule
\multicolumn{8}{c}{\textbf{group2}} \\
\midrule
\multirow{6}{*}{\textbf{design1}}  
    & pos1  & 16.98 & 1.07 & 0.142 & -10.16 & -0.70 & 0.759 \\
    & pos2  & 18.47 & 1.10 & 0.136 &  2.77  &  0.18 & 0.429 \\
    & pos3  & 15.28 & 1.23 & 0.110 & 16.18  &  1.41 & 0.079 \\
    & pos4  & 21.38 & 1.92 & 0.027 & -0.18  & -0.02 & 0.507 \\
    & pos5  & 30.56 & 2.54 & 0.006 & 16.49  &  1.50 & 0.067 \\
    & pos6  & 29.32 & 3.40 & 0.000 & -7.31  & -0.98 & 0.836 \\
\midrule
\multirow{6}{*}{\textbf{design2}}  
    & pos1  & 5.45  & 0.71 & 0.239 & -3.97 & -0.56 & 0.712 \\
    & pos2  & 9.89  & 1.48 & 0.070 & -0.84 & -0.14 & 0.554 \\
    & pos3  & 7.32  & 1.38 & 0.084 &  4.53 &  0.93 & 0.176 \\
    & pos4  & 10.15 & 2.04 & 0.021 & -0.86 & -0.19 & 0.575 \\
    & pos5  & 11.09 & 2.20 & 0.014 &  3.13 &  0.67 & 0.250 \\
    & pos6  & 9.31  & 1.88 & 0.030 & -3.42 & -0.75 & 0.774 \\
\midrule
\multirow{6}{*}{\textbf{design3}}  
    & pos1  & 16.54 & 1.06 & 0.145 & -7.81 & -0.55 & 0.709 \\
    & pos2  & 11.86 & 0.72 & 0.236 & -6.58 & -0.43 & 0.667 \\
    & pos3  & 15.75 & 1.29 & 0.099 & 14.89 &  1.32 & 0.093 \\
    & pos4  & 25.87 & 2.36 & 0.009 & -1.19 & -0.12 & 0.548 \\
    & pos5  & 30.73 & 2.59 & 0.005 & 14.17 &  1.31 & 0.096 \\
    &¸pos6  & 31.61 & 3.66 & 0.000 & -6.28 & -0.85 & 0.802 \\
\end{longtabu}

\end{document}

Nota: longtable(también longtabu) intente dividir la tabla entre páginas al comenzar nuevas filas. En caso de utilizar multirowceldas,longtable considérelas como una fila, para que no se puedan dividir entre páginas (sin algún paquete de "magia negra" del autor, consultepregunta: ¿Es posible dividir una celda de varias filas en páginas cuando se utiliza tabla larga?).

Dado que en mis pruebas de su MWE en cuestión no se reprodujo el problema informado, solo puedo concluir que tiene algo de "magia negra" en su computadora. Un intento desesperado puede ser actualizar su instalación de LeTeX o probar su MWE en alguna otra computadora o con algún otro nombre.

Respuesta2

Por ejemplo, \lipsum[3]antes de la mesa, su problema sería reproducible.

Puede evitar saltos de página después de líneas tabulares usando \\*. En el siguiente ejemplo, los saltos de página solo se permiten en las reglas.

(Con respecto a un comentario en suPublicación cruzada en golatex.de: Rodéelo \cellcolor{gray}entre llaves para alinear los números en estas celdas también).

\documentclass[12pt]{article}
\usepackage[onehalfspacing]{setspace}
\usepackage[american]{babel}
\usepackage{booktabs, multirow, longtable, tabu}
\usepackage{siunitx}
\usepackage[table]{xcolor}
\definecolor{gray}{rgb}{0.8,0.8,0.8}
\usepackage{lipsum}% dummy text
\begin{document}
\lipsum[3]

\begin{longtabu} to \textwidth {X[1.5, l] X[1, l] *{6}{S[table-format=2.3]}}
\toprule
& & \multicolumn{3}{c}{\textbf{def1}} & \multicolumn{3}{c}{\textbf{def2}} \\
\cmidrule(lr){3-5}\cmidrule(lr){6-8}
& & {contrast} & {t} & {p} & {contrast} & {t} & {p} \\ 
\endfirsthead
\toprule
& & \multicolumn{3}{c}{\textbf{def1}} & \multicolumn{3}{c}{\textbf{def2}} \\
& & contrast & t & p & contrast & t & p \\
\midrule[\heavyrulewidth]
\endhead
\multicolumn{8}{r}{continued on the next page} \\
\endfoot
\bottomrule
\endlastfoot

\midrule[\heavyrulewidth]
\multicolumn{8}{c}{\textbf{group1}} \\*
\midrule
\multirow{6}{*}{\textbf{design1}}
& pos1 & 15.05 & 1.06 & 0.145 & -3.41 & -0.28 & 0.610 \\*
& pos2 & 9.20 & 0.65 & 0.258 & -4.02 & -0.32 & 0.627 \\*
& pos3 & 32.92 & 2.30 & {\cellcolor{gray}}0.011 & 4.87 & 0.40 & 0.344 \\*
& pos4 & 6.46 & 0.69 & 0.247 & 3.94 & 0.45 & 0.327 \\*
& pos5 & 10.99 & 0.87 & 0.191 & 0.41 & 0.03 & 0.486 \\*
& pos6 & 36.70 & 2.20 & {\cellcolor{gray}}0.014 & 30.20 & 1.94 & {\cellcolor{gray}}0.026 \\*
\midrule
\multirow{6}{*}{\textbf{design2}}
& pos1 & 6.51 & 0.87 & 0.192 & -2.79 & -0.41 & 0.661 \\*
& pos2 & 1.91 & 0.29 & 0.385 & -3.21 & -0.54 & 0.706 \\*
& pos3 & 16.49 & 2.52 & {\cellcolor{gray}}0.006 & 4.21 & 0.73 & 0.233 \\*
& pos4 & 4.42 & 0.96 & 0.168 & 1.15 & 0.28 & 0.391 \\*
& pos5 & 0.13 & 0.02 & 0.491 & -0.26 & -0.05 & 0.521 \\*
& pos6 & 11.73 & 1.63 & {\cellcolor{gray}}0.052 & 12.18 & 1.88 & {\cellcolor{gray}}0.031 \\*
\midrule
\multirow{6}{*}{\textbf{design3}}
& pos1 & 17.02 & 1.18 & 0.119 & -5.75 & -0.46 & 0.678 \\*
& pos2 & 11.08 & 0.77 & 0.220 & -3.85 & -0.30 & 0.618 \\*% <- remove this * to reproduce the problem
& pos3 & 35.82 & 2.41 & {\cellcolor{gray}}0.008 & 6.00 & 0.48 & 0.316 \\*
& pos4 & 9.59 & 0.96 & 0.170 & 1.78 & 0.19 & 0.423 \\*
& pos5 & 9.25 & 0.70 & 0.243 & 0.86 & 0.07 & 0.472 \\*
& pos6 & 34.91 & 1.99 & {\cellcolor{gray}}0.024 & 32.28 & 2.04 & {\cellcolor{gray}}0.021 \\*
\midrule[\heavyrulewidth]
\multicolumn{8}{c}{\textbf{group2}} \\*
\midrule[\heavyrulewidth]
\multirow{6}{*}{\textbf{design1}}
& pos1 & 16.98 & 1.07 & 0.142 & -10.16 & -0.70 & 0.759 \\*
& pos2 & 18.47 & 1.10 & 0.136 & 2.77 & 0.18 & 0.429 \\*
& pos3 & 15.28 & 1.23 & 0.110 & 16.18 & 1.41 & 0.079 \\*
& pos4 & 21.38 & 1.92 & {\cellcolor{gray}}0.027 & -0.18 & -0.02 & 0.507 \\*
& pos5 & 30.56 & 2.54 & {\cellcolor{gray}}0.006 & 16.49 & 1.50 & 0.067 \\*
& pos6 & 29.32 & 3.40 & {\cellcolor{gray}}0.000 & -7.31 & -0.98 & 0.836 \\*
\midrule
\multirow{6}{*}{\textbf{design2}}
& pos1 & 5.45 & 0.71 & 0.239 & -3.97 & -0.56 & 0.712 \\*
& pos2 & 9.89 & 1.48 & 0.070 & -0.84 & -0.14 & 0.554 \\*
& pos3 & 7.32 & 1.38 & 0.084 & 4.53 & 0.93 & 0.176 \\*
& pos4 & 10.15 & 2.04 & {\cellcolor{gray}}0.021 & -0.86 & -0.19 & 0.575 \\*
& pos5 & 11.09 & 2.20 & {\cellcolor{gray}}0.014 & 3.13 & 0.67 & 0.250 \\*
& pos6 & 9.31 & 1.88 & {\cellcolor{gray}}0.030 & -3.42 & -0.75 & 0.774 \\*
\midrule
\multirow{6}{*}{\textbf{design3}}
& pos1 & 16.54 & 1.06 & 0.145 & -7.81 & -0.55 & 0.709 \\*
& pos2 & 11.86 & 0.72 & 0.236 & -6.58 & -0.43 & 0.667 \\*
& pos3 & 15.75 & 1.29 & 0.099 & 14.89 & 1.32 & 0.093 \\*
& pos4 & 25.87 & 2.36 & {\cellcolor{gray}}0.009 & -1.19 & -0.12 & 0.548 \\*
& pos5 & 30.73 & 2.59 & {\cellcolor{gray}}0.005 & 14.17 & 1.31 & 0.096 \\*
& pos6 & 31.61 & 3.66 & {\cellcolor{gray}}0.000 & -6.28 & -0.85 & 0.802 \\*
\end{longtabu}
\end{document}

ingrese la descripción de la imagen aquí

Tenga en cuenta que podría haber un salto de página después de la regla siguiente de la línea "grupo", como en la siguiente imagen:

ingrese la descripción de la imagen aquí

En ese caso tienes que agregar un salto de página manualmente:

\midrule[\heavyrulewidth]\pagebreak
\multicolumn{8}{c}{\textbf{group2}} \\*
\midrule[\heavyrulewidth]

información relacionada