178 lines
7.4 KiB
TeX
178 lines
7.4 KiB
TeX
%% start of file `moderncvstylecasual.sty'.
|
|
%% Copyright 2006-2012 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{moderncvstylecasual}[2012/03/26 v1.0 modern curriculum vitae and letter style scheme: casual]
|
|
|
|
|
|
%-------------------------------------------------------------------------------
|
|
% required packages
|
|
%-------------------------------------------------------------------------------
|
|
|
|
|
|
%-------------------------------------------------------------------------------
|
|
% package options
|
|
%-------------------------------------------------------------------------------
|
|
\RequirePackage{moderncvstyleclassic}
|
|
|
|
|
|
%-------------------------------------------------------------------------------
|
|
% 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}%
|
|
\@firstfooterelementfalse\fi}
|
|
% internal command to flush the footer
|
|
\newcommand*{\flushfooter}{%
|
|
\strut\usebox{\footerbox}%
|
|
\savebox{\footerbox}{}%
|
|
\savebox{\footertempbox}{}}
|
|
|
|
|
|
%-------------------------------------------------------------------------------
|
|
% resume style definition
|
|
%-------------------------------------------------------------------------------
|
|
% fonts
|
|
\renewcommand*{\namefont}{\fontsize{38}{40}\mdseries\upshape}
|
|
\renewcommand*{\addressfont}{\normalsize\mdseries\slshape}
|
|
|
|
% commands
|
|
\renewcommand*{\makecvtitle}{%
|
|
% ensure footer with personal information
|
|
\makecvfooter%
|
|
% optional picture
|
|
\newbox{\makecvtitlepicturebox}%
|
|
\savebox{\makecvtitlepicturebox}{%
|
|
\ifthenelse{\isundefined{\@photo}}%
|
|
{}%
|
|
{%
|
|
\setlength\fboxrule{\@photoframewidth}%
|
|
\ifdim\@photoframewidth=0pt%
|
|
\setlength{\fboxsep}{0pt}\fi%
|
|
{\color{color1}\framebox{\includegraphics[width=\@photowidth]{\@photo}}}}}%
|
|
\usebox{\makecvtitlepicturebox}%
|
|
% name
|
|
\@initializelength{\makecvtitlepicturewidth}%
|
|
\settowidth{\makecvtitlepicturewidth}{\usebox{\makecvtitlepicturebox}}%
|
|
\parbox[b]{\textwidth-\makecvtitlepicturewidth}{%
|
|
\raggedleft\namefont{\color{color2!50}\@firstname} {\color{color2}\@familyname}}\\[-.35em]% alternate design: \MakeLowercase and no space
|
|
{\color{color2!50}\rule{\textwidth}{.25ex}}%
|
|
% optional title
|
|
\ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\raggedleft\titlestyle{\@title}}\\[2.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 \maketitle
|
|
|
|
\renewcommand*{\makecvfooter}{%
|
|
\setlength{\footerwidth}{0.8\textwidth}%
|
|
\fancypagestyle{plain}{%
|
|
\fancyfoot[c]{%
|
|
\parbox{\footerwidth}{%
|
|
\centering%
|
|
\color{color2}\addressfont%
|
|
\ifthenelse{\isundefined{\@addressstreet}}{}{\addtofooter[]{\addresssymbol\@addressstreet}%
|
|
\ifthenelse{\equal{\@addresscity}{}}{}{\addtofooter[~--~]{\@addresscity}}\flushfooter\@firstfooterelementtrue\\}% if \addresstreet is defined, \addresscity will always be defined but could be empty
|
|
\ifthenelse{\isundefined{\@mobile}}{}{\addtofooter{\mobilesymbol\@mobile}}%
|
|
\ifthenelse{\isundefined{\@phone}}{}{\addtofooter{\phonesymbol\@phone}}%
|
|
\ifthenelse{\isundefined{\@fax}}{}{\addtofooter{\faxsymbol\@fax}}%
|
|
\ifthenelse{\isundefined{\@email}}{}{\addtofooter{\emailsymbol\emaillink{\@email}}}%
|
|
\ifthenelse{\isundefined{\@homepage}}{}{\addtofooter{\homepagesymbol\httplink{\@homepage}}}%
|
|
\ifthenelse{\isundefined{\@extrainfo}}{}{\addtofooter{\@extrainfo}}%
|
|
\flushfooter}}}%
|
|
\pagestyle{plain}}
|
|
|
|
|
|
%-------------------------------------------------------------------------------
|
|
% letter style definition
|
|
%-------------------------------------------------------------------------------
|
|
\renewcommand*{\makelettertitle}{%
|
|
% recompute lengths (in case we are switching from letter to resume, or vice versa)
|
|
\recomputeletterlengths%
|
|
% ensure footer with personal information
|
|
\makeletterfooter%
|
|
% recipient block
|
|
\begin{minipage}[t]{.5\textwidth}
|
|
\raggedright%
|
|
\addressfont%
|
|
{\bfseries\upshape\@recipientname}\\%
|
|
\@recipientaddress%
|
|
\end{minipage}
|
|
% date
|
|
\hfill% US style
|
|
% \\[1em]% UK style
|
|
\hbox{\today}\\[2em]% US informal style: "April 6, 2006"; UK formal style: "05/04/2006"
|
|
% opening
|
|
\raggedright%
|
|
\@opening\\[1.5em]%
|
|
% ensure no extra spacing after \makelettertitle due to a possible blank line
|
|
% \ignorespacesafterend% not working
|
|
\hspace{0pt}\par\vspace{-\baselineskip}\vspace{-\parskip}}
|
|
|
|
\renewcommand*{\makeletterfooter}{%
|
|
\setlength{\footerwidth}{0.8\textwidth}%
|
|
\fancypagestyle{plain}{%
|
|
\fancyfoot[c]{%
|
|
\parbox{\footerwidth}{%
|
|
\centering%
|
|
\addressfont\color{color2}%
|
|
{\bfseries\upshape\@firstname~\@familyname}\\
|
|
\ifthenelse{\isundefined{\@addressstreet}}{}{\addtofooter[]{\addresssymbol\@addressstreet}%
|
|
\ifthenelse{\equal{\@addresscity}{}}{}{\addtofooter[~--~]{\@addresscity}}\flushfooter\@firstfooterelementtrue\\}% if \addresstreet is defined, \addresscity will always be defined but could be empty
|
|
\ifthenelse{\isundefined{\@mobile}}{}{\addtofooter{\mobilesymbol\@mobile}}%
|
|
\ifthenelse{\isundefined{\@phone}}{}{\addtofooter{\phonesymbol\@phone}}%
|
|
\ifthenelse{\isundefined{\@fax}}{}{\addtofooter{\faxsymbol\@fax}}%
|
|
\ifthenelse{\isundefined{\@email}}{}{\addtofooter{\emailsymbol\emaillink{\@email}}}%
|
|
\ifthenelse{\isundefined{\@homepage}}{}{\addtofooter{\homepagesymbol\httplink{\@homepage}}}%
|
|
\ifthenelse{\isundefined{\@extrainfo}}{}{\addtofooter{\@extrainfo}}%
|
|
\flushfooter}}}%
|
|
\pagestyle{plain}}
|
|
|
|
\renewcommand*{\makeletterclosing}{
|
|
\@closing\\[3em]%
|
|
{\bfseries\@firstname~\@familyname}%
|
|
\ifthenelse{\isundefined{\@enclosure}}{}{%
|
|
\\%
|
|
\vfil%
|
|
{\color{color2}\itshape Enclosure: \@enclosure}}%
|
|
\vfil}
|
|
|
|
|
|
\endinput
|
|
|
|
|
|
%% end of file `moderncvstylecasual.sty'.
|