Koma-script 在 longtable 之后不执行标题跳过

Koma-script 在 longtable 之后不执行标题跳过

我很困惑,为什么在某些情况下,如果航向在之后,Koma-script 不会在航向之前遵循垂直跳过longtable

请考虑以下示例:

\documentclass[12pt, paper = B5]{scrbook}

\usepackage{fontspec}
\usepackage{longtable}
\usepackage{lipsum}

\setmainfont{EB Garamond}
\setsansfont{Libertinus Sans}

\begin{document}

\LTpre  = 0pt
\LTpost = 0pt

\chapter{Nam dui ligula}

\section{Curabitur auctor semper nulla}

\begin{longtable}{ll}
    Lorem ipsum dolor sit amet & consectetuer adipiscing elit\\
    Ut purus elit, vestibulum ut & placerat ac, adipiscing vitae, felis.\\
\end{longtable}

\subsection{Morbi auctor lorem}

\lipsum[3]

\end{document}

生成的小节标题将位于表格之后:

在此处输入图片描述

现在,如果我删除chaptersection,突然跳过就被接受了:

在此处输入图片描述

逻辑在哪里?如何强制 Koma-script 始终执行跳过?

答案1

这与 koma-script 无关,您会在书中看到相同的内容。

问题是你有仅有的\section和之间的长表\subsection不会触发\if@nobreak条件的改变。

\documentclass[12pt, paper = B5]{scrbook}

\usepackage{fontspec}
\usepackage{longtable}
\usepackage{lipsum}

\setmainfont{EB Garamond}
\setsansfont{Libertinus Sans}

\begin{document}

\LTpre  = 0pt
\LTpost = 0pt

\chapter{Nam dui ligula}

\section{Curabitur auctor semper nulla}

\begin{longtable}{ll}
    Lorem ipsum dolor sit amet & consectetuer adipiscing elit\\
    Ut purus elit, vestibulum ut & placerat ac, adipiscing vitae, felis.\\
\end{longtable}

\makeatletter \@nobreakfalse \makeatother %added
\subsection{Morbi auctor lorem}

\lipsum[3]

\end{document}

在此处输入图片描述

相关内容