我如何才能防止环境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}