%% start of file `moderncvstyleclassic.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{moderncvstyleclassic}[2012/10/31 v1.2.0 modern curriculum vitae and letter style scheme: classic] %------------------------------------------------------------------------------- % required packages %------------------------------------------------------------------------------- %------------------------------------------------------------------------------- % package options %------------------------------------------------------------------------------- %------------------------------------------------------------------------------- % overall style definition %------------------------------------------------------------------------------- % fonts %\ifxetexorluatex % \setmainfont{Latin Modern Roman} % \setsansfont{Latin Modern Sans} % \setmathfont{Latin Modern Math} %\else \IfFileExists{lmodern.sty}% {\RequirePackage{lmodern}}% {} %\fi % symbols \renewcommand*{\mobilesymbol}{\marvosymbol{72}~} \renewcommand*{\phonesymbol}{\marvosymbol{84}~} \renewcommand*{\faxsymbol}{\marvosymbol{117}~} \renewcommand*{\emailsymbol}{\marvosymbol{66}~} \renewcommand*{\homepagesymbol}{{\Large\marvosymbol{205}}~} %------------------------------------------------------------------------------- % resume style definition %------------------------------------------------------------------------------- % fonts \renewcommand*{\namefont}{\fontsize{34}{36}\mdseries\upshape} \renewcommand*{\titlefont}{\LARGE\mdseries\slshape} \renewcommand*{\addressfont}{\small\mdseries\slshape} \renewcommand*{\quotefont}{\large\slshape} \renewcommand*{\sectionfont}{\Large\mdseries\upshape} \renewcommand*{\subsectionfont}{\large\mdseries\upshape} \renewcommand*{\hintfont}{} % styles \renewcommand*{\namestyle}[1]{{\namefont\textcolor{color0}{#1}}} \renewcommand*{\titlestyle}[1]{{\titlefont\textcolor{color2}{#1}}} \renewcommand*{\addressstyle}[1]{{\addressfont\textcolor{color1}{#1}}} \renewcommand*{\quotestyle}[1]{{\quotefont\textcolor{color1}{#1}}} \renewcommand*{\sectionstyle}[1]{{\sectionfont\textcolor{color1}{#1}}} \renewcommand*{\subsectionstyle}[1]{{\subsectionfont\textcolor{color1}{#1}}} \renewcommand*{\hintstyle}[1]{{\hintfont\textcolor{color0}{#1}}} % lengths \newlength{\quotewidth} \newlength{\hintscolumnwidth} \setlength{\hintscolumnwidth}{0.175\textwidth} \newlength{\separatorcolumnwidth} \setlength{\separatorcolumnwidth}{0.025\textwidth} \newlength{\maincolumnwidth} \newlength{\doubleitemmaincolumnwidth} \newlength{\listitemsymbolwidth} \settowidth{\listitemsymbolwidth}{\listitemsymbol} \newlength{\listitemmaincolumnwidth} \newlength{\listdoubleitemmaincolumnwidth} % commands \renewcommand*{\recomputecvlengths}{% \setlength{\quotewidth}{0.65\textwidth}% % main lenghts \setlength{\maincolumnwidth}{\textwidth-\separatorcolumnwidth-\hintscolumnwidth}% % listitem lengths \setlength{\listitemmaincolumnwidth}{\maincolumnwidth-\listitemsymbolwidth}% % doubleitem lengths \setlength{\doubleitemmaincolumnwidth}{\maincolumnwidth-\hintscolumnwidth-\separatorcolumnwidth-\separatorcolumnwidth}% \setlength{\doubleitemmaincolumnwidth}{0.5\doubleitemmaincolumnwidth}% % listdoubleitem lengths \setlength{\listdoubleitemmaincolumnwidth}{\maincolumnwidth-\listitemsymbolwidth-\separatorcolumnwidth-\listitemsymbolwidth}% \setlength{\listdoubleitemmaincolumnwidth}{0.5\listdoubleitemmaincolumnwidth}% % fancyhdr lengths \renewcommand{\headwidth}{\textwidth}% % regular lengths \setlength{\parskip}{0\p@}} % 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 box \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 will always be defined but could be empty \ifthenelse{\isundefined{\@mobile}}{}{\makenewline\mobilesymbol\@mobile}% \ifthenelse{\isundefined{\@phone}}{}{\makenewline\phonesymbol\@phone}% \ifthenelse{\isundefined{\@fax}}{}{\makenewline\faxsymbol\@fax}% \ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}% \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httplink{\@homepage}}% \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\ \@familyname}% \ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}% \end{minipage}% \hfill% % detailed information \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}\\[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 \makecvtitle \newlength{\baseletterheight} \settoheight{\baseletterheight}{\sectionstyle{o}} \setlength{\baseletterheight}{\baseletterheight-0.95ex} \renewcommand*{\section}[1]{% \par\addvspace{2.5ex}% \phantomsection{}% reset the anchor for hyperrefs \addcontentsline{toc}{section}{#1}% \parbox[t]{\hintscolumnwidth}{\strut\raggedleft\raisebox{\baseletterheight}{\color{color1}\rule{\hintscolumnwidth}{0.95ex}}}% \hspace{\separatorcolumnwidth}% \parbox[t]{\maincolumnwidth}{\strut\sectionstyle{#1}}% \par\nobreak\addvspace{1ex}\@afterheading}% to avoid a pagebreak after the heading \renewcommand*{\subsection}[1]{% \par\addvspace{1ex}% \phantomsection{}% reset the anchor for hyperrefs \addcontentsline{toc}{subsection}{#1}% \begin{tabular}{@{}p{\hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}p{\maincolumnwidth}@{}}% \raggedleft\hintstyle{} &{\strut\subsectionstyle{#1}}% \end{tabular}% \par\nobreak\addvspace{0.5ex}\@afterheading}% to avoid a pagebreak after the heading \renewcommand*{\cvitem}[3][.25em]{% \begin{tabular}{@{}p{\hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}p{\maincolumnwidth}@{}}% \raggedleft\hintstyle{#2} &{#3}% \end{tabular}% \par\addvspace{#1}} \renewcommand*{\cvdoubleitem}[5][.25em]{% \cvitem[#1]{#2}{% \begin{minipage}[t]{\doubleitemmaincolumnwidth}#3\end{minipage}% \hfill% fill of \separatorcolumnwidth \begin{minipage}[t]{\hintscolumnwidth}\raggedleft\hintstyle{#4}\end{minipage}% \hspace*{\separatorcolumnwidth}% \begin{minipage}[t]{\doubleitemmaincolumnwidth}#5\end{minipage}}} \renewcommand*{\cvlistitem}[2][.25em]{% \cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listitemmaincolumnwidth}#2\end{minipage}}} \renewcommand*{\cvlistdoubleitem}[3][.25em]{% \cvitem[#1]{}{\listitemsymbol\begin{minipage}[t]{\listdoubleitemmaincolumnwidth}#2\end{minipage}% \hfill% fill of \separatorcolumnwidth \ifthenelse{\equal{#3}{}}% {}% {\listitemsymbol\begin{minipage}[t]{\listdoubleitemmaincolumnwidth}#3\end{minipage}}}} \renewcommand*{\cventry}[7][.25em]{% \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}} \newbox{\cvitemwithcommentmainbox} \newlength{\cvitemwithcommentmainlength} \newlength{\cvitemwithcommentcommentlength} \renewcommand*{\cvitemwithcomment}[4][.25em]{% \savebox{\cvitemwithcommentmainbox}{{\bfseries#3}}% \setlength{\cvitemwithcommentmainlength}{\widthof{\usebox{\cvitemwithcommentmainbox}}}% \setlength{\cvitemwithcommentcommentlength}{\maincolumnwidth-\separatorcolumnwidth-\cvitemwithcommentmainlength}% \cvitem[#1]{#2}{% \begin{minipage}[t]{\cvitemwithcommentmainlength}\bfseries#3\end{minipage}% \hfill% fill of \separatorcolumnwidth \begin{minipage}[t]{\cvitemwithcommentcommentlength}\raggedleft\small\itshape#4\end{minipage}}} \renewenvironment{thebibliography}[1]% {% \bibliographyhead{\refname}% % \small% \begin{list}{\bibliographyitemlabel}% {% \setlength{\topsep}{0pt}% \setlength{\labelwidth}{\hintscolumnwidth}% \setlength{\labelsep}{\separatorcolumnwidth}% \leftmargin\labelwidth% \advance\leftmargin\labelsep% \@openbib@code% \usecounter{enumiv}% \let\p@enumiv\@empty% \renewcommand\theenumiv{\@arabic\c@enumiv}}% \sloppy\clubpenalty4000\widowpenalty4000% % \sfcode`\.\@m% % \sfcode `\=1000\relax% }% {% \def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}% \end{list}% } %------------------------------------------------------------------------------- % letter style definition %------------------------------------------------------------------------------- % commands \renewcommand*{\recomputeletterlengths}{% \recomputecvlengths% \setlength{\parskip}{6\p@}} \renewcommand*{\makelettertitle}{% % recompute lengths (in case we are switching from letter to resume, or vice versa) \recomputeletterlengths% % sender contact info \hfill% \begin{minipage}{.5\textwidth}% \raggedleft% \addressfont\textcolor{color2}{% {\bfseries\upshape\@firstname~\@familyname}\@firstdetailselementfalse% \ifthenelse{\isundefined{\@addressstreet}}{}{\makenewline\addresssymbol\@addressstreet% \ifthenelse{\equal{\@addresscity}{}}{}{\makenewline\@addresscity}}% \ifthenelse{\isundefined{\@mobile}}{}{\makenewline\mobilesymbol\@mobile}% \ifthenelse{\isundefined{\@phone}}{}{\makenewline\phonesymbol\@phone}% \ifthenelse{\isundefined{\@fax}}{}{\makenewline\faxsymbol\@fax}% \ifthenelse{\isundefined{\@email}}{}{\makenewline\emailsymbol\emaillink{\@email}}% \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\homepagesymbol\httplink{\@homepage}}% \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}% \end{minipage}\\[1em] % recipient block \begin{minipage}[t]{.5\textwidth} \raggedright% \addressfont% {\bfseries\upshape\@recipientname}\\% \@recipientaddress% \end{minipage} % date \hfill% US style % \\[1em]% UK style \@date\\[2em]% US informal style: "January 1, 1900"; UK formal style: "01/01/1900" % 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*{\makeletterclosing}{ \@closing\\[3em]% {\bfseries \@firstname~\@familyname}% \ifthenelse{\isundefined{\@enclosure}}{}{% \\% \vfill% {\color{color2}\itshape\enclname: \@enclosure}}} \endinput %% end of file `moderncvstyleclassic.sty'.