Version 0.2 retroactive commit

This commit is contained in:
Xavier Danaux
2010-05-19 02:17:38 +02:00
parent c2cdaa27cf
commit a234120fb1
19 changed files with 633 additions and 275 deletions

View File

@ -1,103 +1,145 @@
%% start of file `moderncv.cls'.
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{moderncv}[2006/03/01 v0.9 modern curriculum vitae document class]
%-------------------------------------------------------------------------------
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{moderncv}[2006/03/06 v0.2 modern curriculum vitae document class]
%-------------------------------------------------------------------------------
% class options
%
% (need to be done before the external package loading, for example because
% we need \paperwidth, \paperheight and \@ptsize to be defined before loading
% geometry and fancyhdr)
%-------------------------------------------------------------------------------
% paper size option
\DeclareOption{a4paper}{
\setlength\paperheight{297mm}
\setlength\paperwidth{210mm}}
\DeclareOption{a5paper}{
\setlength\paperheight{210mm}
\setlength\paperwidth{148mm}}
\DeclareOption{b5paper}{
\setlength\paperheight{250mm}
\setlength\paperwidth{176mm}}
\DeclareOption{letterpaper}{
\setlength\paperheight{11in}
\setlength\paperwidth{8.5in}}
\DeclareOption{legalpaper}{
\setlength\paperheight{14in}
\setlength\paperwidth{8.5in}}
\DeclareOption{executivepaper}{
\setlength\paperheight{10.5in}
\setlength\paperwidth{7.25in}}
\DeclareOption{landscape}{
\setlength\@tempdima{\paperheight}
\setlength\paperheight{\paperwidth}
\setlength\paperwidth{\@tempdima}}
% font size options
\newcommand\@ptsize{}
\DeclareOption{10pt}{\renewcommand\@ptsize{0}}
\DeclareOption{11pt}{\renewcommand\@ptsize{1}}
\DeclareOption{12pt}{\renewcommand\@ptsize{2}}
% draft/final option
\DeclareOption{draft}{\setlength\overfullrule{5pt}}
\DeclareOption{final}{\setlength\overfullrule{0pt}}
% nolmodern option
\newif\if@lmodern\@lmoderntrue
\DeclareOption{nolmodern}{\@lmodernfalse}
% nocolor option
\newif\if@color\@colortrue
\DeclareOption{nocolor}{\@colorfalse}
% execute default options
\ExecuteOptions{a4paper,11pt,color,final}
% process given options
\ProcessOptions\relax
\input{size1\@ptsize.clo}
%-------------------------------------------------------------------------------
% required packages
%-------------------------------------------------------------------------------
% ifthen package
\RequirePackage{ifthen}
% ifpdf package
\RequirePackage{ifpdf}
% color package
\ifpdf
\RequirePackage[pdftex]{color}
\else
\RequirePackage[dvips]{color}
\fi
% fontenc package
\RequirePackage[T1]{fontenc}
% scalable Computer Modern fonts
%\usepackage{type1cm}
% latin modern fonts
\AtEndOfClass{%
\if@lmodern
\RequirePackage{lmodern}\fi}
% symbols like \Telefon, \Mobilefone, \Letter and \Email
\RequirePackage{marvosym}
% extended characters of T1 in .ps + other guillemets
%\RequirePackage{ae,aecompl,aeguill}
% page geometry
% (this should perhaps be left to the user...)
\RequirePackage[top=2cm, bottom=2.5cm, left=2.25cm, right=2.25cm]{geometry}
% hyperrefs
\RequirePackage{url}
\ifpdf
\RequirePackage[pdftex,pdfborder=0,breaklinks,baseurl=http://,pdfpagemode=None,pdfstartview=FitH,pdfpagelayout=SinglePage,pdfstartpage=1]{hyperref}
\AtEndOfClass{%
\AtBeginDocument{%
\hypersetup{%
pdfauthor = \@firstname~\@familyname,%
pdftitle = \@title,%
pdfsubject = \@firstname~\@familyname,%
pdfkeywords = \@firstname~\@familyname{} curriculum vit\ae{},%
pdfcreator = \LaTeX{} with `moderncv' package,%
pdfproducer = \LaTeX}}}
\else
\RequirePackage[dvips]{hyperref}\fi
\urlstyle{tt}
% graphics
\ifpdf
\RequirePackage[pdftex]{graphicx}
\else
\RequirePackage[dvips]{graphicx}\fi
% headers and footers
\usepackage{fancyhdr}
\fancypagestyle{plain}{%
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\fancyhf{}}
\pagestyle{plain}
% compatibility package with older versions of moderncv
\RequirePackageWithOptions{moderncvcompatibility}
%-------------------------------------------------------------------------------
% class options
% class definition
%-------------------------------------------------------------------------------
% paper size option
\if@compatibility\else
\DeclareOption{a4paper}
{\setlength\paperheight {297mm}%
\setlength\paperwidth {210mm}}
\DeclareOption{a5paper}
{\setlength\paperheight {210mm}%
\setlength\paperwidth {148mm}}
\DeclareOption{b5paper}
{\setlength\paperheight {250mm}%
\setlength\paperwidth {176mm}}
\DeclareOption{letterpaper}
{\setlength\paperheight {11in}%
\setlength\paperwidth {8.5in}}
\DeclareOption{legalpaper}
{\setlength\paperheight {14in}%
\setlength\paperwidth {8.5in}}
\DeclareOption{executivepaper}
{\setlength\paperheight {10.5in}%
\setlength\paperwidth {7.25in}}
\DeclareOption{landscape}
{\setlength\@tempdima {\paperheight}%
\setlength\paperheight {\paperwidth}%
\setlength\paperwidth {\@tempdima}}\fi
% font size options
\newcommand\@ptsize{}
\if@compatibility
\renewcommand\@ptsize{0}
\else
\DeclareOption{10pt}{\renewcommand\@ptsize{0}}\fi
\DeclareOption{11pt}{\renewcommand\@ptsize{1}}
\DeclareOption{12pt}{\renewcommand\@ptsize{2}}
% draft/final option
\DeclareOption{draft}{\setlength\overfullrule{5pt}}
\if@compatibility
\else
\DeclareOption{final}{\setlength\overfullrule{0pt}}\fi
\DeclareOption{titlepage}{\@titlepagetrue}
\if@compatibility
\else
\DeclareOption{notitlepage}{\@titlepagefalse}\fi
% colored/blackandwhite option
\newif\if@color\@colortrue
\DeclareOption{color}{%
% \definecolor{firstnamecolor}{rgb}{0.5,0.5,0.5}% gray-blue
% \definecolor{familynamecolor}{rgb}{0.2,0.4,0.65}%
\definecolor{firstnamecolor}{rgb}{0.65,0.65,0.65}%
\definecolor{familynamecolor}{rgb}{0.45,0.45,0.45}%
\definecolor{quotecolor}{rgb}{0.35,0.35,0.35}%
\definecolor{sectionrectanglecolor}{rgb}{0.25,0.5,0.75}%
\definecolor{sectiontitlecolor}{rgb}{0.2,0.4,0.65}%
\definecolor{footertextcolor}{rgb}{0.35,0.35,0.35}%
\definecolor{footersymbolcolor}{rgb}{0.25,0.5,0.75}}
\newif\if@blackandwhite\@blackandwhitefalse
\DeclareOption{blackandwhite}{%
\@blackandwhitetrue%
\definecolor{firstnamecolor}{rgb}{0.5,0.5,0.5}%
\definecolor{familynamecolor}{rgb}{0,0,0}%
\definecolor{quotecolor}{rgb}{0.35,0.35,0.35}%
\definecolor{sectionrectanglecolor}{rgb}{0.75,0.75,0.75}%
\definecolor{sectiontitlecolor}{rgb}{0.35,0.35,0.35}%
\definecolor{weblink}{rgb}{0.5,0.5,0.5}%
\definecolor{footertextcolor}{rgb}{0.35,0.35,0.35}%
\definecolor{footersymbolcolor}{rgb}{0.75,0.75,0.75}}
% styles: casual or classic (default)
\newif\if@styleclassic\@styleclassicfalse
\DeclareOption{classic}{%
\@styleclassictrue%
\@stylecasualfalse}
\newif\if@stylecasual\@stylecasualfalse
\DeclareOption{casual}{%
\@styleclassicfalse%
\@stylecasualtrue}
% execute default options
\ExecuteOptions{a4paper,11pt,color,classic,final}
% process given options
\ProcessOptions
\input{size1\@ptsize.clo}
% minimal base settings
\setlength\lineskip{1\p@}
\setlength\normallineskip{1\p@}
\renewcommand\baselinestretch{}
@ -110,101 +152,56 @@
\raggedbottom
\onecolumn
%-------------------------------------------------------------------------------
% packages import
%-------------------------------------------------------------------------------
% font encoding
\RequirePackage[T1]{fontenc}
% scalable Computer Modern fonts
%\usepackage{type1cm}
% latin modern fonts
\RequirePackage{lmodern}
% symbols like \Telefon, \Mobilefone, \Letter and \Email
\RequirePackage{marvosym}
% extended characters of T1 in .ps + other guillemets
%\RequirePackage{ae,aecompl,aeguill}
% page geometry
%\RequirePackage[top=1.75cm, bottom=2.25cm, left=2cm, right=2cm]{geometry}
\RequirePackage[top=2cm, bottom=2.5cm, left=2.25cm, right=2.25cm]{geometry}
% typewriter font
\renewcommand{\ttdefault}{pcr}
% hyperrefs
\RequirePackage{url}
\ifpdf
\RequirePackage[pdftex,pdfborder=0,breaklinks,baseurl=http://,pdfpagemode=None,pdfstartview=FitH,pdfpagelayout=SinglePage,pdfstartpage=1]{hyperref}
\AtBeginDocument{\hypersetup{
pdfauthor = \@firstname~\@familyname,%
pdftitle = \@title,%
pdfsubject = \@firstname~\@familyname,%
pdfkeywords = \@firstname~\@familyname{} curriculum vit\ae{},%
pdfcreator = \LaTeX{} with `moderncv' package,%
pdfproducer = \LaTeX}}
\RequirePackage[pdftex]{graphicx}
\else
\RequirePackage[dvips]{hyperref,graphicx}\fi
\urlstyle{tt}
% headers and footers
\usepackage{fancyhdr}
\fancypagestyle{plain}{%
\renewcommand{\headrulewidth}{0pt}%
\renewcommand{\footrulewidth}{0pt}%
\fancyhf{}}
\pagestyle{plain}
%-------------------------------------------------------------------------------
% style customization
% style commands definitions
%-------------------------------------------------------------------------------
% symbols used
\newcommand*{\listsymbol}{\textbullet}
\newcommand*{\footersymbol}{\textbullet}
\providecommand*{\listitemsymbol}{\textbullet}
% colors
\definecolor{firstnamecolor}{rgb}{0,0,0}
\definecolor{familynamecolor}{rgb}{0,0,0}
\definecolor{titlecolor}{rgb}{0,0,0}
\definecolor{addresscolor}{rgb}{0,0,0}
\definecolor{quotecolor}{rgb}{0,0,0}
\definecolor{sectionrectanglecolor}{rgb}{0,0,0}
\definecolor{sectiontitlecolor}{rgb}{0,0,0}
% fonts
%\newcommand*{\namefont}{\fontsize{34}{36}\sffamily\mdseries\upshape}
\newcommand*{\quotefont}{\large\sffamily\slshape}
\newcommand*{\sectionfont}{\Large\sffamily\mdseries\upshape}
\newcommand*{\subsectionfont}{\normalsize\sffamily\mdseries\upshape}
\newcommand*{\footerfont}{\normalsize\sffamily\mdseries\slshape}
\providecommand*{\firstnamefont}{}
\providecommand*{\familynamefont}{}
\providecommand*{\titlefont}{}
\providecommand*{\addressfont}{}
\providecommand*{\quotefont}{}
\providecommand*{\sectionfont}{}
\providecommand*{\subsectionfont}{}
% classic style
\if@styleclassic
\typeout{moderncv with classic style}
\renewcommand*{\title}[1]{\def\@title{#1}}
\title{}
\newcommand*{\namefont}{\fontsize{34}{36}\sffamily\mdseries\upshape}
\newcommand*{\titlefont}{\LARGE\sffamily\mdseries\slshape}
\newcommand*{\addressfont}{\rmfamily\mdseries\slshape}
\if@color
\definecolor{namecolor}{rgb}{0,0,0}
\definecolor{titlecolor}{rgb}{0.35,0.35,0.35}
\definecolor{addresscolor}{rgb}{0.25,0.5,0.75}
\else
\definecolor{namecolor}{rgb}{0,0,0}
\definecolor{titlecolor}{rgb}{0.35,0.35,0.35}
\definecolor{addresscolor}{rgb}{0.35,0.35,0.35}\fi\else
% casual style
\if@stylecasual
\typeout{moderncv with casual style}
\newcommand*{\namefont}{\fontsize{38}{40}\sffamily\mdseries\upshape}
\AtBeginDocument{\makefooter}\fi\fi
% styles
\providecommand*{\firstnamestyle}[1]{{\firstnamefont\color{firstnamecolor}#1}}
\providecommand*{\familynamestyle}[1]{{\familynamefont\color{familynamecolor}#1}}
\providecommand*{\titlestyle}[1]{{\titlefont\color{titlecolor}#1}}
\providecommand*{\addresstyle}[1]{{\addressfont\color{addresscolor}#1}}
\providecommand*{\quotestyle}[1]{{\quotefont\color{quotecolor}#1}}
\providecommand*{\sectionstyle}[1]{{\sectionfont\color{sectiontitlecolor}#1}}
\providecommand*{\subsectionstyle}[1]{{\subsectionfont#1}}
% see also the color definitions at the color/blackandwhite option definition
% styles: casual (default), classic, ...
\newcommand*{\moderncvstyle}[2][]{
\def\@moderncvstyle{#2}
\def\@moderncvstyleoptions{#1}}
\AtBeginDocument{\RequirePackage[\@moderncvstyleoptions]{moderncvstyle\@moderncvstyle}}
% load default style
\moderncvstyle{casual}
%-------------------------------------------------------------------------------
% commands definitions
% structure commands definitions
%-------------------------------------------------------------------------------
\RequirePackage{ifthen}
\newcommand*{\firstname}[1]{\def\@firstname{#1}}
\newcommand*{\familyname}[1]{\def\@familyname{#1}}
\renewcommand*{\title}[1]{\def\@title{#1}}
\newcommand*{\address}[1]{\def\@address{#1}}
\newcommand*{\phone}[1]{\def\@phone{#1}}
\newcommand*{\email}[1]{\def\@email{#1}}
@ -212,54 +209,20 @@
\newcommand*{\quote}[1]{\def\@quote{#1}}
\firstname{}
\familyname{}
\title{}
\address{}
\phone{}
\email{}
\extrainfo{}
\quote{}
% makes the cv footer
\newcommand*{\makefooter}{%
\fancypagestyle{plain}{%
\fancyfoot[c]{%
\footerfont%
\color{footertextcolor}\@address%
~~\color{footersymbolcolor}\footersymbol~~%
\color{footertextcolor}\Telefon~\@phone%
~~\color{footersymbolcolor}\footersymbol~~%
\color{footertextcolor}\Letter~\emaillink{\@email}}}%
\pagestyle{plain}}
% makes the cv title
\if@stylecasual
\renewcommand*{\maketitle}{%
% {\raggedleft{\namefont\color{firstnamecolor}\@firstname~\color{familynamecolor}\@familyname}\\[-.35em]}%
{\raggedleft{\namefont\color{firstnamecolor}\@firstname\color{familynamecolor}\@familyname}\\[-.35em]}%
{\color{firstnamecolor}\rule{\textwidth}{.25ex}\\[2.5em]}}%
\else\if@styleclassic
\renewcommand*{\maketitle}{%
\begin{minipage}[t]{.6\textwidth}%
{\namefont\color{namecolor}\@firstname~\@familyname}%
\ifthenelse{\equal{\@title}{}}%
{}%
{\\[1.25em]{\titlefont\color{titlecolor}\@title}}%
\end{minipage}%
\begin{minipage}[t]{.4\textwidth}%
\raggedleft\addressfont\color{addresscolor}\@address\\[0.2em]%
\Telefon~\@phone\\[.2em]%
\Letter~\emaillink{\@email}%
\ifthenelse{\equal{\@extrainfo}{}}%
{}%
{\\[0.2em]\@extrainfo}
\end{minipage}%
% \\[-\baselinestretch\baselineskip]%
% {\titlefont\color{titlecolor}\@title}%
\\[3em]}\fi\fi
\renewcommand*{\maketitle}{}%
% make a quote
\newcommand*{\makequote}{%
{\centering{%
\vbox{\centering\quotefont\color{quotecolor}\@quote}}}\\[3em]}
\begin{minipage}{\textwidth}\centering\quotestyle{\@quote}\end{minipage}}}\\[3em]}
% draws a colored rectangle
% usage: \colorrule[optional height]{width}
@ -295,15 +258,19 @@
% usage (inside section}: \cvdoubleitem{subtitle}{text}{subtitle}{text}
\newcommand*{\cvdoubleitem}[4]{%
\cvitem{#1}{\begin{minipage}[t]{.4125\textwidth}#2\end{minipage}\hfill\begin{minipage}[t]{.125\textwidth}\raggedleft\small\sffamily#3\end{minipage}\hspace*{.025\textwidth}\begin{minipage}[t]{.4125\textwidth}#4\end{minipage}}}%the second column title should have 0.1818 = 0.15*1/0.825 as width, and the data columns shoudl ahve 0.395 as width to be equal. But this is not achived here, by purpose...
\cvitem{#1}{\begin{minipage}[t]{.4125\textwidth}#2\end{minipage}\hfill\begin{minipage}[t]{.125\textwidth}\raggedleft\small\sffamily#3\end{minipage}\hspace*{.025\textwidth}\begin{minipage}[t]{.4125\textwidth}#4\end{minipage}}}%the second column title should have 0.1818 = 0.15*1/0.825 as width, and the data columns shoudl have 0.395 as width to be equal. But this is not achived here, by purpose...
% usage (inside 'resume' cvsection environment): \cvresume{point1}{point2}
\newcommand*{\cvresume}[2]{%
\vspace{0.25em}&\listsymbol{}~\begin{minipage}[t]{0.375\textwidth}#1\end{minipage}%
% usage (inside section): \cvlistitem{point1}
\newcommand*{\cvlistitem}[1]{%
\cvline{}{\listitemsymbol{}~#1}}
% usage (inside section): \cvlistdoubleitem{point1}{point2}
\newcommand*{\cvlistdoubleitem}[2]{%
\vspace{0.25em}&\listitemsymbol{}~\begin{minipage}[t]{0.375\textwidth}#1\end{minipage}%
\hfill%
\ifthenelse{\equal{#2}{}}%
{}%
{\listsymbol{}~\begin{minipage}[t]{0.375\textwidth}#2\end{minipage}\\}}
{\listitemsymbol{}~\begin{minipage}[t]{0.375\textwidth}#2\end{minipage}\\}}
% usage : \cventry{years}{degree/job title}{institution/employer}{localization}{optionnal: grade/...}{optional: comment/job description}
\newcommand*{\cventry}[6]{%
@ -344,5 +311,7 @@
{\def\@linktext{#1}}%
\href{mailto:#2}{\@linktext{}}}
\endinput
%% end of file `moderncv.cls'.