diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-12 23:55:15 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-12 23:55:15 +0000 |
commit | 2535caca316d15a29258f65889996a1d2ecfa7be (patch) | |
tree | 9dcb3dace34285c061fe9a6860ac7db2a2703103 /Master/texmf-dist/tex/latex/europecv/europecv.cls | |
parent | e3edff15304ee44f28b535dbfb1a812bb0e42523 (diff) |
europecv
git-svn-id: svn://tug.org/texlive/trunk@887 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/europecv/europecv.cls')
-rw-r--r-- | Master/texmf-dist/tex/latex/europecv/europecv.cls | 339 |
1 files changed, 339 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/europecv/europecv.cls b/Master/texmf-dist/tex/latex/europecv/europecv.cls new file mode 100644 index 00000000000..78b725aada0 --- /dev/null +++ b/Master/texmf-dist/tex/latex/europecv/europecv.cls @@ -0,0 +1,339 @@ +% European curriculum vitae class +% Author: Nicola Vitacolonna (vitacolo@dimi.uniud.it) +% This material is subject to the LaTeX Project Public License. +% See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html +% for the details of that license +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{europecv}[2005/04/08 European curriculum vitae class] + +% CV models and instructions: +% http://europass.cedefop.eu.int/htm/index.htm +% Recommendations: +% http://europa.eu.int/scadplus/leg/en/cha/c11057.htm + +% Set language +\DeclareOption{english}{% + \InputIfFileExists{ecven.def}{}{% + \ClassError{europecv}{English definition file 'ecven.def' not found}% + {The file should be inside the europecv folder.\MessageBreak + Try to re-install the europecv class.}}% +} +\DeclareOption{italian}{% + \InputIfFileExists{ecvit.def}{}{% + \ClassWarningNoLine{europecv}{Italian definition file 'ecvit.def' not found}}% +} +\DeclareOption{spanish}{% + \InputIfFileExists{ecves.def}{}{% + \ClassWarningNoLine{europecv}{Spanish definition file 'ecves.def' not found}}% +} +\DeclareOption{french}{% + \InputIfFileExists{ecvfr.def}{}{% + \ClassWarningNoLine{europecv}{French definition file 'ecvfr.def' not found}}% +} +\DeclareOption{danish}{% + \InputIfFileExists{ecvda.def}{}{% + \ClassWarningNoLine{europecv}{Danish definition file 'ecvda.def' not found}}% +} +\DeclareOption{german}{% + \InputIfFileExists{ecvde.def}{}{% + \ClassWarningNoLine{europecv}{German definition file 'ecvde.def' not found}}% +} +\DeclareOption{finnish}{% + \InputIfFileExists{ecvfi.def}{}{% + \ClassWarningNoLine{europecv}{Finnish definition file 'ecvfi.def' not found}}% +} +\DeclareOption{portuges}{% + \InputIfFileExists{ecvpt.def}{}{% + \ClassWarningNoLine{europecv}{Portuguese definition file 'ecvpt.def' not found}}% +} +\DeclareOption{portuguese}{% + \InputIfFileExists{ecvpt.def}{}{% + \ClassWarningNoLine{europecv}{Portuguese definition file 'ecvpt.def' not found}}% +} +\DeclareOption{swedish}{% + \InputIfFileExists{ecvsv.def}{}{% + \ClassWarningNoLine{europecv}{Swedish definition file 'ecvsv.def' not found}}% +} +\DeclareOption{norwegian}{% + \InputIfFileExists{ecvno.def}{}{% + \ClassWarningNoLine{europecv}{Norwegian definition file 'ecvno.def' not found}}% +} +\DeclareOption{dutch}{% + \InputIfFileExists{ecvnl.def}{}{% + \ClassWarningNoLine{europecv}{Dutch definition file 'ecvnl.def' not found}}% +} +\DeclareOption{catalan}{% + \InputIfFileExists{ecvca.def}{}{% + \ClassWarningNoLine{europecv}{Catalan definition file 'ecvca.def' not found}}% +} +\DeclareOption{polish}{% + \InputIfFileExists{ecvpl.def}{}{% + \ClassWarningNoLine{europecv}{Polish definition file 'ecvpl.def' not found}}% +} + +% Set font +\DeclareOption{helvetica}{% + \renewcommand{\rmdefault}{phv} + \renewcommand{\sfdefault}{phv} +} +\DeclareOption{arial}{% + \renewcommand{\rmdefault}{ma1} % (this font is NOT installed by default!) + \renewcommand{\sfdefault}{ma1} +} +\DeclareOption{narrow}{ + \renewcommand{\seriesdefault}{mc} % Narrow + \renewcommand{\bfdefault}{bc} % Boldface narrow +} +% No title +\DeclareOption{notitle}{\renewcommand*\ecvtitle{}} + +% Europass logo +\DeclareOption{logo}{% +\providecommand*\draweuropasslogo{% + \includegraphics[width=\ecv@logowidth]{europasslogo}} +} +\DeclareOption{nologo}{\renewcommand*\draweuropasslogo{}} + +% Flag pictures of the EC can be found at +% http://europa.eu.int/abc/symbols/emblem/index_en.htm +\DeclareOption{noflag}{\providecommand*\draweuropeflag{}} +\DeclareOption{flagWB}{% + \renewcommand*\draweuropeflag{% + \includegraphics[width=\ecv@flagwidth]{EuropeFlagWB}} +} +\DeclareOption{flagBW}{% + \renewcommand*\draweuropeflag{% + \includegraphics[width=\ecv@flagwidth]{EuropeFlagBW}} +} +\DeclareOption{flagCMYK}{% + \renewcommand*\draweuropeflag{% + \includegraphics[width=\ecv@flagwidth]{EuropeFlagCMYK}} +} +\DeclareOption{flagBlueCMYK}{% + \renewcommand*\draweuropeflag{% + \includegraphics[width=\ecv@flagwidth]{EuropeFlagBlueCMYK}} +} + +% Pass all other options (a4paper, 10pt, draft, openbib, etc...) to article +\DeclareOption*{% + \PassOptionsToClass{\CurrentOption}{article}% +} + +\ExecuteOptions{english,noflag,logo,hrule} % Default options + +\ProcessOptions\relax + +\LoadClass{article} +\RequirePackage{array} +\RequirePackage{longtable} +\RequirePackage{fancyhdr} % For page numbering + +\newcommand*{\ecvfirstname}[1]{\def\ecv@firstname{#1}} +\newcommand*{\ecvlastname}[1]{\def\ecv@lastname{#1}} +\newcommand*{\ecvaddress}[1]{\def\ecv@address{#1}} +\newcommand*{\ecvtelephone}[1]{\def\ecv@telephone{#1}} +\newcommand*{\ecvfax}[1]{\def\ecv@fax{#1}} +\newcommand*{\ecvemail}[1]{\def\ecv@email{#1}} +\newcommand*{\ecvnationality}[1]{\def\ecv@nationality{#1}} +\newcommand*{\ecvdateofbirth}[1]{\def\ecv@birth{#1}} +\newcommand*{\ecvgender}[1]{\def\ecv@gender{#1}} +% Personal picture +\newcommand*{\ecvdrawpicture}{} +\newcommand*{\ecvbeforepicture}[1]{\def\ecv@beforepic{#1}} +\newcommand*{\ecvafterpicture}[1]{\def\ecv@afterpic{#1}} +\newcommand*\ecvpicture{% +\@ifnextchar[\ecv@picture{\ecv@picture[]}} +\def\ecv@picture[#1]#2{% +\def\ecvarg{#2} +\ifx\@empty\ecvarg\renewcommand*{\ecvdrawpicture}{}\else +\renewcommand*{\ecvdrawpicture}{\includegraphics[#1]{#2}} +\fi} +\ecvbeforepicture{\raggedright} +\ecvafterpicture{} +\ecvfirstname{} +\ecvlastname{} +\ecvaddress{} +\ecvtelephone{} +\ecvfax{} +\ecvemail{} +\ecvnationality{} +\ecvdateofbirth{} +\ecvgender{} +\ecvpicture{} + +\providecommand{\ecvpersonalinfo}[1][0pt]{% +{\large\par\textbf{\ecv@infosectionkey}} & \tabularnewline & \tabularnewline +\ecv@namekey & \large\textbf{\ecv@lastname\ \ecv@firstname}\tabularnewline[5pt] +\ifx\@empty\ecv@address\else +\ecv@addresskey & \large\ecv@address \tabularnewline[5pt] +\fi +\ifx\@empty\ecv@telephone\else +\ecv@telkey & \large\ecv@telephone \tabularnewline[5pt] +\fi +\ifx\@empty\ecv@fax\else +\ecv@faxkey & \large\ecv@fax \tabularnewline[5pt] +\fi +\ifx\@empty\ecv@email\else +\ecv@emailkey & \large\ecv@email \tabularnewline[5pt] +\fi +\ifx\@empty\ecv@nationality\else +\ecv@nationalitykey & \ecv@nationality \tabularnewline[5pt] +\fi +\ifx\@empty\ecv@birth\else +\ecv@birthkey & \ecv@birth \tabularnewline[5pt] +\fi +\ifx\@empty\ecv@gender\else +\ecv@genderkey & \ecv@gender \tabularnewline[#1] +\fi +} + +% Spoken language information +\newcommand*\ecvmothertongue[2][0pt]{% +{\large\ecv@mothertonguekey} & \large\textbf{#2}\tabularnewline[#1] +} +\newlength\ecv@langparwidth +\newcommand*\ecvlanguageheader[1]{% +{\large\textit{\ecv@assesskey}}\\ \textit{\ecv@levelkey}${}^{\mbox{\scriptsize#1}}$& +\setlength\extrarowheight{0pt} +\begin{tabular}[t]{|m{\ecv@langparwidth}|m{\ecv@langparwidth}|m{\ecv@langparwidth}|m{\ecv@langparwidth}|m{\ecv@langparwidth}|} +\firsthline +\multicolumn{2}{|c|}{\textbf{\ecv@understandkey}}&\multicolumn{2}{c|}{\textbf{\ecv@speakkey}}&\centering\textbf{\ecv@writekey}\tabularnewline\cline{1-4} +\centering\small{\ecv@listenkey} & \centering \small{\ecv@readkey} &\centering \small{\ecv@interactkey} &\centering \small{\ecv@productkey} & \tabularnewline +\lasthline +\end{tabular}\vspace{2\arrayrulewidth}\tabularnewline +} + +\newcommand*\ecvlanguagefooter[2][0pt]{\ecvitem[#1]{}{\quad\footnotesize{${}^{\mbox{\tiny#2}}$\textit{\ecv@langfooterkey}}}} + +\newcommand*\ecvlanguage[7][0pt]{ +{\textbf{#2}} & +\setlength\extrarowheight{0pt} +\begin{tabular}{|m{\ecv@langparwidth}|m{\ecv@langparwidth}|m{\ecv@langparwidth}|m{\ecv@langparwidth}|m{\ecv@langparwidth}|} +\hline + #3 & #4 & #5 & #6 & #7 \tabularnewline +\hline +\end{tabular}\vspace{#1} +\tabularnewline[-\arrayrulewidth] +} + +% See the Common European Framework of Reference for Languages: +% http://www.coe.int/T/E/Cultural_Co-operation/education/Languages/Language_Policy/Common_Framework_of_Reference/default.asp +\newcommand*\ecvCEF[2]{% +%\setlength\tabcolsep{1mm} +\begin{tabular}{@{}>{\footnotesize}p{.2\ecv@langparwidth}@{\hspace{1mm}}>{\footnotesize\centering}p{.74\ecv@langparwidth}@{}} +#1 & #2\tabularnewline +\end{tabular} +} + +\newcommand*\ecvAOne{\ecvCEF{A1}{\ecv@cefbasickey}} +\newcommand*\ecvATwo{\ecvCEF{A2}{\ecv@cefbasickey}} +\newcommand*\ecvBOne{\ecvCEF{B1}{\ecv@cefindepkey}} +\newcommand*\ecvBTwo{\ecvCEF{B2}{\ecv@cefindepkey}} +\newcommand*\ecvCOne{\ecvCEF{C1}{\ecv@cefprofkey}} +\newcommand*\ecvCTwo{\ecvCEF{C2}{\ecv@cefprofkey}} + +\def\ecv@kern{\kern0.5pt} +%\def\ecv@kern{} +\newcommand*{\ecvTitleKern}[1]{\def\ecv@kern{\kern#1}} +\newlength\ecv@rulewidth +\newlength\ecv@colsep +\newlength\ecv@leftcolwidth +\newlength\ecv@rightcolwidth +\newlength\ecv@extrarowheight +\newcommand*{\ecvRuleWidth}[1]{\setlength\ecv@rulewidth{#1}} +\newcommand*{\ecvColSep}[1]{% + \addtolength{\ecv@leftcolwidth}{\ecv@colsep} + \addtolength{\ecv@rightcolwidth}{\ecv@colsep} + \setlength\ecv@colsep{#1} + \addtolength{\ecv@leftcolwidth}{-\ecv@colsep} + \addtolength{\ecv@rightcolwidth}{-\ecv@colsep}} +\newcommand*{\ecvLeftColumnWidth}[1]{\setlength\ecv@leftcolwidth{#1}% + \setlength{\ecv@rightcolwidth}{\textwidth} + \addtolength{\ecv@rightcolwidth}{-\ecv@leftcolwidth} + \addtolength{\ecv@rightcolwidth}{-2\ecv@colsep} + \addtolength{\ecv@rightcolwidth}{-\ecv@rulewidth}} +\newcommand*{\ecvExtraRowHeight}[1]{\setlength\ecv@extrarowheight{#1}} +\newcommand*{\ecvNoHorRule}{\def\ecv@hrule{}} +\newcommand*{\ecvWithHorRule}{\def\ecv@hrule{\cline{1-1}}} +% Initialization +\ecvRuleWidth{\arrayrulewidth} +\setlength\ecv@colsep{12pt} +\setlength\ecv@leftcolwidth{50mm} +\ecvExtraRowHeight{0pt} +\ecvWithHorRule + +% Flag size +\newlength\ecv@flagwidth +\newcommand*{\ecvFlagWidth}[1]{\setlength\ecv@flagwidth{#1}} +\ecvFlagWidth{10mm} + +% Logo size +\newlength\ecv@logowidth +\newlength\ecv@logooffset +\newcommand*{\ecvLogoWidth}[1]{\setlength\ecv@logowidth{#1}} +\newcommand*{\ecvLogoOffset}[1]{\setlength\ecv@logooffset{#1}} +\ecvLogoWidth{2.30cm} +\ecvLogoOffset{1cm} +%\typeout{logo width=\the\ecv@logowidth} +%\typeout{logo offset=\the\ecv@logooffset} + +% Footnote or footer to be shown on every page +\newcommand\ecvfootnote[1]{% + \rfoot{\begin{minipage}{60mm} + \footnotesize #1% + \end{minipage}}} + +% Set layout +\pagestyle{fancy} +\lhead{} +\chead{} +\rhead{} +\lfoot{\ecvlfoot} +\cfoot{} +\rfoot{} +\renewcommand{\headrulewidth}{0pt} + +% Text bullet +\newcommand{\ecvbullet}{\raisebox{.35ex}[0cm][0cm]{\tiny\textbullet}} + + +\newenvironment{europecv}{% + \ecvLeftColumnWidth{\ecv@leftcolwidth} + \setlength\arrayrulewidth{\ecv@rulewidth} + \setlength\extrarowheight{\ecv@extrarowheight} + \setlength\LTleft{0pt} + \setlength\LTright{0pt} + % Language table paragraph width + \setlength\ecv@langparwidth{.199\ecv@rightcolwidth} + \addtolength{\ecv@langparwidth}{-2\tabcolsep} + \addtolength{\ecv@langparwidth}{-2\arrayrulewidth} +% Begin +\begin{longtable}[l]{@{}>{\raggedleft}p{\ecv@leftcolwidth}@{\hspace{\ecv@colsep}}|@{\extracolsep{\ecv@colsep}}p{\ecv@rightcolwidth}@{}} + \ecv@hrule + \ifx\@empty\draweuropasslogo\else + % Any better way of achieving the same result?!? + \vskip-\ecv@logooffset\draweuropasslogo\hfill\phantom{.}& \tabularnewline + \fi + \ifx\@empty\ecvtitle\else + \ecvtitle &\tabularnewline + \fi + \ifx\@empty\ecvdrawpicture\else + &\ecv@beforepic\ecvdrawpicture\ecv@afterpic\tabularnewline + \fi + \ifx\@empty\draweuropeflag\else + \draweuropeflag& \tabularnewline + \fi +} +{\end{longtable}} + +\newcommand{\ecvsection}[2][10pt]{% + {\large{\par\textbf{#2}}}\vspace{#1} & \tabularnewline\nopagebreak +} + +\newif\if@ecvitemstar +\newcommand\ecvitem{\@ifstar{\@ecvitemstartrue \@ecvitem}% + {\@ecvitemstarfalse\@ecvitem}} +\newcommand\@ecvitem[3][2pt]{% + \if@ecvitemstar \ecvbullet\ \fi #2\vspace{#1} & #3 + \vspace{#1}\tabularnewline} + |