123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- %% start of file `moderncvfooti.sty'.
- %% Copyright 2006-2015 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{moderncvfooti}[2015/07/28 v2.0.0 modern curriculum vitae and letter footer variant: 1]
- %-------------------------------------------------------------------------------
- % required packages
- %-------------------------------------------------------------------------------
- %-------------------------------------------------------------------------------
- % overall foot definition
- %-------------------------------------------------------------------------------
- % fonts
- \renewcommand*{\addressfont}{\normalsize\mdseries\slshape}
- % symbols
- % footer symbol used to separate footer elements
- \newcommand*{\footsymbol}{%
- {~~~{\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
- % lengths
- \@initializelength{\footwidth}%
- \renewcommand*{\recomputefootlengths}{%
- \setlength{\footwidth}{0.8\textwidth}}
- % commands
- % internal command to add an element to the footer
- % it collects the elements in a temporary box, and checks when to flush the box
- \@initializebox{\footbox}%
- \@initializebox{\foottempbox}%
- \@initializelength{\footboxwidth}%
- \@initializeif{\if@firstfootelement}\@firstfootelementtrue%
- % adds an element to the footer, separated by footsymbol
- % usage: \addtofoot[footsymbol]{element}
- \newcommand*{\addtofoot}[2][\footsymbol]{%
- \if@firstfootelement%
- \savebox{\foottempbox}{\usebox{\footbox}#2}%
- \else%
- \savebox{\foottempbox}{\usebox{\footbox}#1#2}\fi%
- \settowidth{\footboxwidth}{\usebox{\foottempbox}}%
- \ifnum\footboxwidth<\footwidth%
- \savebox{\footbox}{\usebox{\foottempbox}}%
- \@firstfootelementfalse%
- \else%
- \flushfoot\\%
- \savebox{\footbox}{#2}%
- \savebox{\foottempbox}{#2}%
- \settowidth{\footboxwidth}{\usebox{\footbox}}%
- \@firstfootelementfalse\fi}
- % internal command to flush the foot
- \newcommand*{\flushfoot}{%
- \strut\usebox{\footbox}%
- \savebox{\footbox}{}%
- \savebox{\foottempbox}{}%
- \setlength{\footboxwidth}{0pt}}
- %-------------------------------------------------------------------------------
- % resume foot definition
- %-------------------------------------------------------------------------------
- % lenghts
- \renewcommand*{\recomputecvfootlengths}{\recomputefootlengths}
- % commands
- \renewcommand*{\makecvfoot}{%
- \recomputecvfootlengths{}%
- \fancypagestyle{plain}{%
- \fancyfoot[c]{%
- \parbox[b]{\footwidth}{%
- \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}}{}{\addtofoot[]{\addresssymbol\@addressstreet}%
- \ifthenelse{\equal{\@addresscity}{}}{}{\addtofoot[~--~]{\@addresscity}}% if \addresstreet is defined, \addresscity and \addresscountry will always be defined but could be empty
- \ifthenelse{\equal{\@addresscountry}{}}{}{\addtofoot[~--~]{\@addresscountry}}%
- \flushfoot\@firstfootelementtrue\\}%
- \collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
- \addtofoot{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
- \ifthenelse{\isundefined{\@email}}{}{\addtofoot{\emailsymbol\emaillink{\@email}}}%
- \ifthenelse{\isundefined{\@homepage}}{}{\addtofoot{\homepagesymbol\httplink{\@homepage}}}%
- \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
- \addtofoot{\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}%
- \ifthenelse{\isundefined{\@extrainfo}}{}{\addtofoot{\@extrainfo}}%
- \ifthenelse{\lengthtest{\footboxwidth=0pt}}{}{\flushfoot}% 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}}
- %-------------------------------------------------------------------------------
- % letter foot definition
- %-------------------------------------------------------------------------------
- % commands
- \renewcommand*{\recomputeletterfootlengths}{\recomputefootlengths}
- \renewcommand*{\makeletterfoot}{%
- \recomputeletterfootlengths{}%
- \fancypagestyle{plain}{%
- \fancyfoot[c]{%
- \parbox[b]{\footwidth}{%
- \centering%
- \addressfont\color{color2}%
- \vspace{\baselineskip}% forces a white line to ensure space between main text and footer (as footer height can't be known in advance)
- \vspace{-\baselineskip}% to cancel out the extra vertical space taken by the name (below) and ensure perfect alignment of letter and cv footers
- \strut{\bfseries\upshape\@firstname~\@lastname}\\% the \strut is required to ensure the line is exactly \baselineskip tall
- \ifthenelse{\isundefined{\@addressstreet}}{}{\addtofoot[]{\addresssymbol\@addressstreet}%
- \ifthenelse{\equal{\@addresscity}{}}{}{\addtofoot[~--~]{\@addresscity}}% if \addresstreet is defined, \addresscity and addresscountry will always be defined but could be empty
- \ifthenelse{\equal{\@addresscountry}{}}{}{\addtofoot[~--~]{\@addresscountry}}%
- \flushfoot\@firstfootelementtrue\\}%
- \collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
- \addtofoot{\csname\collectionloopkey phonesymbol\endcsname\collectionloopitem}}%
- \ifthenelse{\isundefined{\@email}}{}{\addtofoot{\emailsymbol\emaillink{\@email}}}%
- \ifthenelse{\isundefined{\@homepage}}{}{\addtofoot{\homepagesymbol\httplink{\@homepage}}}%
- \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
- \addtofoot{\csname\collectionloopkey socialsymbol\endcsname\collectionloopitem}}%
- \ifthenelse{\isundefined{\@extrainfo}}{}{\addtofoot{\@extrainfo}}%
- \ifthenelse{\lengthtest{\footboxwidth=0pt}}{}{\flushfoot}% 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}}
- \endinput
- %% end of file `moderncvfooti.sty'.
|