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