Улучшено автоматическое определение разрыва страницы предварительного раздела

Улучшено автоматическое определение разрыва страницы предварительного раздела

Мне бы хотелось, чтобы макрос определенного раздела автоматически разворачивал разрыв страницы прямо над ним, если и только если он будет расположен слишком близко к низу страницы. «Слишком близко» здесь означает отсутствие достаточного места для набора первой записи раздела на той же странице.

Я использую одну из двух сред, представленных ниже, для обработки секционирования:Резюме "Профессионала средней длины"resume.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}
}

Я хотел бы внести поправки, чтобы предотвратить возникновение описанной ниже проблемы.безлюбое использование тривиальных команд \pagebreak[N]nor \enlargethispage{k}, которые недостаточны для большинства моих вариантов использования. Я также не хочу рефакторить свой код на более новыеModernCV–тип класса.

Пример описанной проблемы разрыва страницы.

Обратите внимание, что на изображении выше маленькая серая линия обозначает текущий разрыв страницы. В этом примере раздел под названием «Международное сотрудничество» должен быть автоматически перемещен на следующую страницу, содержащую его первую запись ( $C_{1}$).

(Примечание: я надеюсь избежать необходимости предоставлять MWE. Я предоставлю его, если никто не решит внести какие-либо предложения в течение нескольких дней.)

решение1

БлагодаряДэвид Карлайлотличное предложение для использованияneedspace(о чем я раньше не знал), я решил эту проблему (для rSection).

Достаточно следующего патча:

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

Связанный контент