diff --git a/CHANGELOG b/CHANGELOG index 245eda7..8e43202 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +version 2.?.? (29 Jun 2023) +- Fix wrong cvlistitem vspace caused by multiline section titles in fancy style (#69) + version 2.3.1 (2022-02-21) - Fix duplicate GitLab icon (#105) - Revert using detokenize in social links (#97) diff --git a/moderncvbodyv.sty b/moderncvbodyv.sty index ec2c5c3..2b90ab9 100644 --- a/moderncvbodyv.sty +++ b/moderncvbodyv.sty @@ -44,8 +44,6 @@ \@initializelength{\separatorcolumnwidth} \setlength{\separatorcolumnwidth}{0.025\textwidth} \@initializelength{\separatorrulewidth} \setlength{\separatorrulewidth}{1.2\p@}% \@initializelength{\maincolumnwidth} -\@initializelength{\multilinecompensationlength} -\@initializelength{\thissectionwidth} % used by \cvdoubleitem \@initializelength{\doubleitemcolumnwidth} % used by \cvlistitem @@ -56,9 +54,6 @@ \@initializelength{\listdoubleitemcolumnwidth} %\@initializelength{\listdoubleitemmaincolumnwidth} -% numbers -% used by \calculatecompensation -\@initializecommand{\numoflines}{0} % commands \@initializecommand{\recomputecvbodylengths}{% % body lengths @@ -72,21 +67,13 @@ % regular lengths \setlength{\parskip}{0\p@}} -\newcommand{\calculatecompensation}[1]{% - % calculate the number of lines used by sections and subsections - \settowidth{\thissectionwidth}{#1}% - \renewcommand{\numoflines}{\numexpr\thissectionwidth/\hintscolumnwidth\relax}% - \setlength{\multilinecompensationlength}{\dimexpr\hintscolumnwidth*\numoflines\relax}% - } - \@initializeif{\if@aftersection}\@aftersectionfalse% \RenewDocumentCommand{\section}{sm}{% \addvspace{2.5ex}% \phantomsection{}% reset the anchor for hyperrefs \addcontentsline{toc}{section}{#2}% - \calculatecompensation{\sectionstyle{#2}}% calculate the vspace compensation for current section - \noindent\rlap{\@cvitem{\raggedleft\sectionstyle{#2}\ifthenelse{\multilinecompensationlength<2}{}{\vspace{-\multilinecompensationlength}}}{}}% - %\noindent\rlap{\@cvitem{\raggedleft\sectionstyle{#2}}{}}% + % minipage for correct spacing with multiline sections #69 + \noindent\rlap{\@cvitem{\begin{minipage}[t][1ex]{\hintscolumnwidth}\raggedleft\sectionstyle{#2}\end{minipage}}{}}% \nobreak\@afterheading\@aftersectiontrue\ignorespaces} %\@initializeif{\if@aftersubsection}\@aftersubsectionfalse% @@ -97,8 +84,8 @@ \par\ignorespaces\fi% \phantomsection{}% reset the anchor for hyperrefs \addcontentsline{toc}{subsection}{#2}% - \calculatecompensation{\subsectionstyle{#2}}% calculate the vspace compensation for current section - \noindent\rlap{\@cvitem{\if@aftersection\else\@moderncvstrut{4pt}{24pt}\fi\raggedleft\subsectionstyle{#2}\ifthenelse{\multilinecompensationlength<2}{}{\vspace{-\multilinecompensationlength}}}{}}% + % minipage for correct spacing with multiline subsections #69 + \noindent\rlap{\@cvitem{\begin{minipage}[t][1ex]{\hintscolumnwidth}\if@aftersection\else\@moderncvstrut{4pt}{24pt}\fi\raggedleft\subsectionstyle{#2}\end{minipage}}{}}% \nobreak\@afterheading\@aftersectiontrue\ignorespaces} \renewcommand*{\cvitem}[3][.5ex]{%