防止多行长表中断

防止多行长表中断

我如何才能防止环境multirow中断longtable,以便不会在错误的位置中断,如下面的代码所示。

\documentclass{article}
\usepackage{multirow,tabularx,ltxtable,filecontents}
\begin{document}
AAAA
\vspace{49em}

\begin{filecontents}{table.tex}
\begin{longtable}{!{\vrule width 1.2pt}c|c|>{\centering\arraybackslash}X!{\vrule width 1.2pt}}
\noalign{\hrule height 1.2pt}
\multirow{2}{*}{A} & B & C\\ \cline{2-3}% I shouldn't break here
 & B & C\\ \hline % I can break here
\multirow{2}{*}{A} & BB & C\\ \cline{2-3}% I shouldn't break here
 & B & C\\
\noalign{\hrule height 1.2pt}
\end{longtable}
\end{filecontents}

\LTXtable{\textwidth}{table.tex}
\end{document}

还有一件事,我怎样才能使处于断裂位置的 hline 变成这样:

\noalign{\hrule height 1.2pt}

答案1

您可以使用和*形式的组合来抑制分页,但不幸的是(因为没有垂直粘连来允许表格短暂分页)您还需要鼓励它在多行之前分页。\\\nopagebreak\pagebreak

您可以将规则放在表脚中,以便每次分页时重复该规则(您可能还想添加一些负空间,以便它完全重叠表体中的任何规则)

也可以看看

使用 cline 和 nopagebreak 的 longtable 多行问题

在此处输入图片描述

\documentclass{article}
\usepackage{multirow,tabularx,ltxtable,filecontents}
\begin{document}
AAAA
\vspace{49em}

\begin{filecontents}{table.tex}
\begin{longtable}{!{\vrule width 1.2pt}c|c|>{\centering\arraybackslash}X!{\vrule width 1.2pt}}
\noalign{\hrule height 1.2pt}
\endfoot
\noalign{\hrule height 1.2pt}
\multirow{2}{*}{A} & B & C\\* \cline{2-3}% I shouldn't break here
 & B & C\\ \hline % I can break here
\pagebreak
\multirow{2}{*}{A} & BB & C\\* \cline{2-3}% I shouldn't break here
\nopagebreak
 & B & C\\
\end{longtable}
\end{filecontents}

\LTXtable{\textwidth}{table.tex}
\end{document}

相关内容