如何确保表格跨多页时不会断裂

如何确保表格跨多页时不会断裂

我正在尝试找到一种方法来确保长表在跨越多页时不会中断。

我尝试使用多行长表,但页面会拆分表格。拆分的意思是row2第一页末尾的表格会完全移到下一页或移到上一页。有没有办法在这里合并这个?

\usepackage{longtable}

\begin {longtable}{|p{1.0in}|p{1.0in}|m{1.10in}|m{1.25in}|}
\hline
col 1
& col 2
& col 3
& col 4
\\\hline
\multirow{4}{*}{row 1}
& foo1
& bar1
& yikes1
\\*\cline{2-4}
& foo1
& bar1
& yikes1
\\\cline{2-4}
& foo1
& bar1
& yikes1
\\*\cline{2-4}
& foo1
& bar1
& yikes1
\\*\cline{2-4}
\\\hline
\multirow{4}{*}{row 2}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
\\\hline
\multirow{4}{*}{row 2}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
\\\hline
\multirow{4}{*}{row 2}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
\\\hline
\multirow{4}{*}{row 2}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
\\\hline
\multirow{4}{*}{row 2}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
\\\hline
\multirow{4}{*}{row 2}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
\\\hline
\multirow{4}{*}{row 2}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
& foo2
& bar2
& yikes2
\\*\cline{2-4}
\\\hline
\end {longtable}

我得到了如所附截图所示的结果

在此处输入图片描述

在此处输入图片描述

答案1

虽然这不能直接回答您的问题,但这里还是有一个建议/需要考虑的事情:我会避免\multirow使用与的组合longtable,因为它不仅可能导致多行单元格被分成两页,而且还可能导致多行文本与页脚/页码重叠(例如,参见此处:长表剪切与脚注重叠的文本)因此,我建议对表格进行以下重新设计,将原来放在多行中的文本放在多列中,充当表格中的某种子标题。 (另请参阅此答案:https://tex.stackexchange.com/a/565576/134144其中我应用了类似的技术。)使用后,\\*您可以防止在特定行之间出现分页符。 在此处输入图片描述

\documentclass{article}
\usepackage{longtable}
\usepackage{array}
\usepackage{booktabs}
\begin{document}

\null\vspace{9cm}
\begin {longtable}{@{\qquad}p{1.0in}p{1.10in}p{1.25in}}
\toprule
 col 2
& col 3
& col 4
\\
\midrule
\multicolumn{3}{l}{row 1}\\*
 foo1
& bar1 bar1 bar1 bar1
& yikes1 yikes1 yikes1 yikes1 yikes1 yikes1 yikes1
\\*
 foo1
& bar1
& yikes1
\\*
 foo1
& bar1
& yikes1
\\*
 foo1
& bar1
& yikes1
\\
\midrule
\multicolumn{3}{l}{row 2}\\*
 foo1
& bar1 
& yikes1 
\\*
 foo1
& bar1
& yikes1
\\*
 foo1
& bar1
& yikes1
\\*
 foo1
& bar1
& yikes1
\\
\midrule
\multicolumn{3}{l}{row 3}\\*
 foo1
& bar1 
& yikes1 
\\*
 foo1
& bar1
& yikes1
\\*
 foo1
& bar1
& yikes1
\\*
 foo1
& bar1
& yikes1
\\
\midrule
\multicolumn{3}{l}{row 4}\\*
 foo1
& bar1 
& yikes1 
\\*
 foo1
& bar1
& yikes1
\\*
 foo1
& bar1
& yikes1
\\*
 foo1
& bar1
& yikes1
\\
\midrule
\\\hline

\end {longtable}

\end{document}

答案2

我认为可行的解决方案之一是将部分插入到我们想要拆分的表中。

\pagebreak
\hline

如果还有其他方法,请随时在答案中发布。

相关内容