%% start of file `moderncvstylealx.sty'. %% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com). % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License version 1.3c, % available at http://www.latex-project.org/lppl/. %------------------------------------------------------------------------------- % identification %------------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{moderncvstylealx}[2020/03/27 v1.0 modern curriculum vitae and letter style scheme: alx] %------------------------------------------------------------------------------- % required packages %------------------------------------------------------------------------------- \RequirePackage{moderncvstyleclassic} \moderncvicons{awesome} %------------------------------------------------------------------------------- % overrides for classic style %------------------------------------------------------------------------------- \renewcommand*{\hintfont}{\footnotesize\slshape} \renewcommand*{\hintstyle}[1]{{\hintfont\textcolor{color2}{#1}}} \setlength{\hintscolumnwidth}{0.15\textwidth} % makes a references block % usage: \cvref[spacing]{name}{title}{company}{email}{phone} \newcommand*{\cvref}[5]{% \textbf{#1}\newline% #2\newline% #3\newline% \emaillink{#4}\newline% #5% }% %\newcommand\bully[]{\color{color1}$\bullet$\hspace{.25em}\color{color0} } %\renewcommand\bully[]{\hintstyle{$\bullet$}\hspace{.25em}} %\renewcommand\dashi[]{\color{color1}--\hspace{.25em}\color{color0} } \renewcommand*{\cvitem}[3][.5em]{% \begin{tabular}{@{}p{\hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}p{\maincolumnwidth}@{}}% \raggedleft\hintstyle{#2} &{#3}% \end{tabular}% \par\addvspace{#1}} \renewcommand*{\cventry}[7][.5em]{% \cvitem[#1]{#2}{% {\bfseries#3}% \ifthenelse{\equal{#4}{}}{}{, {\slshape#4}}% \ifthenelse{\equal{#5}{}}{}{, #5}% \ifthenelse{\equal{#6}{}}{}{, #6}% .\strut% \ifx&% \else{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}\fi }} \RenewDocumentCommand{\section}{sm}{% \par\addvspace{4ex}% \phantomsection{}% reset the anchor for hyperrefs \addcontentsline{toc}{section}{#2}% \parbox[t]{\hintscolumnwidth}{\strut\raggedleft\raisebox{\baseletterheight}{\color{color1}\hspace{\hintscolumnwidth}}}% \hspace{\separatorcolumnwidth}% \parbox[t]{\maincolumnwidth}{\strut\sectionstyle{#2}}% \par\nobreak\addvspace{1ex}\@afterheading}% to avoid a pagebreak after the heading % optional maketitle width to force a certain width (if set to 0pt, the width is calculated automatically) \newlength{\makecvtitlenamewidth} \setlength{\makecvtitlenamewidth}{0pt}% dummy value \renewcommand*{\makecvtitle}{% % recompute lengths (in case we are switching from letter to resume, or vice versa) \recomputecvlengths% % optional detailed information (pre-rendering) \def\phonesdetails{}% \collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number \protected@edef\phonesdetails{\phonesdetails\protect\makenewline\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}% \def\socialsdetails{}% \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link \protected@edef\socialsdetails{\socialsdetails\protect\makenewline\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}% \newbox{\makecvtitledetailsbox}% \savebox{\makecvtitledetailsbox}{% \addressfont\color{color2}% \begin{tabular}[b]{@{}r@{}}% \ifthenelse{\isundefined{\@addressstreet}}{}{\makenewline\addresssymbol\@addressstreet% \ifthenelse{\equal{\@addresscity}{}}{}{\makenewline\@addresscity}% if \addresstreet is defined, \addresscity and addresscountry will always be defined but could be empty \ifthenelse{\equal{\@addresscountry}{}}{}{ \@addresscountry}}% \phonesdetails% needs to be pre-rendered as loops and tabulars seem to conflict \ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}% \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httplink{\@homepage}}% \socialsdetails% needs to be pre-rendered as loops and tabulars seem to conflict \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}% \end{tabular} }% % optional photo (pre-rendering) \newbox{\makecvtitlepicturebox}% \savebox{\makecvtitlepicturebox}{% \ifthenelse{\isundefined{\@photo}}% {}% {% \hspace*{\separatorcolumnwidth}% \color{color1}% \setlength{\fboxrule}{\@photoframewidth}% \ifdim\@photoframewidth=0pt% \setlength{\fboxsep}{0pt}\fi% \framebox{\includegraphics[width=\@photowidth]{\@photo}}}}% % name and title \newlength{\makecvtitledetailswidth}\settowidth{\makecvtitledetailswidth}{\usebox{\makecvtitledetailsbox}}% \newlength{\makecvtitlepicturewidth}\settowidth{\makecvtitlepicturewidth}{\usebox{\makecvtitlepicturebox}}% \ifthenelse{\lengthtest{\makecvtitlenamewidth=0pt}}% check for dummy value (equivalent to \ifdim\makecvtitlenamewidth=0pt) {\setlength{\makecvtitlenamewidth}{\textwidth-\makecvtitledetailswidth-\makecvtitlepicturewidth}}% {}% \begin{minipage}[b]{\makecvtitlenamewidth}% \namestyle{\@firstname\ \@lastname}% \ifthenelse{\equal{\@title}{}}{}{\\[.5em]\titlestyle{\@title}}% \end{minipage}% \hfill% % optional detailed information (rendering) \llap{\usebox{\makecvtitledetailsbox}}% \llap is used to suppress the width of the box, allowing overlap if the value of makecvtitlenamewidth is forced % optional photo (rendering) \usebox{\makecvtitlepicturebox}\\[1.5em]% % optional quote \ifthenelse{\isundefined{\@quote}}% {}% {{\centering\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\\[2.5em]}}% \par}% to avoid weird spacing bug at the first section if no blank line is left after \makecvtitle %------------------------------------------------------------------------------- % overall style definition %------------------------------------------------------------------------------- % commands % footer symbol used to separate footer elements \newcommand*{\footersymbol}{% {~~~{\rmfamily\textbullet}~~~}}% the \rmfamily is required to force Latin Modern fonts when using sans serif, as OMS/lmss/m/n is not defined and gets substituted by OMS/cmsy/m/n % internal command to add an element to the footer % it collects the elements in a temporary box, and checks when to flush the box \newsavebox{\footerbox}% \newsavebox{\footertempbox}% \newlength{\footerwidth}% \newlength{\footerboxwidth}% \newif\if@firstfooterelement\@firstfooterelementtrue% % adds an element to the footer, separated by footersymbol % usage: \addtofooter[footersymbol]{element} \newcommand*{\addtofooter}[2][\footersymbol]{% \if@firstfooterelement% \savebox{\footertempbox}{\usebox{\footerbox}#2}% \else% \savebox{\footertempbox}{\usebox{\footerbox}#1#2}\fi% \settowidth{\footerboxwidth}{\usebox{\footertempbox}}% \ifnum\footerboxwidth<\footerwidth% \savebox{\footerbox}{\usebox{\footertempbox}}% \@firstfooterelementfalse% \else% \flushfooter\\% \savebox{\footerbox}{#2}% \savebox{\footertempbox}{#2}% \settowidth{\footerboxwidth}{\usebox{\footerbox}}% \@firstfooterelementfalse\fi} % internal command to flush the footer \newcommand*{\flushfooter}{% \strut\usebox{\footerbox}% \savebox{\footerbox}{}% \savebox{\footertempbox}{}% \setlength{\footerboxwidth}{0pt}} %------------------------------------------------------------------------------- % resume style definition %------------------------------------------------------------------------------- % fonts \renewcommand*{\namefont}{\fontsize{22}{50}\mdseries\upshape} \renewcommand*{\addressfont}{\normalsize\mdseries\slshape} \renewcommand*{\titlefont}{\fontsize{12}{12}\mdseries\slshape} \renewcommand*{\makecvfooter}{% \setlength{\footerwidth}{0.8\textwidth}% \fancypagestyle{plain}{% \fancyfoot[c]{% \parbox[b]{\footerwidth}{% \centering% \color{color2}\addressfont% \vspace{\baselineskip}% forces a white line to ensure space between main text and footer (as footer height can't be known in advance) \ifthenelse{\isundefined{\@addressstreet}}{}{\addtofooter[]{\addresssymbol\@addressstreet}% \ifthenelse{\equal{\@addresscity}{}}{}{\addtofooter[~--~]{\@addresscity}}% if \addresstreet is defined, \addresscity and \addresscountry will always be defined but could be empty \ifthenelse{\equal{\@addresscountry}{}}{}{\addtofooter[~--~]{\@addresscountry}}% \flushfooter\@firstfooterelementtrue\\}% \collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number \addtofooter{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}% \ifthenelse{\isundefined{\@email}}{}{\addtofooter{\emailsymbol\emaillink{\@email}}}% \ifthenelse{\isundefined{\@homepage}}{}{\addtofooter{\homepagesymbol\httplink{\@homepage}}}% \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link \addtofooter{\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}% \ifthenelse{\isundefined{\@extrainfo}}{}{\addtofooter{\@extrainfo}}% \ifthenelse{\lengthtest{\footerboxwidth=0pt}}{}{\flushfooter}% the lengthtest is required to avoid flushing an empty footer, which could cause a blank line due to the \\ after the address, if no other personal info is used }}}% \pagestyle{plain}} \newcommand*{\parabreak}{\par\addvspace{3ex}} \newcommand*{\smparabreak}{\par\addvspace{1ex}} \endinput %% end of file `moderncvstylealx.sty'.