我使用了@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]