Verbesserte automatische Bestimmung des Seitenumbruchs vor dem Abschnitt

Verbesserte automatische Bestimmung des Seitenumbruchs vor dem Abschnitt

Ich möchte, dass ein bestimmtes Abschnittsmakro automatisch einen Seitenumbruch direkt darüber einfügt, genau dann, wenn es zu nahe am unteren Ende einer Seite platziert wird. „Zu nahe“ bedeutet hier, dass nicht genügend Platz vorhanden ist, um den ersten Eintrag des Abschnitts auf derselben Seite zu setzen.

Ich verwende eine der beiden folgenden Umgebungen, um meine Sektionierung zu handhaben, von der„Mittellange professionelle“ Lebensläuferesume.cls:

% Defines the rSection environment for the large sections within the CV
\newenvironment{rSection}[1]{ % 1 input argument - section name
  \sectionskip
  \MakeUppercase{\bf #1} % Section title
  \sectionlineskip
  \hrule % Horizontal line
  \begin{list}{}{ % List for each individual item in the section
    \setlength{\leftmargin}{1.5em} % Margin within the section
  }
  \item[]
}{
  \end{list}
}

\newenvironment{rSection*}[2]{ % 2 input arguments - section name and parenthetical
  \sectionskip
  \MakeUppercase{\bf #1} % Section title
  {\bf (#2)} % parenthetical
  \sectionlineskip
  \hrule % Horizontal line
  \begin{list}{}{ % List for each individual item in the section
    \setlength{\leftmargin}{1.5em} % Margin within the section
  }
  \item[]
}{
  \end{list}
}

Ich möchte diese ändern, um das Auftreten des unten dargestellten Problems zu verhindern.ohnekeine Verwendung von trivialen \pagebreak[N]nor- \enlargethispage{k}Befehlen, die für die meisten meiner Anwendungsfälle nicht ausreichen. Ich möchte meinen Code auch nicht auf neuere Versionen umstellen müssen.ModernCV–Typklasse.

Ein Beispiel für das beschriebene Seitenumbruchproblem.

Bitte beachten Sie, dass im obigen Bild die kleine graue Linie den aktuellen Seitenumbruch kennzeichnet. In diesem Beispiel sollte der Abschnitt mit dem Titel „Internationale Zusammenarbeitsaktivitäten“ automatisch auf die nächste Seite verschoben werden, die seinen ersten Eintrag enthält ( $C_{1}$).

(NB: Ich hoffe, dass ich kein MWE bereitstellen muss. Ich werde eines bereitstellen, wenn sich nach ein paar Tagen noch niemand dazu entschließt, Vorschläge zu machen.)

Antwort1

Dank anDavid Carlislesausgezeichneter Vorschlag zur Verwendungneedspace(was mir bisher nicht bewusst war), ich habe dies (für rSection) gelöst.

Der folgende Patch reicht aus:

\patchcmd{\rSection}{\sectionskip}{\sectionskip \needspace{6em}}{}{}

verwandte Informationen