From 0e7c4deae1d24a03668f9705a75bbf8ffa2c4849 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 26 Mar 2012 23:18:00 +0000 Subject: moderncv 1.0 (26mar12) git-svn-id: svn://tug.org/texlive/trunk@25745 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/moderncv/moderncv.cls | 178 +++++++++++++-------- .../tex/latex/moderncv/moderncvcolorblack.sty | 2 +- .../tex/latex/moderncv/moderncvcolorblue.sty | 2 +- .../tex/latex/moderncv/moderncvcolorgreen.sty | 2 +- .../tex/latex/moderncv/moderncvcolorgrey.sty | 2 +- .../tex/latex/moderncv/moderncvcolororange.sty | 2 +- .../tex/latex/moderncv/moderncvcolorpurple.sty | 2 +- .../tex/latex/moderncv/moderncvcolorred.sty | 2 +- .../tex/latex/moderncv/moderncvcompatibility.sty | 7 +- .../tex/latex/moderncv/moderncvstylebanking.sty | 159 +++++++++++------- .../tex/latex/moderncv/moderncvstylecasual.sty | 130 +++++++++++---- .../tex/latex/moderncv/moderncvstyleclassic.sty | 124 +++++++++----- .../tex/latex/moderncv/moderncvstyleempty.sty | 2 +- .../tex/latex/moderncv/moderncvstyleoldstyle.sty | 150 +++++++++++------ 14 files changed, 517 insertions(+), 247 deletions(-) (limited to 'Master/texmf-dist/tex/latex/moderncv') diff --git a/Master/texmf-dist/tex/latex/moderncv/moderncv.cls b/Master/texmf-dist/tex/latex/moderncv/moderncv.cls index 5e5026d47e5..55fff7b754b 100644 --- a/Master/texmf-dist/tex/latex/moderncv/moderncv.cls +++ b/Master/texmf-dist/tex/latex/moderncv/moderncv.cls @@ -10,13 +10,7 @@ % identification %------------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{moderncv}[2012/02/06 v0.19 modern curriculum vitae document class] - - -%------------------------------------------------------------------------------- -% debugging -%------------------------------------------------------------------------------- -\newif\if@DEBUG\@DEBUGfalse +\ProvidesClass{moderncv}[2012/03/26 v1.0 modern curriculum vitae and letter document class] %------------------------------------------------------------------------------- @@ -96,10 +90,9 @@ % symbols like \Telefon, \Mobilefone, \Letter and \Email \RequirePackage{marvosym} -% hyper links +% hyper links (hyperref is loaded at the end of the preamble to pass options required by loaded packages such as CJK) \RequirePackage{url} \urlstyle{tt} -% load hyperref at the end of the preamble to pass options required by loaded packages (like CJK) \AtEndPreamble{ \@ifpackageloaded{CJK} {\RequirePackage[unicode]{hyperref}} @@ -131,6 +124,20 @@ \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt} \fancyhf{}} +% page numbers in footer if more than 1 page +\newif\if@displaypagenumbers\@displaypagenumberstrue +\newcommand*{\nopagenumbers}{\@displaypagenumbersfalse} +\AtEndPreamble{% + \AtBeginDocument{% + \if@displaypagenumbers% + \@ifundefined{r@lastpage}{}{% + \ifthenelse{\pageref{lastpage}>1}{% + \newlength{\pagenumberwidth}% + \settowidth{\pagenumberwidth}{\color{color2}\addressfont\itshape\strut\thepage/\pageref{lastpage}}% + \fancypagestyle{plain}{% + \fancyfoot[r]{\parbox{\pagenumberwidth}{\color{color2}\addressfont\itshape\strut\thepage/\pageref{lastpage}}}}% the parbox is required to ensure alignment with a possible center footer (e.g., as in the casual style) + \pagestyle{plain}}{}}% + \AtEndDocument{\label{lastpage}}\else\fi}} \pagestyle{plain} % lengths calculations @@ -167,14 +174,30 @@ %\setlength\doublerulesep{2\p@} %\setlength\tabbingsep{\labelsep} -\pagestyle{empty} \raggedbottom \onecolumn %------------------------------------------------------------------------------- -% design commands definitions +% overall design commands definitions %------------------------------------------------------------------------------- +% elements +\newcommand*{\firstname}[1]{\def\@firstname{#1}} +\newcommand*{\familyname}[1]{\def\@familyname{#1}} +\renewcommand*{\title}[1]{\def\@title{#1}} +\newcommand*{\address}[2]{\def\@addressstreet{#1}\def\@addresscity{#2}} +\newcommand*{\mobile}[1]{\def\@mobile{#1}} +\newcommand*{\phone}[1]{\def\@phone{#1}} +\renewcommand*{\fax}[1]{\def\@fax{#1}} +\newcommand*{\email}[1]{\def\@email{#1}} +\newcommand*{\homepage}[1]{\def\@homepage{#1}} + +% colors +\definecolor{color0}{rgb}{0,0,0}% main default color, normally left to black +\definecolor{color1}{rgb}{0,0,0}% primary theme color +\definecolor{color2}{rgb}{0,0,0}% secondary theme color +\definecolor{color3}{rgb}{0,0,0}% tertiary theme color + % symbols % itemize labels (the struts were added to correct inter-item spacing (works for single line items, until a solution is found for multi-line ones...) \newcommand*{\labelitemi}{\strut\textcolor{color1}{\Neutral}}% alternative" \fontencoding{U}\fontfamily{ding}\selectfont\tiny\symbol{'102} @@ -195,22 +218,13 @@ \newcommand*{\emailsymbol}{\Letter~} \newcommand*{\homepagesymbol}{{\Large\ComputerMouse}~} -% colors -\definecolor{color0}{rgb}{0,0,0}% main default color, normally left to black -\definecolor{color1}{rgb}{0,0,0}% primary theme color -\definecolor{color2}{rgb}{0,0,0}% secondary theme color -\definecolor{color3}{rgb}{0,0,0}% tertiary theme color - % fonts -\newcommand*{\namefont}{} -\newcommand*{\titlefont}{} -\newcommand*{\addressfont}{} -\newcommand*{\quotefont}{} -\newcommand*{\sectionfont}{} -\newcommand*{\subsectionfont}{} -\newcommand*{\hintfont}{} \AtBeginDocument{\normalfont\color{color0}} +% makes the footer (normally used both for the resume and the letter) +% usage: \makefooter +\newcommand*{\makefooter}{}% + % loads a style scheme \newcommand*{\moderncvstyle}[1]{ \RequirePackage{moderncvstyle#1}} @@ -219,70 +233,85 @@ \newcommand*{\moderncvcolor}[1]{ \RequirePackage{moderncvcolor#1}} -% recompute all automatic lengths -\newcommand*{\recomputelengths}{} +% recomputes all automatic lengths +\newcommand*{\recomputelengths}{\recomputecvlengths} \AtBeginDocument{\recomputelengths{}} +% creates a length if not yet defined +\newcommand*{\@initializelength}[1]{% + \ifdefined#1\else\newlength{#1}\fi} + %------------------------------------------------------------------------------- -% structure commands definitions +% resume design commands definitions %------------------------------------------------------------------------------- -% cv elements -\newcommand*{\firstname}[1]{\def\@firstname{#1}} -\newcommand*{\familyname}[1]{\def\@familyname{#1}} -\renewcommand*{\title}[1]{\def\@title{#1}} -\newcommand*{\address}[2]{\def\@addressstreet{#1}\def\@addresscity{#2}} -\newcommand*{\mobile}[1]{\def\@mobile{#1}} -\newcommand*{\phone}[1]{\def\@phone{#1}} -\renewcommand*{\fax}[1]{\def\@fax{#1}} -\newcommand*{\email}[1]{\def\@email{#1}} -\newcommand*{\homepage}[1]{\def\@homepage{#1}} +% elements \newcommand*{\extrainfo}[1]{\def\@extrainfo{#1}} \newcommandx*{\photo}[3][1=64pt,2=0.4pt,usedefault]{\def\@photowidth{#1}\def\@photoframewidth{#2}\def\@photo{#3}}% the 1st (optional) argument is the width of the photo, the 2nd (optional) argument is the thickness of the frame around it. \newcommand*{\quote}[1]{\def\@quote{#1}} -% makes the cv title -% usage: \maketitle -\newcommand*{\maketitle}{}% -\title{}% to avoid LaTeX complaining that \maketitle is a called without first a call to \title +% fonts +\newcommand*{\namefont}{} +\newcommand*{\titlefont}{} +\newcommand*{\addressfont}{} +\newcommand*{\quotefont}{} +\newcommand*{\sectionfont}{} +\newcommand*{\subsectionfont}{} +\newcommand*{\hintfont}{} -% makes the cv footer -% usage: \makefooter -\newcommand*{\makefooter} +% recompute all resume lengths +\newcommand*{\recomputecvlengths}{} -% makes a cv section +% internal maketitle command to issue a new line only when required +\newif\if@firstdetailselement\@firstdetailselementtrue +\newcommand*{\makenewline}{ + \if@firstdetailselement% + \strut% to ensure baseline alignment, e.g. with when put in the margin vs sections that also contains a \strut + \else% + \\\fi% + \@firstdetailselementfalse} + +% makes the resume title +% usage: \makecvtitle +\newcommand*{\makecvtitle}{}% + +% makes the resume footer +% usage: \makecvfooter +\newcommand*{\makecvfooter}{\makefooter}% + +% makes a resume section % usage: \section{} \newcommand*{\section}[1]{} % starred variant, which is identical but defined to allow its use (e.g. for natbib compatibility, who uses \section*{} for the bibliography header) \RequirePackage{suffix} \AtBeginDocument{\WithSuffix\newcommand\section*{\section}} -% makes a cv subsection +% makes a resume subsection % usage: \subsection{title} \newcommand*{\subsection}[1]{} \AtBeginDocument{\WithSuffix\newcommand\subsection*{\subsection}} -% makes a cv line with a header and a corresponding text +% makes a resume line with a header and a corresponding text % usage: \cvitem[spacing]{header}{text} \newcommand*{\cvitem}[3][.25em]{} -% makes a cv line 2 headers and their corresponding text +% makes a resume line 2 headers and their corresponding text % usage: \cvdoubleitem[spacing]{header1}{text1}{header2}{text2} \newcommand*{\cvdoubleitem}[5][.25em]{} -% makes a cv line with a list item +% makes a resume line with a list item % usage: \cvlistitem[label]{item} \newcommand*{\cvlistitem}[2][\listitemsymbol]{} -% makes a cv line with 2 list items +% makes a resume line with 2 list items % usage: \cvlistdoubleitem[label]{item1}{item2} \newcommand*{\cvlistdoubleitem}[3][\listitemsymbol]{} -% makes a typical cv job / education entry +% makes a typical resume job / education entry % usage: \cventry[spacing]{years}{degree/job title}{institution/employer}{localization}{optionnal: grade/...}{optional: comment/job description} \newcommand*{\cventry}[7][.25em]{} -% makes a cv entry with a proficiency comment +% makes a resume entry with a proficiency comment % usage: \cvitemwithcomment[spacing]{header}{text}{comment} \newcommand*{\cvitemwithcomment}[4][.25em]{} @@ -307,23 +336,8 @@ {\href{mailto:#2}{#2}}% {\href{mailto:#2}{#1}}} -% page numbers in footer if more than 1 page -\newif\if@displaypagenumbers\@displaypagenumberstrue -\newcommand*{\nopagenumbers}{\@displaypagenumbersfalse} -\AtEndPreamble{% - \AtBeginDocument{% - \if@displaypagenumbers% - \@ifundefined{r@lastpage}{}{% - \ifthenelse{\pageref{lastpage}>1}{% - \newlength{\pagenumberwidth}% - \settowidth{\pagenumberwidth}{\color{color2}\addressfont\itshape\strut\thepage/\pageref{lastpage}}% - \fancypagestyle{plain}{% - \fancyfoot[r]{\parbox{\pagenumberwidth}{\color{color2}\addressfont\itshape\strut\thepage/\pageref{lastpage}}}}% the parbox is required to ensure alignment with a possible center footer (e.g., as in the casual style) - \pagestyle{plain}}{}}% - \AtEndDocument{\label{lastpage}}\else\fi}} - % thebibliography environment, for use with BibTeX and possibly multibib -\newcommand{\refname}{Publications} +\newcommand*{\refname}{Publications} \newlength{\bibindent} \setlength{\bibindent}{1.5em} % bibliography item label @@ -334,7 +348,7 @@ \AtEndPreamble{\@ifpackageloaded{multibib}{\renewcommand*{\bibliographyhead}[1]{\subsection{#1}}}{}} % thebibliography environment definition \newenvironment{thebibliography}[1]{}{} -\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em} +\newcommand*{\newblock}{\hskip .11em\@plus.33em\@minus.07em} \let\@openbib@code\@empty % itemize, enumerate and description environment @@ -383,6 +397,32 @@ % \parbox[#1]{\widthofautobox{#2}}{#2}} +%------------------------------------------------------------------------------- +% letter design commands definitions +%------------------------------------------------------------------------------- +% elements +\newcommand*{\recipient}[2]{\def\@recipientname{#1}\def\@recipientaddress{#2}} +\renewcommand*{\date}[1]{\def\@date{#1}} +\newcommand*{\opening}[1]{\def\@opening{#1}} +\newcommand*{\closing}[1]{\def\@closing{#1}} +\newcommand*{\enclosure}[1]{\def\@enclosure{#1}} + +% recompute all letter lengths +\newcommand*{\recomputeletterlengths}{} + +% makes the letter title +% usage: \makelettertitle +\newcommand*{\makelettertitle}{}% + +% makes the letter footer +% usage: \makeletterfooter +\newcommand*{\makeletterfooter}{\makefooter}% + +% makes the letter closing +% usage: \makeletterclosing +\newcommand*{\makeletterclosing}{}% + + \endinput diff --git a/Master/texmf-dist/tex/latex/moderncv/moderncvcolorblack.sty b/Master/texmf-dist/tex/latex/moderncv/moderncvcolorblack.sty index e3c7d5c576e..762b9b7f6c2 100644 --- a/Master/texmf-dist/tex/latex/moderncv/moderncvcolorblack.sty +++ b/Master/texmf-dist/tex/latex/moderncv/moderncvcolorblack.sty @@ -10,7 +10,7 @@ % identification %------------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{moderncvcolorblack}[2012/02/06 v0.19 modern curriculum vitae color scheme: black] +\ProvidesPackage{moderncvcolorblack}[2012/03/26 v1.0 modern curriculum vitae and letter color scheme: black] %------------------------------------------------------------------------------- diff --git a/Master/texmf-dist/tex/latex/moderncv/moderncvcolorblue.sty b/Master/texmf-dist/tex/latex/moderncv/moderncvcolorblue.sty index 67e97078131..8bd2f9d2c58 100644 --- a/Master/texmf-dist/tex/latex/moderncv/moderncvcolorblue.sty +++ b/Master/texmf-dist/tex/latex/moderncv/moderncvcolorblue.sty @@ -10,7 +10,7 @@ % identification %------------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{moderncvcolorblue}[2012/02/06 v0.19 modern curriculum vitae color scheme: blue] +\ProvidesPackage{moderncvcolorblue}[2012/03/26 v1.0 modern curriculum vitae and letter color scheme: blue] %------------------------------------------------------------------------------- diff --git a/Master/texmf-dist/tex/latex/moderncv/moderncvcolorgreen.sty b/Master/texmf-dist/tex/latex/moderncv/moderncvcolorgreen.sty index 847bf62d5ae..6f64ac84bc5 100644 --- a/Master/texmf-dist/tex/latex/moderncv/moderncvcolorgreen.sty +++ b/Master/texmf-dist/tex/latex/moderncv/moderncvcolorgreen.sty @@ -10,7 +10,7 @@ % identification %------------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{moderncvcolorgreen}[2012/02/06 v0.19 modern curriculum vitae color scheme: green] +\ProvidesPackage{moderncvcolorgreen}[2012/03/26 v1.0 modern curriculum vitae and letter color scheme: green] %------------------------------------------------------------------------------- diff --git a/Master/texmf-dist/tex/latex/moderncv/moderncvcolorgrey.sty b/Master/texmf-dist/tex/latex/moderncv/moderncvcolorgrey.sty index 90e9d6e0f3b..4b85eb3a67b 100644 --- a/Master/texmf-dist/tex/latex/moderncv/moderncvcolorgrey.sty +++ b/Master/texmf-dist/tex/latex/moderncv/moderncvcolorgrey.sty @@ -10,7 +10,7 @@ % identification %------------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{moderncvcolorgrey}[2012/02/06 v0.19 modern curriculum vitae color scheme: grey] +\ProvidesPackage{moderncvcolorgrey}[2012/03/26 v1.0 modern curriculum vitae and letter color scheme: grey] %------------------------------------------------------------------------------- diff --git a/Master/texmf-dist/tex/latex/moderncv/moderncvcolororange.sty b/Master/texmf-dist/tex/latex/moderncv/moderncvcolororange.sty index 7a4639257bc..8e26eae3e04 100644 --- a/Master/texmf-dist/tex/latex/moderncv/moderncvcolororange.sty +++ b/Master/texmf-dist/tex/latex/moderncv/moderncvcolororange.sty @@ -10,7 +10,7 @@ % identification %------------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{moderncvcolororange}[2012/02/06 v0.19 modern curriculum vitae color scheme: orange] +\ProvidesPackage{moderncvcolororange}[2012/03/26 v1.0 modern curriculum vitae and letter color scheme: orange] %------------------------------------------------------------------------------- diff --git a/Master/texmf-dist/tex/latex/moderncv/moderncvcolorpurple.sty b/Master/texmf-dist/tex/latex/moderncv/moderncvcolorpurple.sty index 8e761f4de6b..ed0e3988960 100644 --- a/Master/texmf-dist/tex/latex/moderncv/moderncvcolorpurple.sty +++ b/Master/texmf-dist/tex/latex/moderncv/moderncvcolorpurple.sty @@ -10,7 +10,7 @@ % identification %------------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{moderncvcolorpurple}[2012/02/06 v0.19 modern curriculum vitae color scheme: purple] +\ProvidesPackage{moderncvcolorpurple}[2012/03/26 v1.0 modern curriculum vitae and letter color scheme: purple] %------------------------------------------------------------------------------- diff --git a/Master/texmf-dist/tex/latex/moderncv/moderncvcolorred.sty b/Master/texmf-dist/tex/latex/moderncv/moderncvcolorred.sty index 1516f4febac..e3d8203c014 100644 --- a/Master/texmf-dist/tex/latex/moderncv/moderncvcolorred.sty +++ b/Master/texmf-dist/tex/latex/moderncv/moderncvcolorred.sty @@ -10,7 +10,7 @@ % identification %------------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{moderncvcolorred}[2012/02/06 v0.19 modern curriculum vitae color scheme: red] +\ProvidesPackage{moderncvcolorred}[2012/03/26 v1.0 modern curriculum vitae and letter color scheme: red] %------------------------------------------------------------------------------- diff --git a/Master/texmf-dist/tex/latex/moderncv/moderncvcompatibility.sty b/Master/texmf-dist/tex/latex/moderncv/moderncvcompatibility.sty index 8d196224716..3997bcf49bf 100644 --- a/Master/texmf-dist/tex/latex/moderncv/moderncvcompatibility.sty +++ b/Master/texmf-dist/tex/latex/moderncv/moderncvcompatibility.sty @@ -10,7 +10,7 @@ % identification %------------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{moderncvcompatibility}[2012/02/06 v0.19 modern curriculum vitae compatibility patches] +\ProvidesPackage{moderncvcompatibility}[2012/03/26 v1.0 modern curriculum vitae and letter compatibility patches] %------------------------------------------------------------------------------- @@ -74,6 +74,11 @@ \moderncvcolor{#1}% \moderncvstyle{#2}} +% compatibility with versions <= 0.19 +\newcommand*{\maketitle}{\makecvtitle}% +\title{}% to avoid LaTeX complaining that \maketitle is a called without first a call to \title + + \endinput diff --git a/Master/texmf-dist/tex/latex/moderncv/moderncvstylebanking.sty b/Master/texmf-dist/tex/latex/moderncv/moderncvstylebanking.sty index e22c47fe577..a8ca0e9eb89 100644 --- a/Master/texmf-dist/tex/latex/moderncv/moderncvstylebanking.sty +++ b/Master/texmf-dist/tex/latex/moderncv/moderncvstylebanking.sty @@ -10,7 +10,7 @@ % identification %------------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{moderncvstylebanking}[2012/02/06 v0.19 modern curriculum vitae scheme: banking] +\ProvidesPackage{moderncvstylebanking}[2012/03/26 v1.0 modern curriculum vitae and letter style scheme: banking] %------------------------------------------------------------------------------- @@ -26,12 +26,60 @@ %------------------------------------------------------------------------------- -% style definition +% overall style definition +%------------------------------------------------------------------------------- +% commands +\newcommand*{\maketitlesymbol}{% + {~~~\textbullet~~~}}% \textbullet forces the use of the CMSY font, even when latin modern fonts are used :( +% 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{\maketitlebox}% +\newsavebox{\maketitletempbox}% +\newlength{\maketitlewidth}% +\newlength{\maketitleboxwidth}% +% adds an element to the maketitle, separated by maketitlesymbol +% usage: \addtomaketitle[maketitlesymbol]{element} +\newcommand*{\addtomaketitle}[2][\maketitlesymbol]{% + \savebox{\maketitletempbox}{\usebox{\maketitlebox}#1#2}% + \settowidth{\maketitleboxwidth}{\usebox{\maketitletempbox}}% + \ifnum\maketitleboxwidth<\maketitlewidth% + \savebox{\maketitlebox}{\usebox{\maketitletempbox}} + \else% + \flushmaketitle{}\\% + \savebox{\maketitlebox}{#2}% + \savebox{\maketitletempbox}{#2}\fi} +% internal command to flush the maketitle +\newcommand*{\flushmaketitle}{% + \strut\usebox{\maketitlebox}% + \savebox{\maketitlebox}{}% + \savebox{\maketitletempbox}{}} +\renewcommand*{\maketitle}{% + \setlength{\maketitlewidth}{0.8\textwidth}% + \hfil% + \parbox{\maketitlewidth}{% + \centering% + % name (title is not visible) + \namestyle{\@firstname~\@familyname}\\% + % detailed information + \addressfont\color{color2}% + \ifthenelse{\isundefined{\@addressstreet}}{}{\addtomaketitle[]{\addresssymbol\@addressstreet}% + \ifthenelse{\equal{\@addresscity}{}}{}{\addtomaketitle[~--~]{\@addresscity}}\flushmaketitle}% if \addresstreet is defined, \addresscity will always be defined but could be empty + \ifthenelse{\isundefined{\@mobile}}{}{\addtomaketitle[]{\mobilesymbol\@mobile}}% + \ifthenelse{\isundefined{\@phone}}{}{\addtomaketitle{\phonesymbol\@phone}}% + \ifthenelse{\isundefined{\@fax}}{}{\addtomaketitle{\faxsymbol\@fax}}% + \ifthenelse{\isundefined{\@email}}{}{\addtomaketitle{\emailsymbol\emaillink{\@email}}}% + \ifthenelse{\isundefined{\@homepage}}{}{\addtomaketitle{\homepagesymbol\httplink{\@homepage}}}% + \ifthenelse{\isundefined{\@extrainfo}}{}{\addtomaketitle{\@extrainfo}}% + \flushmaketitle}\\[2.5em]}% need to force a \par after this to avoid weird spacing bug at the first section if no blank line is left after \maketitle + + +%------------------------------------------------------------------------------- +% resume style definition %------------------------------------------------------------------------------- % fonts \renewcommand*{\namefont}{\Huge\bfseries\upshape} \renewcommand*{\titlefont}{\LARGE\mdseries\slshape} -\renewcommand*{\addressfont}{\normalsize\mdseries\upshape} +\renewcommand*{\addressfont}{\small\mdseries\upshape} \renewcommand*{\quotefont}{\large\slshape} \renewcommand*{\sectionfont}{\Large\bfseries\upshape} \renewcommand*{\subsectionfont}{\large\upshape\fontseries{sb}\selectfont} @@ -46,7 +94,7 @@ \newcommand*{\subsectionstyle}[1]{{\subsectionfont\textcolor{color1}{#1}}} \newcommand*{\hintstyle}[1]{{\hintfont\textcolor{color0}{#1}}} -% length used +% lengths \newlength{\quotewidth} \newlength{\hintscolumnwidth} \setlength{\hintscolumnwidth}{0.3\textwidth}% @@ -59,7 +107,7 @@ \newlength{\listitemmaincolumnwidth} \newlength{\listdoubleitemmaincolumnwidth} -% recompute all the lengths that depends on the text width +% commands \renewcommand*{\recomputelengths}{% \setlength{\quotewidth}{0.65\textwidth}% % main lenghts @@ -75,58 +123,19 @@ % fancyhdr lengths \renewcommand{\headwidth}{\textwidth}} -% cv footer -\newcommand*{\maketitlesymbol}{% - {~~~\textbullet~~~}}% \textbullet forces the use of the CMSY font, even when latin modern fonts are used :( -% 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{\maketitlebox}% -\newsavebox{\maketitletempbox}% -\newlength{\maketitlewidth}% -\newlength{\maketitleboxwidth}% -% adds an element to the maketitle, separated by maketitlesymbol -% usage: \addtomaketitle[maketitlesymbol]{element} -\newcommand*{\addtomaketitle}[2][\maketitlesymbol]{% - \savebox{\maketitletempbox}{\usebox{\maketitlebox}#1#2}% - \settowidth{\maketitleboxwidth}{\usebox{\maketitletempbox}}% - \ifnum\maketitleboxwidth<\maketitlewidth% - \savebox{\maketitlebox}{\usebox{\maketitletempbox}} - \else% - \flushmaketitle{}\\% - \savebox{\maketitlebox}{#2}% - \savebox{\maketitletempbox}{#2}\fi} -% internal command to flush the maketitle -\newcommand*{\flushmaketitle}{% - \strut\usebox{\maketitlebox}% - \savebox{\maketitlebox}{}% - \savebox{\maketitletempbox}{}} -\renewcommand*{\maketitle}{% - \setlength{\maketitlewidth}{0.8\textwidth}% - \hfil% - \parbox{\maketitlewidth}{% - \centering% - % name (title is not visible) - \namestyle{\@firstname~\@familyname}\\% - % detailed information - \color{color2}\addressfont% - \ifthenelse{\isundefined{\@addressstreet}}{}{\addtomaketitle[]{\addresssymbol\@addressstreet}% - \ifthenelse{\equal{\@addresscity}{}}{}{\addtomaketitle[~--~]{\@addresscity}}\flushmaketitle}% if \addresstreet is defined, \addresscity will always be defined but could be empty - \ifthenelse{\isundefined{\@mobile}}{}{\addtomaketitle[]{\mobilesymbol\@mobile}}% - \ifthenelse{\isundefined{\@phone}}{}{\addtomaketitle{\phonesymbol\@phone}}% - \ifthenelse{\isundefined{\@fax}}{}{\addtomaketitle{\faxsymbol\@fax}}% - \ifthenelse{\isundefined{\@email}}{}{\addtomaketitle{\emailsymbol\emaillink{\@email}}}% - \ifthenelse{\isundefined{\@homepage}}{}{\addtomaketitle{\homepagesymbol\httplink{\@homepage}}}% - \ifthenelse{\isundefined{\@extrainfo}}{}{\addtomaketitle{\@extrainfo}}% - \flushmaketitle}\\[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*{\makecvtitle}{% + % recompute lengths (in case we are switching from letter to resume, or vice versa) + \recomputecvlengths% + \maketitle% + % 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*{\section}[1]{% \par\addvspace{2.5ex}% - \phantomsection{}% + \phantomsection{}% reset the anchor for hyperrefs \addcontentsline{toc}{section}{#1}% \strut\sectionstyle{#1}% {\color{color1}\hrule}% @@ -206,6 +215,48 @@ \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 block + \maketitle% + \par% + % 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*{\makeletterclosing}{ + \@closing\\[3em]% + {\bfseries \@firstname~\@familyname}% + \ifthenelse{\isundefined{\@enclosure}}{}{% + \\% + \vfill% + {\color{color2}\itshape Enclosure: \@enclosure}}} + + \endinput diff --git a/Master/texmf-dist/tex/latex/moderncv/moderncvstylecasual.sty b/Master/texmf-dist/tex/latex/moderncv/moderncvstylecasual.sty index e4d6a617545..861ecccbe36 100644 --- a/Master/texmf-dist/tex/latex/moderncv/moderncvstylecasual.sty +++ b/Master/texmf-dist/tex/latex/moderncv/moderncvstylecasual.sty @@ -10,7 +10,7 @@ % identification %------------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{moderncvstylecasual}[2012/02/06 v0.19 modern curriculum vitae style scheme: casual] +\ProvidesPackage{moderncvstylecasual}[2012/03/26 v1.0 modern curriculum vitae and letter style scheme: casual] %------------------------------------------------------------------------------- @@ -25,13 +25,9 @@ %------------------------------------------------------------------------------- -% style scheme definition +% overall style definition %------------------------------------------------------------------------------- -% fonts -\renewcommand*{\namefont}{\fontsize{38}{40}\mdseries\upshape} -\renewcommand*{\addressfont}{\small\mdseries\slshape} - -% cv footer +% commands % footer symbol used to separate footer elements \newcommand*{\footersymbol}{% {~~~\textbullet~~~}}% \textbullet forces the use of the CMSY font, even when latin modern fonts are used :( @@ -54,7 +50,7 @@ \savebox{\footerbox}{\usebox{\footertempbox}}% \@firstfooterelementfalse% \else% - \flushfooter{}\\% + \flushfooter\\% \savebox{\footerbox}{#2}% \savebox{\footertempbox}{#2}% \@firstfooterelementfalse\fi} @@ -63,29 +59,22 @@ \strut\usebox{\footerbox}% \savebox{\footerbox}{}% \savebox{\footertempbox}{}} -\renewcommand*{\makefooter}{% - \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}} -% maketitle -\renewcommand*{\maketitle}{% - \makefooter{}% - \newbox{\maketitlepicturebox}% - \savebox{\maketitlepicturebox}{% + +%------------------------------------------------------------------------------- +% 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}}% {}% {% @@ -93,9 +82,11 @@ \ifdim\@photoframewidth=0pt% \setlength{\fboxsep}{0pt}\fi% {\color{color1}\framebox{\includegraphics[width=\@photowidth]{\@photo}}}}}% - \usebox{\maketitlepicturebox}% - \newlength{\maketitlepicturewidth}\settowidth{\maketitlepicturewidth}{\usebox{\maketitlepicturebox}}% - \parbox[b]{\textwidth-\maketitlepicturewidth}{% + \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 @@ -106,6 +97,79 @@ {{\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 diff --git a/Master/texmf-dist/tex/latex/moderncv/moderncvstyleclassic.sty b/Master/texmf-dist/tex/latex/moderncv/moderncvstyleclassic.sty index 2ee5989eb25..bb9d6c13f47 100644 --- a/Master/texmf-dist/tex/latex/moderncv/moderncvstyleclassic.sty +++ b/Master/texmf-dist/tex/latex/moderncv/moderncvstyleclassic.sty @@ -10,7 +10,7 @@ % identification %------------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{moderncvstyleclassic}[2012/02/06 v0.19 modern curriculum vitae style scheme: classic] +\ProvidesPackage{moderncvstyleclassic}[2012/03/26 v1.0 modern curriculum vitae and letter style scheme: classic] %------------------------------------------------------------------------------- @@ -24,7 +24,12 @@ %------------------------------------------------------------------------------- -% style scheme definition +% overall style definition +%------------------------------------------------------------------------------- + + +%------------------------------------------------------------------------------- +% resume style definition %------------------------------------------------------------------------------- % fonts \renewcommand*{\namefont}{\fontsize{34}{36}\mdseries\upshape} @@ -44,7 +49,7 @@ \newcommand*{\subsectionstyle}[1]{{\subsectionfont\textcolor{color1}{#1}}} \newcommand*{\hintstyle}[1]{{\hintfont\textcolor{color0}{#1}}} -% length used +% lengths \newlength{\quotewidth} \newlength{\hintscolumnwidth} \setlength{\hintscolumnwidth}{0.175\textwidth} @@ -57,8 +62,8 @@ \newlength{\listitemmaincolumnwidth} \newlength{\listdoubleitemmaincolumnwidth} -% recompute all the lengths that depends on the text width -\renewcommand*{\recomputelengths}{% +% commands +\renewcommand*{\recomputecvlengths}{% \setlength{\quotewidth}{0.65\textwidth}% % main lenghts \setlength{\maincolumnwidth}{\textwidth-\separatorcolumnwidth-\hintscolumnwidth}% @@ -73,36 +78,30 @@ % fancyhdr lengths \renewcommand{\headwidth}{\textwidth}} - % optional maketitle width to force a certain width (if set to 0pt, the width is calculated automatically) -\newlength{\maketitlenamewidth} -\setlength{\maketitlenamewidth}{0pt}% dummy value -% internal maketitle command to issue a new line only when required -\newif\if@firstdetailselement\@firstdetailselementtrue -\newcommand*{\maketitledetailsnewline}{ - \if@firstdetailselement% - \else% - \\[.2em]\fi% - \@firstdetailselementfalse} -\renewcommand*{\maketitle}{% +\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{\maketitledetailsbox}% - \savebox{\maketitledetailsbox}{% + \newbox{\makecvtitledetailsbox}% + \savebox{\makecvtitledetailsbox}{% \addressfont\color{color2}% \begin{tabular}[b]{@{}r@{}}% - \ifthenelse{\isundefined{\@addressstreet}}{}{\maketitledetailsnewline\addresssymbol\@addressstreet% - \ifthenelse{\equal{\@addresscity}{}}{}{\maketitledetailsnewline\@addresscity}}% if \addresstreet is defined, \addresscity will always be defined but could be empty - \ifthenelse{\isundefined{\@mobile}}{}{\maketitledetailsnewline\mobilesymbol\@mobile}% - \ifthenelse{\isundefined{\@phone}}{}{\maketitledetailsnewline\phonesymbol\@phone}% - \ifthenelse{\isundefined{\@fax}}{}{\maketitledetailsnewline\faxsymbol\@fax}% - \ifthenelse{\isundefined{\@email}}{}{\maketitledetailsnewline\emailsymbol\emaillink{\@email}}% - \ifthenelse{\isundefined{\@homepage}}{}{\maketitledetailsnewline\homepagesymbol\httplink{\@homepage}}% - \ifthenelse{\isundefined{\@extrainfo}}{}{\maketitledetailsnewline\@extrainfo}% + \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 picture box - \newbox{\maketitlepicturebox}% - \savebox{\maketitlepicturebox}{% + \newbox{\makecvtitlepicturebox}% + \savebox{\makecvtitlepicturebox}{% \ifthenelse{\isundefined{\@photo}}% {}% {% @@ -113,25 +112,25 @@ \setlength{\fboxsep}{0pt}\fi% \framebox{\includegraphics[width=\@photowidth]{\@photo}}}}% % name and title - \newlength{\maketitledetailswidth}\settowidth{\maketitledetailswidth}{\usebox{\maketitledetailsbox}}% - \newlength{\maketitlepicturewidth}\settowidth{\maketitlepicturewidth}{\usebox{\maketitlepicturebox}}% - \ifthenelse{\lengthtest{\maketitlenamewidth=0pt}}% check for dummy value (equivalent to \ifdim\maketitlenamewidth=0pt) - {\setlength{\maketitlenamewidth}{\textwidth-\maketitledetailswidth-\maketitlepicturewidth}}% + \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]{\maketitlenamewidth}% + \begin{minipage}[b]{\makecvtitlenamewidth}% \namestyle{\@firstname\ \@familyname}% \ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}% \end{minipage}% \hfill% % detailed information - \llap{\usebox{\maketitledetailsbox}}% \llap is used to suppress the width of the box, allowing overlap if the value of maketitlenamewidth is forced + \llap{\usebox{\makecvtitledetailsbox}}% \llap is used to suppress the width of the box, allowing overlap if the value of makecvtitlenamewidth is forced % optional photo - \usebox{\maketitlepicturebox}\\[2.5em]% + \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 \maketitle + \par}% to avoid weird spacing bug at the first section if no blank line is left after \makecvtitle \newlength{\baseletterheight} \settoheight{\baseletterheight}{\sectionstyle{o}} @@ -225,6 +224,59 @@ } +%------------------------------------------------------------------------------- +% 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 + \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*{\makeletterclosing}{ + \@closing\\[3em]% + {\bfseries \@firstname~\@familyname}% + \ifthenelse{\isundefined{\@enclosure}}{}{% + \\% + \vfill% + {\color{color2}\itshape Enclosure: \@enclosure}}} + + \endinput diff --git a/Master/texmf-dist/tex/latex/moderncv/moderncvstyleempty.sty b/Master/texmf-dist/tex/latex/moderncv/moderncvstyleempty.sty index ab4fc99d13e..c11dc6188d0 100644 --- a/Master/texmf-dist/tex/latex/moderncv/moderncvstyleempty.sty +++ b/Master/texmf-dist/tex/latex/moderncv/moderncvstyleempty.sty @@ -10,7 +10,7 @@ % identification %------------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{moderncvstyleempty}[2012/02/06 v0.19 modern curriculum vitae scheme: empty] +\ProvidesPackage{moderncvstyleempty}[2012/03/26 v1.0 modern curriculum vitae scheme: empty] %------------------------------------------------------------------------------- diff --git a/Master/texmf-dist/tex/latex/moderncv/moderncvstyleoldstyle.sty b/Master/texmf-dist/tex/latex/moderncv/moderncvstyleoldstyle.sty index 9877e45d971..3718c48c116 100644 --- a/Master/texmf-dist/tex/latex/moderncv/moderncvstyleoldstyle.sty +++ b/Master/texmf-dist/tex/latex/moderncv/moderncvstyleoldstyle.sty @@ -10,12 +10,14 @@ % identification %------------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{moderncvstyleoldstyle}[2012/02/06 v0.19 modern curriculum vitae style: oldstyle] +\ProvidesPackage{moderncvstyleoldstyle}[2012/03/26 v1.0 modern curriculum vitae and letter style scheme: oldstyle] %------------------------------------------------------------------------------- % required packages %------------------------------------------------------------------------------- +% change the layout of the page on the fly, for resume or letter layout +\RequirePackage{changepage} %------------------------------------------------------------------------------- @@ -24,12 +26,27 @@ %------------------------------------------------------------------------------- -% style definition +% overall style definition %------------------------------------------------------------------------------- % fonts \IfFileExists{kurier.sty} {\RequirePackage[light,math]{kurier}} {} + +% symbols +\renewcommand*{\listitemsymbol}{\labelitemi~} +\renewcommand*{\addresssymbol}{} +\renewcommand*{\mobilesymbol}{\textbf{M}~} +\renewcommand*{\phonesymbol}{\textbf{T}~} +\renewcommand*{\faxsymbol}{\textbf{F}~} +\renewcommand*{\emailsymbol}{\textbf{E}~} +\renewcommand*{\homepagesymbol}{} + + +%------------------------------------------------------------------------------- +% resume style definition +%------------------------------------------------------------------------------- +% fonts \renewcommand*{\namefont}{\fontsize{34}{36}\mdseries\upshape} \renewcommand*{\titlefont}{\LARGE\mdseries\slshape} \renewcommand*{\addressfont}{\small\mdseries} @@ -47,16 +64,7 @@ \newcommand*{\subsectionstyle}[1]{{\subsectionfont\textcolor{color1}{#1}}} \newcommand*{\hintstyle}[1]{{\hintfont\textcolor{color0}{#1}}} -% symbols -\renewcommand*{\listitemsymbol}{\labelitemi~} -\renewcommand*{\addresssymbol}{} -\renewcommand*{\mobilesymbol}{\textbf{M}~} -\renewcommand*{\phonesymbol}{\textbf{T}~} -\renewcommand*{\faxsymbol}{\textbf{F}~} -\renewcommand*{\emailsymbol}{\textbf{E}~} -\renewcommand*{\homepagesymbol}{} - -% length used +% lengths \newlength{\quotewidth} \newlength{\hintscolumnwidth} \setlength{\hintscolumnwidth}{0.3\textwidth}% @@ -69,8 +77,8 @@ \newlength{\listitemmaincolumnwidth} \newlength{\listdoubleitemmaincolumnwidth} -% recompute all the lengths that depends on the text width -\renewcommand*{\recomputelengths}{% +% commands +\renewcommand*{\recomputecvlengths}{% \setlength{\quotewidth}{0.65\textwidth}% % main lenghts \setlength{\maincolumnwidth}{\textwidth-\hintscolumnwidth-\separatorcolumnwidth}% @@ -85,27 +93,22 @@ % fancyhdr lengths \renewcommand{\headwidth}{\textwidth}} -\newcommand{\makeinfo}[1]{% - \newbox{\makeinfobox}% - \savebox{\makeinfobox}{\parbox[b]{\hintscolumnwidth}{\if@DEBUG\rule{20cm}{.1pt}\\\fi#1}}% - \newlength{\makeinfoheight}% - \setlength{\makeinfoheight}{\totalheightof{\usebox{\makeinfobox}}}% the total height of the parbox is the sum of its height (\the\ht\makeinfobox) and its depth (\the\dp\makeinfobox); the \totalheightof command is provided by the "calc" package - \usebox{\makeinfobox}\vspace*{-\makeinfoheight}% +\newcommand{\makecvinfo}[1]{% + \newbox{\makecvinfobox}% + \savebox{\makecvinfobox}{\parbox[t]{\hintscolumnwidth}{#1}}% + \newlength{\makecvinfoheight}% + \setlength{\makecvinfoheight}{\totalheightof{\usebox{\makecvinfobox}}}% the total height of the parbox is the sum of its height (\the\ht\makeinfobox) and its depth (\the\dp\makeinfobox); the \totalheightof command is provided by the "calc" package + \usebox{\makecvinfobox}\vspace{-\makecvinfoheight}% \newlength{\leftcolumnwidth}% - \setlength{\leftcolumnwidth}{\hintscolumnwidth+\separatorcolumnwidth} - \par\nointerlineskip\vspace*{-\parskip}\vspace*{-2.5ex}\leftskip=\leftcolumnwidth\if@DEBUG\rule{20cm}{.1pt}\fi}% the -2.5ex vertical slip is to counter the 2.5ex skip of sections - -\newif\if@firstdetailselement\@firstdetailselementtrue -\newcommand*{\maketitledetailsnewline}{ - \if@firstdetailselement% - \else% - \\[.2em]\fi% - \@firstdetailselementfalse% - \addressfont\color{color2}} -\renewcommand*{\maketitle}{ + \setlength{\leftcolumnwidth}{\hintscolumnwidth+\separatorcolumnwidth}% + \par\vspace{-\baselineskip}\vspace{-\parskip}\leftskip=\leftcolumnwidth} + +\renewcommand*{\makecvtitle}{ + % recompute lengths (in case we are switching from letter to resume, or vice versa) + \recomputecvlengths% % optional picture box - \newbox{\maketitlepicturebox}% - \savebox{\maketitlepicturebox}{% + \newbox{\makecvtitlepicturebox}% + \savebox{\makecvtitlepicturebox}{% \ifthenelse{\isundefined{\@photo}}% {}% {% @@ -115,28 +118,29 @@ \setlength{\fboxsep}{0pt}\fi% \framebox{\includegraphics[width=\@photowidth]{\@photo}}}}% % name and title - \newlength{\maketitlepicturewidth}\settowidth{\maketitlepicturewidth}{\usebox{\maketitlepicturebox}}% - \newlength{\maketitlenamewidth}\setlength{\maketitlenamewidth}{\textwidth-\maketitlepicturewidth}% - \begin{minipage}[b]{\maketitlenamewidth}% + \newlength{\makecvtitlepicturewidth}\settowidth{\makecvtitlepicturewidth}{\usebox{\makecvtitlepicturebox}}% + \newlength{\makecvtitlenamewidth}\setlength{\makecvtitlenamewidth}{\textwidth-\makecvtitlepicturewidth}% + \begin{minipage}[b]{\makecvtitlenamewidth}% \namestyle{\@firstname\ \@familyname}% \ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}% \end{minipage}% % optional photo - \usebox{\maketitlepicturebox}\\[2.5em]% + \usebox{\makecvtitlepicturebox}\\[2.5em]% % optional quote \ifthenelse{\isundefined{\@quote}}% {}% {{\centering\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\\[2.5em]}}% % optional details - \makeinfo{% - \ifthenelse{\isundefined{\@addressstreet}}{}{\maketitledetailsnewline\addresssymbol\@addressstreet% - \ifthenelse{\equal{\@addresscity}{}}{}{\maketitledetailsnewline\@addresscity}}% if \addresstreet is defined, \addresscity will always be defined but could be empty - \ifthenelse{\isundefined{\@mobile}}{}{\maketitledetailsnewline\mobilesymbol\@mobile}% - \ifthenelse{\isundefined{\@phone}}{}{\maketitledetailsnewline\phonesymbol\@phone}% - \ifthenelse{\isundefined{\@fax}}{}{\maketitledetailsnewline\faxsymbol\@fax}% - \ifthenelse{\isundefined{\@email}}{}{\maketitledetailsnewline\emailsymbol\emaillink{\@email}}% - \ifthenelse{\isundefined{\@homepage}}{}{\maketitledetailsnewline\homepagesymbol\httplink{\@homepage}}% - \ifthenelse{\isundefined{\@extrainfo}}{}{\maketitledetailsnewline\@extrainfo}}} + \makecvinfo{% + \addressfont\color{color2}% + \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}}} \renewcommand*{\section}[1]{% \par\addvspace{2.5ex}% @@ -236,6 +240,60 @@ } +%------------------------------------------------------------------------------- +% letter style definition +%------------------------------------------------------------------------------- +% commands +%\newlength{\textwidthdelta}% +\renewcommand*{\recomputeletterlengths}{% + \recomputecvlengths{}% + \setlength{\parskip}{6\p@}% + \leftskip=0pt% +% \setlength{\textwidthdelta}{+\marginparwidth+\marginparsep}% + \setlength{\marginparwidth}{\hintscolumnwidth}% + \setlength{\marginparsep}{2\separatorcolumnwidth}% +% \addtolength{\textwidthdelta}{-\marginparwidth-\marginparsep}% +% \changepage{}{\textwidthdelta}{-\textwidthdelta}{}{}{}{}{}{}%\changepage{<textheight>}{<textwidth>}{<evensidemargin>}{<oddsidemargin>}{<columnsep>}{<topmargin>}{<headheight>}{<headsep>}{<footskip>} + \changepage{}{-\marginparwidth-\marginparsep}{}{}{}{}{}{}{}%\changepage{<textheight>}{<textwidth>}{<evensidemargin>}{<oddsidemargin>}{<columnsep>}{<topmargin>}{<headheight>}{<headsep>}{<footskip>} + } + +\renewcommand*{\makelettertitle}{% + % recompute lengths (in case we are switching from letter to resume, or vice versa) + \recomputeletterlengths% + % recipient block + {\addressfont% + {\bfseries\upshape\@recipientname}\\% + \@recipientaddress}\\[1em]% + % date + \@date\\[2em]% + % opening + \@opening\\[1.5em]% + % sender contact info + \hspace{0pt}% + \marginpar{% + \addressfont\textcolor{color2}{% + {\bfseries\@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}}}% + % ensure no extra spacing after \makelettertitle due to a possible blank line +% \ignorespacesafterend% not working + \par\vspace{-\baselineskip}\vspace{-\parskip}} + +\renewcommand*{\makeletterclosing}{ + \@closing\\[3em]% + {\bfseries\@firstname~\@familyname}% + \ifthenelse{\isundefined{\@enclosure}}{}{% + \\% + \vfill% + {\color{color2}\itshape{}Enclosure: \@enclosure}}} + + \endinput -- cgit v1.2.3