diff options
author | Christophe Roger <darwiinc@live.fr> | 2017-11-17 19:11:42 +1100 |
---|---|---|
committer | Christophe Roger <darwiinc@live.fr> | 2017-11-17 19:11:42 +1100 |
commit | 2e05e5336df5c58cbdd8d65b95b77d1c523be4a6 (patch) | |
tree | 64d43f1eeca06eae89b54edb569bf52c5a194d64 /yaac.cls | |
parent | 412cec65466dfb7136bc9acf882a1e20dcbee9a5 (diff) | |
download | cv-2e05e5336df5c58cbdd8d65b95b77d1c523be4a6.tar.gz cv-2e05e5336df5c58cbdd8d65b95b77d1c523be4a6.tar.bz2 cv-2e05e5336df5c58cbdd8d65b95b77d1c523be4a6.tar.xz cv-2e05e5336df5c58cbdd8d65b95b77d1c523be4a6.zip |
[EVO] Renaming project Awesome Source CV -> YAAC: Another Awesome CV
[EVO] Refactoring: Move example cv to example/ subfolder
Diffstat (limited to 'yaac.cls')
-rwxr-xr-x | yaac.cls | 354 |
1 files changed, 354 insertions, 0 deletions
diff --git a/yaac.cls b/yaac.cls new file mode 100755 index 0000000..58d1e9f --- /dev/null +++ b/yaac.cls @@ -0,0 +1,354 @@ +%% Copyright 2016 Christophe Roger +% +% Author: +% Christophe Roger (Darwiin) +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is M. C. Roger. +% +% This work consists of the files awesome-source-cv.cls + +\ProvidesClass{yaac}[2017/11/17 v1.7.0 'YAAC: Another Awesome CV' Class] + +\LoadClass[a4paper]{article} + +\DeclareOption{green}{ + \def\@green{green} +} + +\DeclareOption{red}{ + \def\@red{red} +} + +\DeclareOption{indigo}{ + \def\@indigo{indigo} +} +\DeclareOption{orange}{ + \def\@orange{orange} +} + +\DeclareOption{localFont}{ + \def\@local{local} +} + +\DeclareOption{alternative}{ + \def\@alternative{alternate} +} + +\ProcessOptions + +% Dependences +%A Few Useful Packages +\RequirePackage[frenchb]{babel} +\RequirePackage[utf8]{luainputenc} +\RequirePackage{fontspec} % for loading fonts +\RequirePackage{url,parskip} % other packages for formatting +\RequirePackage[usenames,dvipsnames]{xcolor} +\RequirePackage{fullpage} +\RequirePackage[margin=1.5cm]{geometry} +\RequirePackage{fontawesome} +\RequirePackage{hyperref} +\RequirePackage{titlesec} +\RequirePackage{array} +\RequirePackage{enumitem} +\RequirePackage{longtable} +\RequirePackage{etoolbox} +\RequirePackage{tikz} +\RequirePackage[skins]{tcolorbox} + + +\DeclareUnicodeCharacter{00E9}{\'{e}} +% Define default accent colors +\definecolor{basecolor}{HTML}{000066} %BLUE + +\ifundef{\@green} { + \ifundef{\@red} { + \ifundef{\@indigo}{ + \ifundef{\@orange} {} + { \definecolor{basecolor}{HTML}{e68a00} } + } + { \definecolor{basecolor}{rgb}{0.2, 0.07, 0.48} } + } + { \definecolor{basecolor}{HTML}{b30000} } %RED +} +{ \definecolor{basecolor}{rgb}{0.0, 0.62, 0.38} } + +\definecolor{darkGrey}{HTML}{989898} + +\colorlet{linkcolor}{basecolor} +\colorlet{accentcolor}{linkcolor!90} +\colorlet{symbolcolor}{linkcolor!85} + +% Setup hyperref package, and colours for links +%\definecolor{linkcolour}{rgb}{0,0.2,0.6} +\hypersetup{breaklinks} + +\pagestyle{empty} % non-numbered pages +%\font\fb=''[cmr10]'' % for use with \LaTeX command + +% Setup CV sections +\titleformat{\section}{\Large\raggedright}{}{0em}{}[\titlerule] +\titlespacing{\section}{0pt}{2pt}{2pt} + +% Configure list +\setlist[itemize,1]{label=\faAngleRight, nosep, leftmargin=2em} + +% Setup Array : new column type +\newcolumntype{R}[1]{>{\hfill}m{#1}} + +%Italian hyphenation for the word: ''corporations'' +\hyphenation{im-pre-se} + +% Setup fonts +\defaultfontfeatures{Mapping=tex-text} +% + +% Define font to use according to localFont option +\ifundef{\@local} +{ + %\setmainfont[BoldFont = Helvetica Neue, ItalicFont=Helvetica Neue Thin Italic ,SmallCapsFont = Helvetica Neue Light]{Helvetica Neue Thin} + \setmainfont{Source Sans Pro Light}[ + BoldFont = Source Sans Pro Semibold, + ItalicFont= Source Sans Pro Light Italic, + SmallCapsFont = Source Sans Pro] +} +{ + \setmainfont{SourceSansPro-Light}[ + Path = fonts/, + BoldFont = SourceSansPro-Semibold, + ItalicFont = SourceSansPro-LightIt, + SmallCapsFont = SourceSansPro-Regular] +} + +%New length definition +\newlength{\rightcolumnlength} +\setlength{\rightcolumnlength}{14.8cm} + +\newlength{\leftcolumn} +\setlength{\leftcolumn}{2.5cm} + +% Font Awesome icons aliases +\newcommand{\mailSymbol}{\faAt} +\newcommand{\locationSymbol}{\faMapMarker} +\newcommand{\infoSymbol}{\faInfo} +\newcommand{\linkedinSymbol}{\faLinkedin} +\newcommand{\viadeoSymbol}{\faViadeo} +\newcommand{\mobileSymbol}{\faMobilePhone} +\newcommand{\githubSymbol}{\faGithub} + +\newcommand\link[2]{\color{linkcolor}\href{#1}{#2}\color{Black} } +\newcommand\important[1]{\textbf #1} + +% Create a tag +% Usage: \cvtag{<tag label>} +\newcommand{\cvtag}[1]{% + \tikz[baseline]\node[anchor=base,draw=darkGrey!70,rounded corners=0.5ex,inner xsep=1ex,inner ysep =0.55ex,text height=1.3ex,text depth=.25ex]{#1}; +} + +% Render author's name +% Usage: \user{<firstanme>}{<lastname>} +\newcommand\user[2]{\color{accentcolor}{\LARGE #1 \textbf{#2}}\color{Black}} + +% Render a text with its symbol +% Usage; \socialtext{<icon>}{<label>} +\newcommand{\socialtext}[2]{\mbox{\textcolor{symbolcolor}{#1}\hspace{0.5em}#2\hspace{1em}}} + +% Render a link with its symbol +% Usage; \sociallink{<icon>}{<label>} +\newcommand{\sociallink}[3]{\mbox{\textcolor{symbolcolor}{#1}\hspace{0.5em}\link{#2}{#3}\hspace{1em}}} + +% Define author's name +% Usage: \name{<firstname>}{<lastname>} +% Usage: \firstname{<firstname>} +% Usage: \lastname{<lastname>} +% Usage: \familyname{<familyname>} +\newcommand*{\name}[2]{\def\@firstname{#1}\def\@lastname{#2}} +\newcommand*{\firstname}[1]{\def\@firstname{#1}} +\newcommand*{\lastname}[1]{\def\@lastname{#1}} +\newcommand*{\familyname}[1]{\def\@lastname{#1}} +\def\@familyname{\@lastname} + +% Define author's tagline +% Usage: \tagline{<tag line>} +\newcommand*{\tagline}[1]{\def\@tagline{#1}} + +% Define author's photo +% Usage \photo{<diameter>}{<photo>} +\newcommand{\photo}[2]{\def\@photo{#2}\def\@photodiameter{#1}} + +% Render author's address +% Usage: \address{<address>} +\newcommand*{\address}[1]{\socialtext{\locationSymbol}{#1}} + +% Render author's infos +% Usage: \infos{<infos>} +\newcommand*{\infos}[1]{\socialtext{\infoSymbol}{#1}} + +% Render author's linked-in (optional) +% Usage: \linkedin{<linked-in-nick>} +\newcommand*{\linkedin}[1]{\sociallink{\linkedinSymbol}{http://www.linkedin.com/in/#1/fr}{linkedin.com/in/#1}} + +% Render author's viadeo(optional) +% Usage: \viadeo{<viadeo-nick>} +\newcommand*{\viadeo}[1]{\sociallink{\viadeoSymbol}{http://www.viadeo.com/fr/profile/#1}{viadeo.com/fr/profile/#1}} + +% Render author's github (optional) +% Usage: \github{<github-nick>} +\newcommand*{\github}[1]{\sociallink{\githubSymbol}{https://www.github.com/#1}{github.com/#1}} % Github icon + URL + +% Render author's email (optional) +% Usage: \email{<email adress>} +\newcommand*{\email}[1]{\sociallink{\mailSymbol}{mailto:#1}{#1}} + +% Render author's mobile phone (optional) +% Usage: \smartphone{<mobile phone number>} +\newcommand*\smartphone[1]{\socialtext{\mobileSymbol}{#1}} + +% Render author's tagline +\newcommand\resumetitle[1]{ + \ifundef{\@alternative}{ + \par{ + \bigskip\center{\Large \color{accentcolor}\textsc{#1}\color{Black}}\par + } + \bigskip + }{ + \color{accentcolor}\textsc{\large{#1}}\color{black} + } +} + +% Define social entries to print in header +\newcommand{\socialinfo}[1]{\def\@socialinfo{#1}} + +% Render CV header +% Needs \@firstname, \@lastname and \@tagline to be defined +\newcommand*{\makecvheader}{ + \ifundef{\@alternative}{ + \ifundef{\@photodiameter}{ + \begin{minipage}{\linewidth} + }{ + \begin{minipage}{\dimexpr\linewidth-\@photodiameter-2em} + } + \color{accentcolor}\user{\@firstname}{\@lastname}\color{black}\\ + \small{\@socialinfo} + \end{minipage} + \ifdef{\@photodiameter}{ + \begin{minipage}{\@photodiameter} + \tikz\path[fill overzoom image={\@photo}]circle[radius=0.5\linewidth]; + \end{minipage} + }{} + \resumetitle{\@tagline} + }{ + \ifundef{\@photodiameter}{ + \begin{minipage}{\linewidth} + }{ + \begin{minipage}{\dimexpr\linewidth-\@photodiameter-2em} + } + \user{\@firstname}{\@lastname}\\ + \resumetitle{\@tagline} + \smallskip\\ + \small{\@socialinfo} + \end{minipage} + \ifdef{\@photodiameter}{ + \begin{minipage}{\@photodiameter} + \tikz\path[fill overzoom image={\@photo}]circle[radius=0.5\linewidth]; + \end{minipage} + }{} + \bigskip + } +} + +% Resume part title definition +\newcommand\sectionTitle[2]{\section{\texorpdfstring{\color{accentcolor}#2\enspace #1}{#1}}} + +% Define a new column type for the scholarship environment +\newcolumntype{Y}{>{\raggedleft}p{\leftcolumn}} + +% Define the 'scholarship' environment +\newenvironment{scholarship}{% + \begin{tabular}{Y p{\rightcolumnlength}} +}{% + \end{tabular} +} + +% Render a scholarshipentry in the scolarship environment +% Usage: \scholarshipentry{<date>}{<description>} +\newcommand\scholarshipentry[2]{ + #1 & #2 \\ +} + +% Define the 'skills' environment +\newenvironment{skills}{% + \begin{longtable}{R{\leftcolumn}p{\rightcolumnlength}} +}{% + \end{longtable} +} + +% Render a skill in the skills environment +% Usage: \skill{<skill>}{<level>} +\newcommand\skill[2]{ + \textsc{#1} & \foreach \x in {1,...,5}{{\color{accentcolor!80} \ifnumgreater{\x}{#2}{\faCircleO}{\faCircle}}\enspace } \\ +} + +\newcolumntype{E}{>{\raggedright\arraybackslash}p{\rightcolumnlength}} + +% Define the 'experiences' environment +\newenvironment{experiences}{% + \begin{longtable}{R{\leftcolumn}|E} +}{% + \end{longtable} +} + +% Render an experience in the experiences environment +% Usage: +% \experience +% {<End date>} {<Title>}{<Enterprise>}{<Country>} +% {<Start date} { +% <Experience description (Could be a list)> +% } +% {<Technology list>} +\newcommand\experience[7]{ + \textsc{#1} & \textsc{#2, #3, #4} \\* + \textsc{#5} & \begin{minipage}[t]{\rightcolumnlength} + #6 + \end{minipage} \\* + & \footnotesize{\foreach \n in {#7}{\cvtag{\n}}} \\ + } + +% Render a consultant experience in the experiences environment +% Usage: +% \consultantexperience +% {<End date>} {<Consultant title>}{<Consulting Enterprise>}{<Country>} +% {<Start date} {<Client title>}{<Client business unit>} +% { +% <Experience description (Could be a list)> +% } +% {<Technology list>} +\newcommand\consultantexperience[9]{ + \textsc{#1} & \textsc{#2, #3, #4} \\* + \textsc{#5} & \emph{#6} pour #7 \\* + & \begin{minipage}[t]{\rightcolumnlength} + #8 + \end{minipage} \\* + & \footnotesize{\foreach \n in {#9}{\cvtag{\n}}} \\ + } + +\newcommand\emptySeparator{\multicolumn{2}{c}{}\\} + +\newcommand*\twocolumnsection[2]{ + \begin{minipage}[t]{\dimexpr(\linewidth/2) - 3em} + #1 + \end{minipage} + \hfill + \begin{minipage}[t]{\dimexpr(\linewidth/2) - 3em} + #2 + \end{minipage} + } |