new approach with minipage: eliminate wrong vspace fancy sections

This commit is contained in:
LLdaniel 2024-06-30 22:50:37 +02:00
commit 3a0fa92f01
2 changed files with 7 additions and 17 deletions

View file

@ -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)

View file

@ -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]{%