From 2e06ec371857076c3926620e49ff01395ea52e5e Mon Sep 17 00:00:00 2001 From: David Date: Wed, 27 Jan 2021 15:33:21 +0100 Subject: [PATCH 1/3] fix orphaned section headers (needs testing). Closes #10. --- CHANGELOG | 1 + manual/moderncv_userguide.tex | 50 +++++++++++++++++++++++++++++++++-- moderncv.cls | 24 +++++++++++++++++ moderncvbodyi.sty | 11 ++++++++ moderncvbodyiii.sty | 13 +++++++++ moderncvbodyiv.sty | 13 +++++++++ moderncvbodyv.sty | 14 ++++++++++ 7 files changed, 124 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 5ea66bf..3c5e7c2 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,5 @@ Release: next +- fix orphaned section headers (needs testing). Probably closes #10. - Systematize colors and make them user adjustable. See documentation for details. this requires the \moderncvcolor to be issued BEFORE \moderncvstyle. - all styles: make the head options 'details' and 'nodetails' available to the user. (previously they were hidden). Olystyle does not respond too well to nodetails. diff --git a/manual/moderncv_userguide.tex b/manual/moderncv_userguide.tex index 1e8f82d..9d8b673 100644 --- a/manual/moderncv_userguide.tex +++ b/manual/moderncv_userguide.tex @@ -88,13 +88,13 @@ % frame=L, emph={cvitem,cventry,cvdoubleentry,cvdoubleitem,moderncvstyle,moderncvcolor,% cvskill,cvskilllegend,cvskillplainlegend,cvskillhead,cvskillentry,nopagenumbers,% - name,address,email,link,social,phone,homepage,extrainfo,photo,quote},% + name,address,email,link,social,phone,homepage,extrainfo,photo,quote,section,subsection,setlength,NewDocumentCommand},% emphstyle={\color{cvblue}},% emph={[2]familydefault,sfdefault,rmdefault,inputenc,moderncv,document,bibliographyitemlabel,% addresssymbol,mobilephonesymbol,fixedphonesymbol,faxphonesymbol,emailsymbol,homepagesymbol,linkedinsocialsymbol,% xingsocialsymbol,twittersocialsymbol,githubsocialsymbol,gitlabsocialsymbol,% stackoverflowsocialsymbol,bitbucketsocialsymbol,skypesocialsymbol,orcidsocialsymbol,researchgatesocialsymbol,% - researcheridsocialsymbol,telegramsocialsymbol,googlescholarsocialsymbol},% + researcheridsocialsymbol,telegramsocialsymbol,googlescholarsocialsymbol,cvstretchability},% emphstyle={[2]\color{cvblue!60!cvgrey}\bfseries}, } @@ -721,6 +721,52 @@ CV, add the following:% \end{center} \end{lstlisting} +\subsubsection{Orphaned sections} +If \latex~ breaks pages just after \code{\\section} or \code{\\subsection} commands, try adjusting +the the stretchability of the page +\begin{lstlisting} + \setlength{\cvstretchability}{}, +\end{lstlisting} +for example +\begin{lstlisting} + \setlength{\cvstretchability}{\baselineskip} % or + % \setlength{\cvstretchability}{100pt}, +\end{lstlisting} +in the document. It tells \latex that it needs approximately \Code{} extra length after +section and subsection commands. + +\paragraph{Experts only:} +Internally a custom needspace command is being used: + +\begin{lstlisting} + \NewDocumentCommand\@cvneedspace{m}{% + \begingroup + \setlength{\dimen@}{#1}% + \vskip\z@\@plus\dimen@ + \penalty \withinstretchpenalty\vskip\z@\@plus -\dimen@ + \vskip\dimen@ + \penalty \poststretchpenalty% + \vskip -\dimen@ + \vskip\z@skip % hide the previous |\vskip| from |\addvspace| + \endgroup + } +\end{lstlisting} +This means that alternatively to setting \code{\\cvstretchability}, penalties for pagebreaks can be influenced by redefining the internal penalties: +\begin{lstlisting} + % must be between -100 and 9999. The higher the less likely a page break will occur. +% This is where the page break should occur, so this number should not bee too high + \renewcommand{\withinstretchpenalty}{<-100...9999>} +% must be between -100 and 9999. The higher the less likely a page break will occur. + \renewcommand{\poststretchpenalty}{<-100...9999>}. +\end{lstlisting} +The defaults are \Code{\\poststretchpenalty = 9999} and \Code{\\withinstretchpenalty = 0}. +The penalties must be between -100 and 9999. The higher the value the less likely a page break will occur. A good explanation of this can be found under +\begin{center} + \url{https://tex.stackexchange.com/questions/348994/understanding-needspace} +\end{center} + + + \section{Implementation details} \label{section:implementationDetails} diff --git a/moderncv.cls b/moderncv.cls index 1dd83a3..94bd254 100644 --- a/moderncv.cls +++ b/moderncv.cls @@ -429,6 +429,30 @@ \newcommand*{\@moderncvstrut}[2]{% \rule[-#1]{0pt}{#2}} +% custom needspace command to avoid orphaned sections +% adapted from the explanations given on +% https://tex.stackexchange.com/questions/348994/understanding-needspace +\@initializelength{\cvstretchability} +% must be between -100 and 9999. The higher the less likely a page break will occur. +% This is where the page break should occur, so this number should not bee too high +\NewDocumentCommand\withinstretchpenalty{}{0} +% must be between -100 and 9999. The higher the less likely a page break will occur. +\NewDocumentCommand\poststretchpenalty{}{9999} +% command intended to use with section definitions to avoid orphaned sections. (Pagebreak bewteen +% \section{} and cv content e.g. \cvitem{}. +% usage \@cvneedspace{} preferably \cvneedspace{\cvstretchability} to allow the user +% to adapt as needed. +\NewDocumentCommand\@cvneedspace{m}{% + \begingroup + \setlength{\dimen@}{#1}% + \vskip\z@\@plus\dimen@ + \penalty \withinstretchpenalty\vskip\z@\@plus -\dimen@ + \vskip\dimen@ + \penalty \poststretchpenalty% + \vskip -\dimen@ + \vskip\z@skip % hide the previous |\vskip| from |\addvspace| + \endgroup +} %------------------------------------------------------------------------------- % resume design commands definitions diff --git a/moderncvbodyi.sty b/moderncvbodyi.sty index cf8cf9d..168df95 100644 --- a/moderncvbodyi.sty +++ b/moderncvbodyi.sty @@ -69,7 +69,17 @@ \@initializelength{\baseletterheight} \settoheight{\baseletterheight}{\sectionstyle{o}} \setlength{\baseletterheight}{\baseletterheight-0.95ex} + +% Set \cvstretchability to the height of E for Experience +% \settoheight{\cvstretchability}{\sectionstyle{IT}+10ex} +\setlength{\cvstretchability}{.9\baselineskip}%3\baselineskip +% must be between -100 and 9999. The higher the less likely a page break will occur. +% This is where the page break should occur, so this number should not bee too high +\RenewDocumentCommand\withinstretchpenalty{}{0} +% must be between -100 and 9999. The higher the less likely a page break will occur. +% \RenewDocumentCommand\poststretchpenalty{}{9999} \RenewDocumentCommand{\section}{sm}{% + \@cvneedspace{\cvstretchability}% avoit orphaned sections \par\addvspace{2.5ex}% \phantomsection{}% reset the anchor for hyperrefs \addcontentsline{toc}{section}{#2}% @@ -77,6 +87,7 @@ \par\nobreak\addvspace{1ex}\@afterheading}% to avoid a pagebreak after the heading \RenewDocumentCommand{\subsection}{sm}{% + \@cvneedspace{\cvstretchability}% avoit orphaned sections \par\addvspace{1ex}% \phantomsection{}% reset the anchor for hyperrefs \addcontentsline{toc}{subsection}{#2}% diff --git a/moderncvbodyiii.sty b/moderncvbodyiii.sty index a280bdb..ef45e24 100644 --- a/moderncvbodyiii.sty +++ b/moderncvbodyiii.sty @@ -102,7 +102,19 @@ % regular lengths \setlength{\parskip}{0\p@}} +\@initializelength{\baseletterheight} +\settoheight{\baseletterheight}{\sectionstyle{o}} +\setlength{\baseletterheight}{\baseletterheight-0.95ex} +% Set \cvstretchability to the height of E for Experience +% \settoheight{\cvstretchability}{\sectionstyle{E}} +\setlength{\cvstretchability}{\baseletterheight}%3\baselineskip +% must be between -100 and 9999. The higher the less likely a page break will occur. +% This is where the page break should occur, so this number should not bee too high +\RenewDocumentCommand\withinstretchpenalty{}{40} +% must be between -100 and 9999. The higher the less likely a page break will occur. +% \RenewDocumentCommand\poststretchpenalty{}{9999} \RenewDocumentCommand{\section}{sm}{% + \@cvneedspace{\cvstretchability}% avoit orphaned sections \par\addvspace{2.5ex}% \phantomsection{}% reset the anchor for hyperrefs \addcontentsline{toc}{section}{#2}% @@ -118,6 +130,7 @@ \par\nobreak\addvspace{1ex}\@afterheading} \RenewDocumentCommand{\subsection}{sm}{% + \@cvneedspace{\cvstretchability}% avoit orphaned sections \par\addvspace{1ex}% \phantomsection{}% \addcontentsline{toc}{subsection}{#2}% diff --git a/moderncvbodyiv.sty b/moderncvbodyiv.sty index 290da9e..0cdb82e 100644 --- a/moderncvbodyiv.sty +++ b/moderncvbodyiv.sty @@ -63,7 +63,19 @@ % regular lengths \setlength{\parskip}{0\p@}} +\@initializelength{\baseletterheight} +\settoheight{\baseletterheight}{\sectionstyle{o}} +\setlength{\baseletterheight}{\baseletterheight-0.95ex} +% Set \cvstretchability to the height of E for Experience +% \settoheight{\cvstretchability}{\sectionstyle{E}} +\setlength{\cvstretchability}{\baseletterheight}%3\baselineskip +% must be between -100 and 9999. The higher the less likely a page break will occur. +% This is where the page break should occur, so this number should not bee too high +\RenewDocumentCommand\withinstretchpenalty{}{40} +% must be between -100 and 9999. The higher the less likely a page break will occur. +% \RenewDocumentCommand\poststretchpenalty{}{9999} \RenewDocumentCommand{\section}{sm}{% + \@cvneedspace{\cvstretchability}% avoit orphaned sections \par\addvspace{2.5ex}% \phantomsection{}% reset the anchor for hyperrefs \addcontentsline{toc}{section}{#2}% @@ -71,6 +83,7 @@ \par\nobreak\addvspace{1ex}\@afterheading} \RenewDocumentCommand{\subsection}{sm}{% + \@cvneedspace{\cvstretchability}% avoit orphaned sections \par\addvspace{1ex}% \phantomsection{}% \addcontentsline{toc}{subsection}{#2}% diff --git a/moderncvbodyv.sty b/moderncvbodyv.sty index 6e1d6ee..df2a184 100644 --- a/moderncvbodyv.sty +++ b/moderncvbodyv.sty @@ -67,8 +67,21 @@ % regular lengths \setlength{\parskip}{0\p@}} +\@initializelength{\baseletterheight} +\settoheight{\baseletterheight}{\sectionstyle{o}} +\setlength{\baseletterheight}{\baseletterheight-0.95ex} +% Set \cvstretchability to the height of E for Experience +% \settoheight{\cvstretchability}{\sectionstyle{E}} +\setlength{\cvstretchability}{\baseletterheight}%3\baselineskip +% must be between -100 and 9999. The higher the less likely a page break will occur. +% This is where the page break should occur, so this number should not bee too high +\RenewDocumentCommand\withinstretchpenalty{}{40} +% must be between -100 and 9999. The higher the less likely a page break will occur. +% \RenewDocumentCommand\poststretchpenalty{}{9999} + \@initializeif{\if@aftersection}\@aftersectionfalse% \RenewDocumentCommand{\section}{sm}{% + \@cvneedspace{\cvstretchability}% avoit orphaned sections \addvspace{2.5ex}% \phantomsection{}% reset the anchor for hyperrefs \addcontentsline{toc}{section}{#2}% @@ -77,6 +90,7 @@ %\@initializeif{\if@aftersubsection}\@aftersubsectionfalse% \RenewDocumentCommand{\subsection}{sm}{% + \@cvneedspace{\cvstretchability}% avoit orphaned sections %\addvspace{1ex}% \vspace*{-\arrayrulewidth}% HACK; I don't understand where the space is coming from, nor what it's exact value is :( \if@aftersection% From bd7a1ecb7a9be17fbfe14fd77dc0d1d974b62ded Mon Sep 17 00:00:00 2001 From: David Date: Wed, 27 Jan 2021 20:30:38 +0100 Subject: [PATCH 2/3] introduce \cvsectionstretchability and \cvsubsectionstretchability --- manual/moderncv_userguide.tex | 38 +++++++++++++++++++---------------- moderncv.cls | 5 ++++- moderncvbodyi.sty | 12 +++++------ moderncvbodyiii.sty | 15 ++++++-------- moderncvbodyiv.sty | 15 ++++++-------- moderncvbodyv.sty | 15 ++++++-------- 6 files changed, 49 insertions(+), 51 deletions(-) diff --git a/manual/moderncv_userguide.tex b/manual/moderncv_userguide.tex index 9d8b673..9b8f587 100644 --- a/manual/moderncv_userguide.tex +++ b/manual/moderncv_userguide.tex @@ -709,28 +709,18 @@ The labels used in \Code{itemize} environments or the \Moderncv macros \code{cvl This will leave the definitions of \Code{itemize} environments untouched. \end{itemize} -\subsection{Tips and Tricks} -\subsubsection{Legal disclaimer at the end of CV} -Some countries (e.g. Italy) require to add the permission to treat the personal data contained in the CV. This can be achieved by the command \code{\\vfill}. At the end of the last entry to your -CV, add the following:% -\footnote{Example provided by Cristina Sambo} % -\begin{lstlisting} - \vfill - \begin{center} - \textit{\small Ai sensi del D. Lgs. 196/2003 ...} - \end{center} -\end{lstlisting} - -\subsubsection{Orphaned sections} +\subsection{Pagebreaks and orphaned section headers} +\todox{explain things properly} If \latex~ breaks pages just after \code{\\section} or \code{\\subsection} commands, try adjusting the the stretchability of the page \begin{lstlisting} - \setlength{\cvstretchability}{}, + \setlength{\cvsectionstretchability}{} % + \setlength{\cvsubsectionstretchability}{}, \end{lstlisting} for example \begin{lstlisting} - \setlength{\cvstretchability}{\baselineskip} % or - % \setlength{\cvstretchability}{100pt}, + \setlength{\cvsectionstretchability}{\baselineskip} % or + % \setlength{\cvsubsectionstretchability}{100pt}, \end{lstlisting} in the document. It tells \latex that it needs approximately \Code{} extra length after section and subsection commands. @@ -751,7 +741,7 @@ Internally a custom needspace command is being used: \endgroup } \end{lstlisting} -This means that alternatively to setting \code{\\cvstretchability}, penalties for pagebreaks can be influenced by redefining the internal penalties: +This means that alternatively to setting \Code{\\cvsectionstretchability} and/or \code{\\cvsubsectionstretchability} , penalties for pagebreaks can be influenced by redefining the internal penalties: \begin{lstlisting} % must be between -100 and 9999. The higher the less likely a page break will occur. % This is where the page break should occur, so this number should not bee too high @@ -767,6 +757,20 @@ The penalties must be between -100 and 9999. The higher the value the less likel +\subsection{Tips and Tricks} +\subsubsection{Legal disclaimer at the end of CV} +Some countries (e.g. Italy) require to add the permission to treat the personal data contained in the CV. This can be achieved by the command \code{\\vfill}. At the end of the last entry to your +CV, add the following:% +\footnote{Example provided by Cristina Sambo} % +\begin{lstlisting} + \vfill + \begin{center} + \textit{\small Ai sensi del D. Lgs. 196/2003 ...} + \end{center} +\end{lstlisting} + + + \section{Implementation details} \label{section:implementationDetails} diff --git a/moderncv.cls b/moderncv.cls index 94bd254..7521a44 100644 --- a/moderncv.cls +++ b/moderncv.cls @@ -432,7 +432,10 @@ % custom needspace command to avoid orphaned sections % adapted from the explanations given on % https://tex.stackexchange.com/questions/348994/understanding-needspace -\@initializelength{\cvstretchability} +% the stretchabilities are zero by default and are only there to be changed +% by the user if needed. +\@initializelength{\cvsectionstretchability} +\@initializelength{\cvsubsectionstretchability} % must be between -100 and 9999. The higher the less likely a page break will occur. % This is where the page break should occur, so this number should not bee too high \NewDocumentCommand\withinstretchpenalty{}{0} diff --git a/moderncvbodyi.sty b/moderncvbodyi.sty index 168df95..464d280 100644 --- a/moderncvbodyi.sty +++ b/moderncvbodyi.sty @@ -70,16 +70,16 @@ \settoheight{\baseletterheight}{\sectionstyle{o}} \setlength{\baseletterheight}{\baseletterheight-0.95ex} -% Set \cvstretchability to the height of E for Experience -% \settoheight{\cvstretchability}{\sectionstyle{IT}+10ex} -\setlength{\cvstretchability}{.9\baselineskip}%3\baselineskip +% leave the stretchability zero by default +% \setlength{\cvsectionstretchability}{0.0pt} +% \setlength{\cvsubsectionstretchability}{0.0pt} % must be between -100 and 9999. The higher the less likely a page break will occur. % This is where the page break should occur, so this number should not bee too high -\RenewDocumentCommand\withinstretchpenalty{}{0} +% \RenewDocumentCommand\withinstretchpenalty{}{0} % must be between -100 and 9999. The higher the less likely a page break will occur. % \RenewDocumentCommand\poststretchpenalty{}{9999} \RenewDocumentCommand{\section}{sm}{% - \@cvneedspace{\cvstretchability}% avoit orphaned sections + \@cvneedspace{\cvsectionstretchability}% avoid orphaned sections \par\addvspace{2.5ex}% \phantomsection{}% reset the anchor for hyperrefs \addcontentsline{toc}{section}{#2}% @@ -87,7 +87,7 @@ \par\nobreak\addvspace{1ex}\@afterheading}% to avoid a pagebreak after the heading \RenewDocumentCommand{\subsection}{sm}{% - \@cvneedspace{\cvstretchability}% avoit orphaned sections + \@cvneedspace{\cvsubsectionstretchability}% avoid orphaned sections \par\addvspace{1ex}% \phantomsection{}% reset the anchor for hyperrefs \addcontentsline{toc}{subsection}{#2}% diff --git a/moderncvbodyiii.sty b/moderncvbodyiii.sty index ef45e24..5d0fb9c 100644 --- a/moderncvbodyiii.sty +++ b/moderncvbodyiii.sty @@ -102,19 +102,16 @@ % regular lengths \setlength{\parskip}{0\p@}} -\@initializelength{\baseletterheight} -\settoheight{\baseletterheight}{\sectionstyle{o}} -\setlength{\baseletterheight}{\baseletterheight-0.95ex} -% Set \cvstretchability to the height of E for Experience -% \settoheight{\cvstretchability}{\sectionstyle{E}} -\setlength{\cvstretchability}{\baseletterheight}%3\baselineskip +% leave the stretchability zero by default +% \setlength{\cvsectionstretchability}{0.0pt} +% \setlength{\cvsubsectionstretchability}{0.0pt} % must be between -100 and 9999. The higher the less likely a page break will occur. % This is where the page break should occur, so this number should not bee too high -\RenewDocumentCommand\withinstretchpenalty{}{40} +% \RenewDocumentCommand\withinstretchpenalty{}{0} % must be between -100 and 9999. The higher the less likely a page break will occur. % \RenewDocumentCommand\poststretchpenalty{}{9999} \RenewDocumentCommand{\section}{sm}{% - \@cvneedspace{\cvstretchability}% avoit orphaned sections + \@cvneedspace{\cvsectionstretchability}% avoid orphaned sections \par\addvspace{2.5ex}% \phantomsection{}% reset the anchor for hyperrefs \addcontentsline{toc}{section}{#2}% @@ -130,7 +127,7 @@ \par\nobreak\addvspace{1ex}\@afterheading} \RenewDocumentCommand{\subsection}{sm}{% - \@cvneedspace{\cvstretchability}% avoit orphaned sections + \@cvneedspace{\cvsubsectionstretchability}% avoid orphaned sections \par\addvspace{1ex}% \phantomsection{}% \addcontentsline{toc}{subsection}{#2}% diff --git a/moderncvbodyiv.sty b/moderncvbodyiv.sty index 0cdb82e..042e1c2 100644 --- a/moderncvbodyiv.sty +++ b/moderncvbodyiv.sty @@ -63,19 +63,16 @@ % regular lengths \setlength{\parskip}{0\p@}} -\@initializelength{\baseletterheight} -\settoheight{\baseletterheight}{\sectionstyle{o}} -\setlength{\baseletterheight}{\baseletterheight-0.95ex} -% Set \cvstretchability to the height of E for Experience -% \settoheight{\cvstretchability}{\sectionstyle{E}} -\setlength{\cvstretchability}{\baseletterheight}%3\baselineskip +% leave the stretchability zero by default +% \setlength{\cvsectionstretchability}{0.0pt} +% \setlength{\cvsubsectionstretchability}{0.0pt} % must be between -100 and 9999. The higher the less likely a page break will occur. % This is where the page break should occur, so this number should not bee too high -\RenewDocumentCommand\withinstretchpenalty{}{40} +% \RenewDocumentCommand\withinstretchpenalty{}{0} % must be between -100 and 9999. The higher the less likely a page break will occur. % \RenewDocumentCommand\poststretchpenalty{}{9999} \RenewDocumentCommand{\section}{sm}{% - \@cvneedspace{\cvstretchability}% avoit orphaned sections + \@cvneedspace{\cvsectionstretchability}% avoid orphaned sections \par\addvspace{2.5ex}% \phantomsection{}% reset the anchor for hyperrefs \addcontentsline{toc}{section}{#2}% @@ -83,7 +80,7 @@ \par\nobreak\addvspace{1ex}\@afterheading} \RenewDocumentCommand{\subsection}{sm}{% - \@cvneedspace{\cvstretchability}% avoit orphaned sections + \@cvneedspace{\cvsubsectionstretchability}% avoid orphaned sections \par\addvspace{1ex}% \phantomsection{}% \addcontentsline{toc}{subsection}{#2}% diff --git a/moderncvbodyv.sty b/moderncvbodyv.sty index df2a184..7e1d0bf 100644 --- a/moderncvbodyv.sty +++ b/moderncvbodyv.sty @@ -67,21 +67,18 @@ % regular lengths \setlength{\parskip}{0\p@}} -\@initializelength{\baseletterheight} -\settoheight{\baseletterheight}{\sectionstyle{o}} -\setlength{\baseletterheight}{\baseletterheight-0.95ex} -% Set \cvstretchability to the height of E for Experience -% \settoheight{\cvstretchability}{\sectionstyle{E}} -\setlength{\cvstretchability}{\baseletterheight}%3\baselineskip +% leave the stretchability zero by default +% \setlength{\cvsectionstretchability}{0.0pt} +% \setlength{\cvsubsectionstretchability}{0.0pt} % must be between -100 and 9999. The higher the less likely a page break will occur. % This is where the page break should occur, so this number should not bee too high -\RenewDocumentCommand\withinstretchpenalty{}{40} +% \RenewDocumentCommand\withinstretchpenalty{}{0} % must be between -100 and 9999. The higher the less likely a page break will occur. % \RenewDocumentCommand\poststretchpenalty{}{9999} \@initializeif{\if@aftersection}\@aftersectionfalse% \RenewDocumentCommand{\section}{sm}{% - \@cvneedspace{\cvstretchability}% avoit orphaned sections + \@cvneedspace{\cvsectionstretchability}% avoid orphaned sections \addvspace{2.5ex}% \phantomsection{}% reset the anchor for hyperrefs \addcontentsline{toc}{section}{#2}% @@ -90,7 +87,7 @@ %\@initializeif{\if@aftersubsection}\@aftersubsectionfalse% \RenewDocumentCommand{\subsection}{sm}{% - \@cvneedspace{\cvstretchability}% avoit orphaned sections + \@cvneedspace{\cvsubsectionstretchability}% avoid orphaned sections %\addvspace{1ex}% \vspace*{-\arrayrulewidth}% HACK; I don't understand where the space is coming from, nor what it's exact value is :( \if@aftersection% From 62e3debc6a72cf6312ab60d9605ebd4b3711b27f Mon Sep 17 00:00:00 2001 From: David Date: Fri, 29 Jan 2021 12:15:35 +0100 Subject: [PATCH 3/3] set default stretchability to 0.9\baselineskip --- moderncv.cls | 3 +++ 1 file changed, 3 insertions(+) diff --git a/moderncv.cls b/moderncv.cls index 7521a44..2ec6a73 100644 --- a/moderncv.cls +++ b/moderncv.cls @@ -436,6 +436,9 @@ % by the user if needed. \@initializelength{\cvsectionstretchability} \@initializelength{\cvsubsectionstretchability} +% set the default stretchability. +\setlength{\cvsectionstretchability}{.9\baselineskip} +\setlength{\cvsubsectionstretchability}{.9\baselineskip} % must be between -100 and 9999. The higher the less likely a page break will occur. % This is where the page break should occur, so this number should not bee too high \NewDocumentCommand\withinstretchpenalty{}{0}