“longtable”和后续标题之间的垂直空间不一致

“longtable”和后续标题之间的垂直空间不一致

在 MWE 中,\section(TWO)标题前的垂直空间比 前更大\section(THREE)。空间大小似乎取决于 前是否有一段文字longtable

有没有办法解决这个问题,而不用在vspace必要的地方手动添加一些?我希望两个空格都与之前的一个匹配\section(TWO)

\documentclass{article}
\usepackage{longtable}

\LTpre=\smallskipamount
\LTpost=\smallskipamount
\LTleft=0pt % irrelevant, except it makes it easier to see the different spacing

\begin{document}

\section{ONE}

some text

\begin{longtable}{l}
tabular data with some text before it
\end{longtable}

\section{TWO}

\begin{longtable}{l}
tabular data with nothing before it
\end{longtable}

\section{THREE}

\end{document}

说明性 MWE [由 cfr 添加]:

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

\section{ONE}

some text

\begin{longtable}{l}
tabular data with some text before it
\end{longtable}

\hrule

\section{TWO}

\begin{longtable}{l}
tabular data with nothing before it
\end{longtable}

\hrule

\section{THREE}

\end{document}

部分前的空间被挤压

答案1

由于外层实际上没有排版任何段落,因此当\section{THREE}找到时,条件\if@nobreak仍然设置为真。

条件由分段命令设置为 true,然后在下一段开始时设置为 false,以确保标题和文本之间不会出现分页符。此外,如果在条件设置为 false 时发现新的章节标题(通常级别较低),则两个连续标题之间的间距会缩小:这就是这里发生的情况,尽管中间有表格。

您可以在结束时手动设置longtable

\documentclass{article}
\usepackage{longtable}

\LTpre=\smallskipamount
\LTpost=\smallskipamount
\LTleft=0pt % irrelevant, except it makes it easier to see the different spacing

\begin{document}

\section{ONE}

some text

\begin{longtable}{l}
tabular data with some text before it
\end{longtable}


\section{TWO}

\begin{longtable}{l}
tabular data with nothing before it
\end{longtable}\csname @nobreakfalse\endcsname

\section{THREE}

\end{document}

在此处输入图片描述

我测试过并且longtable通常会跨页中断。

相关内容