我正在尝试找到一种方法来确保长表在跨越多页时不会中断。
我尝试使用多行长表,但页面会拆分表格。拆分的意思是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
如果还有其他方法,请随时在答案中发布。