/projects/davide_cv_latex_class/
code_projectlatex
\ProvidesClass{davide-cv}[2016/06/23 Davides CV class]
\NeedsTeXFormat{LaTeX2e}

% Class options
%%%%%%%%%%%%%%%

% Pass options to article class
\DeclareOption*{
  \PassOptionsToClass{\CurrentOption}{article}
}
\ProcessOptions\relax
\LoadClass{article}

% Document geometry
%%%%%%%%%%%%%%%%%%%

\RequirePackage[left=2.3cm,top=2cm,right=2.3cm,bottom=1.5cm,nohead,nofoot]{geometry}

% Colors
%%%%%%%%

\RequirePackage{xcolor}

\definecolor{white}{RGB}{255,255,255}

\definecolor{darkgray}{HTML}{333333}
\definecolor{gray}{HTML}{4D4D4D}
\definecolor{lightgray}{HTML}{999999}
\definecolor{lightergray}{HTML}{d3d3d3}
\definecolor{lightestgray}{gray}{0.95}

%\colorlet{fillheader}{white}%{lightergray}
%\colorlet{header}{gray}
%\colorlet{addresscolor}{gray}
%\colorlet{textcolor}{black}
%\colorlet{smalltextcolor}{grey}
%\colorlet{headercolor}{gray}

\colorlet{headercolor}{black}
\colorlet{fillheader}{white}
\colorlet{headername}{black}
\colorlet{headeraddress}{black}
\colorlet{headerdate}{black}
\colorlet{textcolor}{black}
\colorlet{smalltextcolor}{black}

% Fonts
%%%%%%%

\RequirePackage[quiet]{fontspec}
\RequirePackage[math-style=TeX,vargreek-shape=unicode]{unicode-math}

%\newfontfamily\bodyfont[]{Open Sans}
%\newfontfamily\thinfont[]{Open Sans Light}
%\newfontfamily\headingfont[]{Open Sans Bold}
%
%\defaultfontfeatures{Mapping=tex-text}
%\setmainfont[Mapping=tex-text, Color=textcolor]{Open Sans}

%\setmathfont{XITS Math}

%\newfontfamily\bodyfont[]{Open Sans Light}
%\newfontfamily\thinfont[]{Open Sans Light}
%\newfontfamily\headingfont[]{Open Sans}
%
%\defaultfontfeatures{Mapping=tex-text}
%\setmainfont[Mapping=tex-text, Color=textcolor]{Open Sans Light}

\newfontfamily\bodyfont[]{Open Sans Light}
\newfontfamily\thinfont[]{Open Sans Light}
\newfontfamily\headingfont[]{Open Sans Light}
\newfontfamily\itemfont[]{Open Sans}
\newfontfamily\urlfont[]{DejaVu Sans Mono}

\defaultfontfeatures{Mapping=tex-text}
\setmainfont[Mapping=tex-text, Color=textcolor]{Open Sans Light}

% Header
%%%%%%%%

\RequirePackage{tikz}

\RequirePackage[absolute,overlay]{textpos}
\setlength{\TPHorizModule}{1cm}
\setlength{\TPVertModule}{1cm}

\newenvironment{eheader}[0]{

	\def\firstName{Firstname}
	\def\lastName{Lastname}
	\def\addressStreet{Street and Nr.}
	\def\addressCity{City}
	\def\contactEmail{Email}
	\def\contactPhone{Phone}
	\def\modDate{Date}
	\def\bornDate{Date}
	\def\nationality{Nationality}
	\newcommand{\FirstName}[1]{\def\firstName{##1}}
	\newcommand{\LastName}[1]{\def\lastName{##1}}
	\newcommand{\AddressStreet}[1]{\def\addressStreet{##1}}
	\newcommand{\AddressCity}[1]{\def\addressCity{##1}}
	\newcommand{\ContactEmail}[1]{\def\contactEmail{##1}}
	\newcommand{\ContactPhone}[1]{\def\contactPhone{##1}}
	\newcommand{\ModDate}[1]{\def\modDate{##1}}
	\newcommand{\BornDate}[1]{\def\bornDate{##1}}
	\newcommand{\Nationality}[1]{\def\nationality{##1}}
}{
	\input{header_c.tex}
	\vspace{35mm}
%  \vspace{-2\parskip}
}


% Date block
%%%%%%%%%%%%

\RequirePackage[absolute,overlay]{textpos}
\setlength{\TPHorizModule}{1cm}
\setlength{\TPVertModule}{1cm}
\newcommand{\dateblock}[1]{
	\begin{textblock}{2.5}[1,0](19, 1.16)%(10.2,1.00)
  \color{headercolor}
  \begin{flushright}
  #1
  \end{flushright}
  \end{textblock}
}

% Address block
%%%%%%%%%%%%%%%

\RequirePackage[absolute,overlay]{textpos}
\setlength{\TPHorizModule}{1cm}
\setlength{\TPVertModule}{1cm}
\newenvironment{address}{
  \let\oldsection\section
  \renewcommand{\section}[1]{
    \par{\Large\headingfont\color{headercolor} ##1}
  }
  \begin{textblock}{4}[0,0](1,1.15)%(17, 1.00)
  \color{headercolor}
  \begin{flushright}
  \obeycr
}{
  \restorecr
  \end{flushright}
  \end{textblock}
  \let\section\oldsection
}

% Structure
%%%%%%%%%%%

\RequirePackage{parskip}


\renewcommand{\section}[1]{
  \par\vspace{\parskip}
  {
    \LARGE\headingfont\color{headercolor}
    #1
  }
  \par\vspace{\parskip}
}

\renewcommand{\subsection}[1]{
  \par\vspace{.5\parskip}
  {\Large\headingfont\color{headercolor} #1}
  \par\vspace{.25\parskip}
}

\renewcommand{\subsubsection}[2]{
  \par\vspace{.5\parskip}
  {\Large\headingfont\color{headercolor} #2}
  \par\vspace{.25\parskip}
}

\pagestyle{empty}


% List environment
%%%%%%%%%%%%%%%%%%

\def\myparboxwidth{14cm}

\RequirePackage{tabu}
%\RequirePackage{longtable}
\setlength{\tabcolsep}{0pt}
\newenvironment{entrylist}{
  \begin{tabu} to \textwidth{X}
}{
  \end{tabu}
}
\renewcommand{\bfseries}{\itemfont\color{headercolor}}
\newcommand{\entry}[4]{
	\textbf{#1} #2 \hfill
	{\footnotesize\addfontfeature{Color=smalltextcolor}#3}\\
	\hspace{0cm}\parbox[t]{\myparboxwidth}{#4
    \vspace{\parsep}
  }\\}

\RequirePackage{tabu}
\newenvironment{subentrylist}{
\setlength{\tabcolsep}{4pt}
%\renewcommand{\arraystretch}{1.1}
	\begin{tabu} to \textwidth{ll}
}{
  \end{tabu}
}
\renewcommand{\bfseries}{\itemfont\color{headercolor}}
\newcommand{\subentry}[2]{
	{\footnotesize\addfontfeature{Color=smalltextcolor}#1} & %\emph{#1}} &
	{\footnotesize\parbox[t]{\myparboxwidth}{\addfontfeature{Color=smalltextcolor}#2}}\\}