具有多列和多行的 longtabu

具有多列和多行的 longtabu

我使用了@Zarko 提出的代码。到目前为止,除了多行之外,它都可以正常工作,多行似乎超出了页面框架,如屏幕截图所示。有人有想法吗?

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

在此处输入图片描述

答案1

使用siunitx包:

在此处输入图片描述

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

我还更改了longtabu“序言”——删除了重复的规则。显示的结果是在第二次运行 MWE 编译后获得的。

编辑: 通过我的 MWE,现在完成了整个表格,我获得了期望和预期的结果:

在此处输入图片描述

请注意下面建议的 MWE 和您有问题的代码之间的区别!在我的 MWE 中,我投入了大量精力来清理您的代码。在其中删除了所有不必要的内容\multicolumns,重新设计了页眉和页脚的定义,更改了可能错误使用的规则等:

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

笔记: longtable(以及longtabu)尝试在开始新行时将表格拆分为页面。如果使用multirow单元格,longtable请将它们视为一行,因此无法在页面之间拆分(如果没有软件包作者的“黑魔法”,请参阅问题:使用 longtable 时,是否可以将多行单元格拆分到多个页面)。

由于我对您有问题的 MWE 的测试没有重现报告的问题,我只能得出结论,您的计算机中存在一些“黑魔法”。绝望的尝试可能是升级您的 LeTeX 安装或在其他计算机上或使用其他名称测试您的 MWE。

答案2

例如,\lipsum[3]在表格之前,您的问题将会重现。

您可以使用 避免在表格行后出现分页符\\*。以下示例中,分页符仅允许在规则处出现。

(关于您在 golatex.de 上交叉发布\cellcolor{gray}用大括号括起来以使这些单元格中的数字也对齐。)

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

在此处输入图片描述

请注意,“组”行下面的规则后可能会有一个分页符,如下图所示:

在此处输入图片描述

在这种情况下,您必须手动添加分页符:

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

相关内容