(% macro cdate(inp) %)(( inp | formatDate | capitalize | trim ))(% endmacro %) \documentclass[9pt]{article} \usepackage{extsizes} \usepackage{graphicx} \usepackage[T1]{fontenc} \usepackage[english,french]{babel} \usepackage{url,parskip} % other packages for formatting \usepackage[usenames,dvipsnames]{xcolor} \usepackage{fullpage} \usepackage[margin=2.5cm,top=1.5cm]{geometry} \usepackage{hyperref} \usepackage{titlesec} \usepackage{array} \usepackage{enumitem} \usepackage{longtable} \usepackage{etoolbox} \usepackage{tikz} \usepackage[skins]{tcolorbox} \usepackage{fancyhdr} \usepackage[inkscapepath=./build/latex/inkscape-svg]{svg} \usepackage{verbatimbox} \usepackage{stackengine} \usepackage{lastpage} \newcommand\svgsize{10pt} \definecolor{basecolor}{HTML}{000066} %BLUE \definecolor{accentcolor}{HTML}{318440} \definecolor{darkGrey}{HTML}{989898} \definecolor{light}{HTML}{828282} \colorlet{linkcolor}{basecolor} \colorlet{symbolcolor}{linkcolor!85} \pagestyle{fancy} \fancyhf{} \fancyhfoffset{0em} \fancyfoot{} \fancyfoot[L]{(( misc.updated_at | format_date(locale=getLocale()) ))} \fancyfoot[C]{(% if anno %)CV annonyme(% else %)(( firstName )) (( lastName )) - CV(% endif %)} \fancyfoot[R]{(( getLocalizedStr("page-counter")|format("\\thepage{}", "\\pageref*{LastPage}")|raw ))} \newcommand\link[2]{\color{linkcolor}\href{#1}{#2}\color{Black} } % Remove head rule \renewcommand{\headrulewidth}{0pt} %\fancyfoot[C]{\thepage} % Configure list \setlist[itemize,1]{label=-, nosep, leftmargin=2em} \setlist[itemize,2]{label=-, nosep, leftmargin=1.5em} % Setup Array : new column type \newcolumntype{R}[1]{>{\hfill}m{#1}} %Italian hyphenation for the word: ''corporations'' \hyphenation{im-pre-se} \newlength{\rightcolumnlength} \setlength{\rightcolumnlength}{12.5cm} \newlength{\leftcolumn} \setlength{\leftcolumn}{3cm} \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.59ex,text depth=.25ex]{\color{light}#1};\hspace{-.5em} } % \newcommand{\sectionTitle}[1]{ % \color{accentcolor}\textsc{\Large{#1}} % \\ % \color{darkGrey}\rule{\textwidth}{0.4pt} % \color{black} % } \titleformat{\section}{\Large\raggedright}{}{0em}{}[\titlerule] \titlespacing{\section}{0pt}{2pt}{2pt} % \newcommand\sectionTitle[2]{\section{\texorpdfstring{\color{accentcolor}#2\enspace \textsc{#1}}{#1}}} \newcommand\sectionTitle[1]{\section{\texorpdfstring{\color{accentcolor}\textsc{#1}}{#1}}\vspace{5px}} % Define the 'keywords' environment \newenvironment{keywords}{% \renewcommand{\arraystretch}{1.1} \begin{tabular}{>{}r>{}p{13cm}} }{% \end{tabular} } \newcommand\keywordsentry[2]{ \textbf{#1} & #2\\ } \def\@photo{./public/imgs/profile-512.jpg} \newcolumntype{E}{>{\raggedright\arraybackslash}p{\rightcolumnlength}} \newenvironment{experiences}{% \begin{longtable}{R{\leftcolumn}|E} }{% \end{longtable} } \newcommand\emptySeparator{\multicolumn{2}{c}{}\\} \newlength\myheight \newlength\mydepth \settototalheight\myheight{Xygp} \settodepth\mydepth{Xygp} \setlength\fboxsep{0pt} \newcommand*\inlinegraphics[1]{% \settototalheight\myheight{Xygp}% \settodepth\mydepth{Xygp}% \raisebox{-\mydepth}{\includesvg[height=\myheight]{public/imgs/#1}}% } \newcommand{\sociallink}[3]{\mbox{\textcolor{symbolcolor}{#1}\hspace{0.5em}\link{#2}{#3}\hspace{1em}}} % \newcommand{\iconwithtext}[2]{\bottominset{\small#1}{\includesvg[width=10pt]{./public/imgs/#2}}{2pt}{26pt}} \newcommand{\iconwithtext}[2]{\inlinegraphics{#1}\hspace{0.3em}#2\hspace{0.5em}} \begin{document} % \section{\color{accentcolor} \textsc{Hello World}}{Hello world} (% if anno %) \noindent\color{accentcolor}\textbf{\large{(( getDynLocalizedStr(label) ))}}\color{black} (% else %) \begin{minipage}{\dimexpr\linewidth-3cm} \noindent{\huge{((firstName)) \textbf{((lastName))}}} \vspace{5px} \\ \noindent\color{accentcolor}\textbf{\large{(( getDynLocalizedStr(label) ))}}\color{black} \vspace{5px}\\ \iconwithtext{icons/map-pin.svg}{(( location.city.name )), (( location.country.name ))} \\ \iconwithtext{icons/cake.svg}{(( getLocalizedStr('intro.age-raw') | format(age) ))} \\ \iconwithtext{icons/at.svg}{\link{mailto:(( email ))}{(( email ))}} \iconwithtext{icons/phone.svg}{\link{(( phone | replace({' ':''}) ))}{(( phone ))}} \\ \iconwithtext{icons/link.svg}{\link{(( website ))}{(( website_alt ))}} \iconwithtext{logos/github.svg}{\link{(( links_by_ids.github.url ))}{(( links_by_ids.github.username ))}} \iconwithtext{logos/gitlab.svg}{\link{(( links_by_ids.gitlab.url ))}{(( links_by_ids.gitlab.username ))}} \end{minipage} \begin{minipage}{3cm} \tikz\path[fill overzoom image={\@photo}]circle[radius=0.45\linewidth]; \end{minipage} (% endif %) \\ \vspace{8px} \par{(( getDynLocalizedStr(intro) | raw ))} \\ % Section: Skills \sectionTitle{(( getLocalizedStr('skills.title') ))} \begin{keywords} (% for skill in skills %) \keywordsentry{(( getDynLocalizedStr(skill.name) ))}{(% for k in skill.keywords %)(( k ))(% if not loop.last %), (% endif %)(% endfor %)} (% endfor %) \end{keywords} \vspace{.5em} % Section: Professionals experiences \sectionTitle{(( getLocalizedStr('experience.pro') ))} \begin{longtable}{R{\leftcolumn}|E} (% for exp in pro_projects %) \textbf{(( _self.cdate(exp.to) ))} & (% if exp.detailled %) \link{(( website ))/(( getLocale() ))/projects/(( exp.id )).html}{% (% endif %) \textbf{(( getDynLocalizedStr(exp.name) ))}(% if exp.detailled %)}(% endif %) \\* \textbf{(( _self.cdate(exp.from) ))} & \textsc{(( exp.organization.name ))} (% if exp.organization.location is defined %), (( exp.organization.location ))(% endif %) \\* & \par{(( getDynLocalizedStr(exp.description) | raw ))} \\ (% if exp.highlights is defined %) & \begin{minipage}[t]{\rightcolumnlength} \begin{itemize} (% for h in exp.highlights[getLocale()] %) \item{(( h | raw ))} (% endfor %) \end{itemize} \end{minipage} \\* (% endif %) \vspace{.5em} & \hspace{-.2em}\footnotesize{(% for t in exp.technologies %)\cvtag{(( t.name ))}(% endfor %)} \\ \emptySeparator (% endfor %) \end{longtable} % Section: Side projects \sectionTitle{(( getLocalizedStr('projects.side.title') | raw ))} \par{(( getLocalizedStr('projects.side.description') | raw ))} \begin{longtable}{l} (% for exp in side_projects %) \begin{minipage}[t]{\dimexpr(\linewidth) - 1.5em} (% if exp.detailled and not anno %) \link{(( website ))/(( getLocale() ))/projects/(( exp.id )).html}{% (% endif %) \textbf{\textsc{(( getDynLocalizedStr(exp.name) | raw ))}}% (% if exp.detailled %)}(% endif %) \hfill \textsc{(( exp.date | format_date(locale=getLocale(), pattern='YYYY') ))}\smallskip\\ (% if not anno %) \iconwithtext{(( exp.link_icon ))}{\link{(( exp.link ))}{(( exp.link_alt ))}} \vspace{.4em} (% endif %) \\ (( getDynLocalizedStr(exp.description) | raw ))\vspace{.4em}\\ \footnotesize{(% for t in exp.technologies %)\cvtag{(( t.name ))}(% endfor %)}\\ \end{minipage} (% if not loop.last %) \vspace{.5em} \\* (% endif %) (% endfor %) \end{longtable} \pagebreak % Section: Volunteering experiences \sectionTitle{(( getLocalizedStr('projects.volunteering.title') ))} \begin{longtable}{R{\leftcolumn}|E} (% for exp in volunteering %) \textbf{(( _self.cdate(exp.date) ))} & \textbf{(( getDynLocalizedStr(exp.name) ))} \\* & \textsc{(( exp.organization.name ))} \\ & \par{(( getDynLocalizedStr(exp.description) | raw ))} \\ (% if not loop.last %) \emptySeparator (% endif %) (% endfor %) \end{longtable} \vspace{1em} % Section: Education \sectionTitle{(( getLocalizedStr('education.title') ))} \begin{longtable}{R{\leftcolumn}|E} (% for exp in education %) \textbf{(( _self.cdate(exp.to) ))} & \textbf{(( getDynLocalizedStr(exp.name) ))} \\* \textbf{(( _self.cdate(exp.from) ))} & \textsc{(( exp.facility.name ))}, (( exp.facility.city )), (( exp.facility.country )) \\* % & \begin{minipage}[t]{\rightcolumnlength} % \begin{itemize} % \item{hello} % \item{hello} % \item{hello} % \end{itemize} % \end{minipage} \\ & (% if exp.degree is defined %)(( getLocalizedStr('education.degree-got') | format(exp.degree.name) | raw )) (% if exp.degree.title is defined %) (( getLocalizedStr('education.degree-title') | format(exp.degree.title) | raw ))(% endif %)(% endif %) \\* (% if not loop.last %) \emptySeparator (% endif %) (% endfor %) \end{longtable} \vspace{.5em} \sectionTitle{(( getLocalizedStr('interests.title') | raw ))} \begin{itemize} (% for item in interests %) \item{\iconwithtext{icons/(( item.icon ))}{(( getDynLocalizedStr(item.name) ))}} (% endfor %) \end{itemize} \vspace{1.1em} % Section: Langues \sectionTitle{(( getLocalizedStr('languages.title') ))} \begin{keywords} (% for lang in languages %) \keywordsentry{(( getLocalizedStr(lang.long) ))}{(( getLocalizedStr('fluency.' ~ lang.level) ))} (% endfor %) \end{keywords} \end{document}