Update AltaCV version

This commit is contained in:
Yorick Barbanneau 2023-07-15 00:49:43 +02:00
parent 4f899df7a5
commit fffb14b3ec
3 changed files with 372 additions and 193 deletions

View file

@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%
% This is altacv.cls (v1.1.5, 1 December 2018) written by % This is altacv.cls (v1.6.5, 3 Nov 2022) written by
% LianTze Lim (liantze@gmail.com). % LianTze Lim (liantze@gmail.com).
% %
%% It may be distributed and/or modified under the %% It may be distributed and/or modified under the
@ -15,30 +15,37 @@
% - https://github.com/akreuzer Added ragged2e option (5 Nov 2018) % - https://github.com/akreuzer Added ragged2e option (5 Nov 2018)
% - https://github.com/stefanogermano Fixed bad boxes and undefined font shape (July 2018) % - https://github.com/stefanogermano Fixed bad boxes and undefined font shape (July 2018)
% - https://github.com/foohyfooh Fixed blank spaces in \cvevent and bad link in README.md (June 2018) % - https://github.com/foohyfooh Fixed blank spaces in \cvevent and bad link in README.md (June 2018)
% - https://github.com/logological Remove redundant hyperref and typos (Apr 2021)
%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01] \NeedsTeXFormat{LaTeX2e}[1995/12/01]
%% v1.4: Detect TL2018 to handle accented characters in class information \ProvidesClass{altacv}[2022/11/03 AltaCV v1.6.5, yet another alternative class for a resume/curriculum vitae.]
\@ifl@t@r\fmtversion{2018/04/01}{\UseRawInputEncoding}{}
\ProvidesClass{altacv}[2018/12/01 AltaCV v1.1.5, yet another alternative class for a résumé/curriculum vitae.]
%% v1.1: Optionally load academicons %% v1.1: Optionally load academicons
\newif\if@academicons %% v1.4: Nope, academicons is unnecessary; fontawesome5 has \faOrcid.
\DeclareOption{academicons}{\@academiconstrue} \DeclareOption{academicons}{\ClassWarning{altacv}{academicons option is now obsolete and unnecessary.}}
%% v1.1.3: Choice of round/square photo %% v1.1.3: Choice of round/square photo
\newif\if@normalphoto \newif\if@normalphoto
\DeclareOption{normalphoto}{\@normalphototrue} \DeclareOption{normalphoto}{\@normalphototrue}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{extarticle}} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{extarticle}}
\newif\if@raggedtwoe \newif\if@raggedtwoe
\DeclareOption{ragged2e}{\@raggedtwoetrue} \DeclareOption{ragged2e}{\@raggedtwoetrue}
%% v1.3: load hyperref for clickable hyperlinks
\newif\if@withhyper
\DeclareOption{withhyper}{\@withhypertrue}
\ProcessOptions\relax \ProcessOptions\relax
\LoadClass{extarticle} \LoadClass{extarticle}
%% v1.3.2 Hopefully this helps make the PDF
%% file more 'friendly' with copy-paste etc
\RequirePackage{etoolbox}
\RequirePackage[a-1b]{pdfx}
\RequirePackage{accsupp}
\RequirePackage[margin=2cm]{geometry} \RequirePackage[margin=2cm]{geometry}
\RequirePackage{fontawesome} \RequirePackage[fixed]{fontawesome5}
\RequirePackage{ifxetex,ifluatex} \RequirePackage{ifxetex,ifluatex}
\RequirePackage{scrlfile} \RequirePackage{scrlfile}
\RequirePackage{xparse}
%% v1.1.5: added for convenience %% v1.1.5: added for convenience
\newif\ifxetexorluatex \newif\ifxetexorluatex
@ -52,65 +59,54 @@
\fi \fi
\fi \fi
%% v1.1: Optionally load academicons \ifxetexorluatex
%% v1.1.5: Handle different versions of academicons \RequirePackage{fontspec}
\if@academicons \else
\ifxetexorluatex %% v1.3.2 attempts to make ligatures
\RequirePackage{fontspec} %% copy-paste as normal characters
%% academicons in TL2018 doesn't require \RequirePackage{cmap}
%% Academicons to be installed in OS fonts \RequirePackage[utf8]{inputenc}
%% so can be loaded directly \RequirePackage[T1]{fontenc}
\@ifl@t@r\fmtversion{2018/04/01}{% \input{glyphtounicode}
\RequirePackage{academicons} \pdfglyphtounicode{f_f}{FB00}
}{% \pdfglyphtounicode{f_f_i}{FB03}
% TL2017 \pdfglyphtounicode{f_f_l}{FB04}
\@ifl@t@r\fmtversion{2017/04/01}{% \pdfglyphtounicode{f_i}{FB01}
\@ifpackagelater{academicons}{2018/03/01}{% \pdfgentounicode=1
\RequirePackage{academicons}
}{%
\let\ori@newfontfamily\newfontfamily%
\renewcommand{\newfontfamily}[2]{}
\RequirePackage{academicons}
\let\newfontfamily\ori@newfontfamily
\newfontfamily{\AI}{academicons.ttf}
}
}{% TL2016 requires the package to be loaded before
% the version can be checked. Only added because
% Overleaf v1 still runs TL2016; will be removed
% when v1 is completely retired.
\let\ori@newfontfamily\newfontfamily%
\renewcommand{\newfontfamily}[2]{}
\RequirePackage{academicons}
\let\newfontfamily\ori@newfontfamily
\newfontfamily{\AI}{academicons.ttf}
}
}
\else
\ClassError{AltaCV}{academicons unsupported by latex or pdflatex. Please compile with xelatex or lualatex}{Please compile with xelatex or lualatex to use the academicons option}
\fi
\fi \fi
\if@raggedtwoe \if@raggedtwoe
\RequirePackage[newcommands]{ragged2e} \RequirePackage[newcommands]{ragged2e}
\fi \fi
\if@withhyper
\AtBeginDocument{%
\hypersetup{hidelinks}
\urlstyle{same}
}
\fi
\RequirePackage{xcolor} \RequirePackage{xcolor}
\colorlet{accent}{blue!70!black} \colorlet{accent}{blue!70!black}
\colorlet{heading}{black}
\colorlet{emphasis}{black} \colorlet{emphasis}{black}
\colorlet{heading}{black}
\colorlet{headingrule}{black}
\colorlet{subheading}{emphasis}
\colorlet{body}{black!80!white} \colorlet{body}{black!80!white}
\colorlet{name}{heading}
\colorlet{tagline}{accent}
\newcommand{\itemmarker}{{\small\textbullet}} \newcommand{\itemmarker}{{\small\textbullet}}
\newcommand{\ratingmarker}{\faCircle} \newcommand{\ratingmarker}{\faCircle}
\RequirePackage{tikz} \RequirePackage{tikz}
\usetikzlibrary{arrows} \usetikzlibrary{arrows}
\RequirePackage[skins]{tcolorbox} \RequirePackage[skins]{tcolorbox}
\RequirePackage{enumitem} \RequirePackage[inline]{enumitem}
\setlist{leftmargin=*,labelsep=0.5em,nosep,itemsep=0.25\baselineskip,after=\vskip0.25\baselineskip} \setlist{leftmargin=*,labelsep=0.5em,nosep,itemsep=0.25\baselineskip,after=\vspace{0.25\baselineskip}}
\setlist[itemize]{label=\itemmarker} \setlist[itemize]{label=\itemmarker}
\RequirePackage{graphicx} \RequirePackage{graphicx}
\RequirePackage{etoolbox} \RequirePackage{trimclip}
\RequirePackage{dashrule} \RequirePackage{dashrule}
\RequirePackage{multirow,tabularx} \RequirePackage{multirow,tabularx}
\RequirePackage{changepage} \RequirePackage{changepage}
@ -123,66 +119,164 @@
\begin{adjustwidth}{}{\dimexpr-\marginparwidth-\marginparsep\relax}} \begin{adjustwidth}{}{\dimexpr-\marginparwidth-\marginparsep\relax}}
{\end{adjustwidth}} {\end{adjustwidth}}
\newcommand{\emailsymbol}{\faAt} %% v1.3.1 \detokenize will break UTF-8 in pdflatex
\newcommand{\phonesymbol}{\faPhone} %% Using alternative from https://tex.stackexchange.com/a/530911/226
\newcommand{\homepagesymbol}{\faChain} \newcommand{\utffriendlydetokenize}[1]{%
\newcommand{\locationsymbol}{\faMapMarker} \scantokens{%
\newcommand{\linkedinsymbol}{\faLinkedin} \catcode`\_=12%
\newcommand{\twittersymbol}{\faTwitter} % \catcode`\^=12%
\newcommand{\githubsymbol}{\faGithub} % \catcode`\{=12%
\newcommand{\orcidsymbol}{\aiOrcid} % \catcode`\}=12%
\newcommand{\mailsymbol}{\faEnvelope} \catcode`\&=12%
\catcode`\$=12%
\catcode`\#=12%
\catcode`\~=12%
% \catcode`\\=12%
{#1}%
}%
}
%% v1.3: Incorporating hyperlinks
%% v1.3.1: using \unfriendlydetokenize to avoid breaking unicode
%% v1.6: Use accsupp so that when copying/pasting the icon from PDF to a text
%% file, the icon name is pasted
\ExplSyntaxOn
\NewDocumentCommand{\printinfo}{m m o}{%
\BeginAccSupp{method=escape,ActualText={#1:~#2}}
\IfNoValueTF{#3}{%
\mbox{\textcolor{accent}{\normalfont #1}~\utffriendlydetokenize{#2}\hspace{2em}}%
}{%
\if@withhyper%
\mbox{\textcolor{accent}{\normalfont #1}~
\href{#3}{\utffriendlydetokenize{#2}}\hspace{2em}}
\else%
\ClassWarning{Please specify [withhyper] option to enable hyperlinks. Printing out full hyperlink prefix #1 for now.}%
\mbox{\textcolor{accent}{\normalfont #1}~{\utffriendlydetokenize{#3#2}}\hspace{2em}}%
\fi%
}%
\EndAccSupp{}
}%
\newcommand{\printinfo}[2]{\mbox{\textcolor{accent}{\normalfont #1}\hspace{0.5em}#2\hspace{2em}}}
%% v1.3: Exploring convenient creation of fields
%% v1.6: Add starred mode to create \printinfo with full URL
\NewDocumentCommand{\NewInfoField}{s m m o}{%
\IfBooleanF{#1}{
\IfNoValueF{#4}{\csdef{#2 hyperprefix}{#4}}%
}
\csdef{#2 symbol}{#3}%
\IfBooleanTF{#1}
{ \csdef{#2}##1##2{%
\if@withhyper
\IfNoValueTF {##2}
{\printinfo{\csuse{#2 symbol}}{##1}}%
{\printinfo{\csuse{#2 symbol}}{##1}[##2]}%
\else
\printinfo{\csuse{#2 symbol}}{##1}%
\fi%
}%
}
{ \csdef{#2}##1{%
\if@withhyper
\IfNoValueTF {#4}
{\printinfo{\csuse{#2 symbol}}{##1}}%
{\printinfo{\csuse{#2 symbol}}{##1}[\csuse{#2 hyperprefix}##1]}%
\else
\printinfo{\csuse{#2 symbol}}{##1}%
\fi%
}%
}
}
\ExplSyntaxOff
\newcommand{\name}[1]{\def\@name{#1}} \newcommand{\name}[1]{\def\@name{#1}}
\newcommand{\tagline}[1]{\def\@tagline{#1}} \newcommand{\tagline}[1]{\def\@tagline{#1}}
\newcommand{\photo}[2]{\def\@photo{#2}\def\@photodiameter{#1}}
\newcommand{\email}[1]{\printinfo{\emailsymbol}{#1}}
\newcommand{\mailaddress}[1]{\printinfo{\mailsymbol}{#1}}
\newcommand{\phone}[1]{\printinfo{\phonesymbol}{#1}}
\newcommand{\homepage}[1]{\printinfo{\homepagesymbol}{#1}}
\newcommand{\twitter}[1]{\printinfo{\twittersymbol}{#1}}
\newcommand{\linkedin}[1]{\printinfo{\linkedinsymbol}{#1}}
\newcommand{\github}[1]{\printinfo{\githubsymbol}{#1}}
\newcommand{\orcid}[1]{\printinfo{\orcidsymbol}{#1}}
\newcommand{\location}[1]{\printinfo{\locationsymbol}{#1}}
\newcommand{\personalinfo}[1]{\def\@personalinfo{#1}} \newcommand{\personalinfo}[1]{\def\@personalinfo{#1}}
\NewInfoField{email}{\faAt}[mailto:]
\NewInfoField{mailaddress}{\faEnvelope}
\NewInfoField{phone}{\faPhone}[tel:]
\NewInfoField{homepage}{\faGlobe}[https://]
\NewInfoField{twitter}{\faTwitter}[https://twitter.com/]
\NewInfoField{linkedin}{\faLinkedin}[https://linkedin.com/in/]
\NewInfoField{github}{\faGithub}[https://github.com/]
% v1.?? Use fontawesome5 for Orcid symbol
\NewInfoField{orcid}{\faOrcid}[https://orcid.org/]
\NewInfoField{location}{\faMapMarker}
% v1.2: Support for multiple photos
\newlength{\altacv@photos@width}
\newlength{\altacv@photo@diam@left}
\newlength{\altacv@photo@diam@right}
\def\altacv@left@photos{}
\def\altacv@right@photos{}
\newcommand{\@makeaphoto}[2]{%
\begin{minipage}{#1}%
\if@normalphoto
\includegraphics[width=\linewidth]{#2}
\else
\tikz\path[fill overzoom image={#2}]circle[radius=0.5\linewidth];
\fi%
\end{minipage}%
}
\newcommand{\altacv@add@photo@left}[1]{%
\appto{\altacv@left@photos}{%
\@makeaphoto{\altacv@photo@diam@left}{#1}\hspace{1ex}%
}%
\addtolength{\altacv@photos@width}{\altacv@photo@diam@left}%
\addtolength{\altacv@photos@width}{1ex}%
}
\newcommand{\altacv@add@photo@right}[1]{%
\appto{\altacv@right@photos}{%
\@makeaphoto{\altacv@photo@diam@right}{#1}\hspace{1ex}%
}%
\addtolength{\altacv@photos@width}{\altacv@photo@diam@right}%
\addtolength{\altacv@photos@width}{1ex}%
}
\newcommand{\photoL}[2]{%
\setlength{\altacv@photo@diam@left}{#1}%
\forcsvlist{\altacv@add@photo@left}{#2}%
}
\newcommand{\photoR}[2]{%
\setlength{\altacv@photo@diam@right}{#1}%
\forcsvlist{\altacv@add@photo@right}{#2}%
}
\let\photo\photoR
\newcommand{\namefont}{\Huge\bfseries}
\newcommand{\taglinefont}{\large\bfseries}
\newcommand{\personalinfofont}{\footnotesize\bfseries}
\newcommand{\cvsectionfont}{\LARGE\bfseries}
\newcommand{\cvsubsectionfont}{\large\bfseries}
\newcommand{\cvsectionline}{\rule{\linewidth}{2pt}}
\newcommand{\makecvheader}{% \newcommand{\makecvheader}{%
\begingroup \begingroup
\ifdef{\@photodiameter}{\begin{minipage}{\dimexpr\linewidth-\@photodiameter-2em}}{}% \altacv@left@photos\hfill%
\raggedright\color{emphasis}% \begin{minipage}{\dimexpr\linewidth-\altacv@photos@width}%
{\Huge\bfseries\MakeUppercase{\@name}\par} \raggedright%
{\namefont\color{name}\MakeUppercase{\@name}\par}
\medskip \medskip
{\large\bfseries\color{accent}\@tagline\par} {\taglinefont\color{tagline}\@tagline\par}
\medskip \medskip
{\footnotesize\bfseries\@personalinfo\par} {\personalinfofont\@personalinfo\par}
\ifdef{\@photodiameter}{%
\end{minipage}\hfill% \end{minipage}\hfill%
\begin{minipage}{\@photodiameter} \altacv@right@photos\par%
\if@normalphoto
\includegraphics[width=\linewidth]{\@photo}
\else
\tikz\path[fill overzoom image={\@photo}]circle[radius=0.5\linewidth];
\fi%
\end{minipage}\par}{}%
\endgroup\medskip \endgroup\medskip
} }
\renewenvironment{quote}{\color{accent}\itshape\large}{\par} \renewenvironment{quote}{\color{accent}\itshape\large}{\par}
\newcommand{\cvsection}[2][]{% \newcommand{\cvsection}[2][]{%
\bigskip% \nointerlineskip\bigskip% %% bugfix in v1.6.2
\ifstrequal{#1}{}{}{\marginpar{\vspace*{\dimexpr1pt-\baselineskip}\raggedright\input{#1}}}% \ifstrequal{#1}{}{}{\marginpar{\vspace*{\dimexpr1pt-\baselineskip}\raggedright\input{#1}}}%
{\color{heading}\LARGE\bfseries\MakeUppercase{#2}}\\[-1ex]% {\color{heading}\cvsectionfont\MakeUppercase{#2}}\\[-1ex]%
{\color{heading}\rule{\linewidth}{2pt}\par}\medskip {\color{headingrule}\cvsectionline\par}\medskip
} }
\newcommand{\cvsubsection}[1]{% \newcommand{\cvsubsection}[1]{%
\smallskip% \smallskip%
{\color{emphasis}\large\bfseries{#1}\par}\medskip {\color{subheading}\cvsubsectionfont{#1}\par}\medskip
} }
% v1.1.4: fixes inconsistent font size % v1.1.4: fixes inconsistent font size
@ -192,8 +286,8 @@
\ifstrequal{#2}{}{}{ \ifstrequal{#2}{}{}{
\textbf{\color{accent}#2}\par \textbf{\color{accent}#2}\par
\smallskip} \smallskip}
\ifstrequal{#3}{}{}{{\small\makebox[0.5\linewidth][l]{\faCalendar\hspace{0.5em}#3}}}% \ifstrequal{#3}{}{}{{\small\makebox[0.5\linewidth][l]{\faCalendar~#3}}}%
\ifstrequal{#4}{}{}{{\small\makebox[0.5\linewidth][l]{\faMapMarker\hspace{0.5em}#4}}}\par \ifstrequal{#4}{}{}{{\small\makebox[0.5\linewidth][l]{\faMapMarker~#4}}}\par
\medskip\normalsize \medskip\normalsize
} }
@ -209,10 +303,17 @@
\tikz[baseline]\node[anchor=base,draw=body!30,rounded corners,inner xsep=1ex,inner ysep =0.75ex,text height=1.5ex,text depth=.25ex]{#1}; \tikz[baseline]\node[anchor=base,draw=body!30,rounded corners,inner xsep=1ex,inner ysep =0.75ex,text height=1.5ex,text depth=.25ex]{#1};
} }
% v1.6: Use accsupp so that the actual numeric value is copied/pasted
% and also support 0.5, 1.5, 2.5, 3.5, 4.5
\newcommand{\cvskill}[2]{% \newcommand{\cvskill}[2]{%
\textcolor{emphasis}{\textbf{#1}}\hfill \textcolor{emphasis}{\textbf{#1}}\hfill
\foreach \x in {1,...,5}{% \BeginAccSupp{method=plain,ActualText={#2}}
\space{\ifnumgreater{\x}{#2}{\color{body!30}}{\color{accent}}\ratingmarker}}\par% \foreach \x in {1,...,5}{%
\ifdimequal{\x pt - #2 pt}{0.5pt}%
{\clipbox*{0pt -0.25ex {.5\width} {\totalheight}}{\color{accent}\ratingmarker}%
\clipbox*{{.5\width} -0.25ex {\width} {\totalheight}}{\color{body!30}\ratingmarker}}
{\ifdimgreater{\x bp}{#2 bp}{\color{body!30}}{\color{accent}}\ratingmarker}%
}\EndAccSupp{}\par%
} }
% Adapted from @Jake's answer at http://tex.stackexchange.com/a/82729/226 % Adapted from @Jake's answer at http://tex.stackexchange.com/a/82729/226
@ -260,7 +361,8 @@
(-\newcumnum:\innerradius) arc (-\newcumnum:-(\cumnum):\innerradius) -- cycle; (-\newcumnum:\innerradius) arc (-\newcumnum:-(\cumnum):\innerradius) -- cycle;
% Draw the data labels % Draw the data labels
\draw [*-,thin,emphasis] node [append after command={(\midangle:\midradius pt) -- (\midangle:\outerradius + 1ex) -- (\tikzlastnode)}] at (\midangle:\outerradius + 1ex) [xshift=\labelshiftdir*0.5cm,inner sep=1ex, outer sep=0pt, text width=\width,anchor=\textanchor,align=\textalign,font=\small,text=body]{\name}; % v1.6: Use accsupp so that the numeric number is copied/pasted too
\draw [*-,thin,emphasis] node [append after command={(\midangle:\midradius pt) -- (\midangle:\outerradius + 1ex) -- (\tikzlastnode)}] at (\midangle:\outerradius + 1ex) [xshift=\labelshiftdir*0.5cm,inner sep=1ex, outer sep=0pt, text width=\width,anchor=\textanchor,align=\textalign,font=\small,text=body]{\BeginAccSupp{method=pdfstringdef,ActualText={\name: \value}}\name\EndAccSupp{}};
% Set the old cumulated angle to the new value % Set the old cumulated angle to the new value
\global\let\cumnum=\newcumnum \global\let\cumnum=\newcumnum
} }
@ -273,24 +375,18 @@
\newcommand{\cvref}[3]{% \newcommand{\cvref}[3]{%
\smallskip \smallskip
\textcolor{emphasis}{\textbf{#1}}\par \textcolor{emphasis}{\textbf{#1}}\par
\begin{description}[font=\color{accent},style=multiline,leftmargin=1.35em] \begin{description}[font=\color{accent},style=multiline,leftmargin=1.35em,align=left]
\item[\normalfont\emailsymbol] #2 \item[\small\normalfont\emailsymbol] #2
\item[\small\normalfont\mailsymbol] #3 \item[\small\normalfont\mailaddresssymbol] #3
\end{description} \end{description}
% \medskip % \medskip
} }
\newenvironment{cvcolumn}[1]{\begin{minipage}[t]{#1}\raggedright}{\end{minipage}} \newenvironment{cvcolumn}[1]{\begin{minipage}[t]{#1}\raggedright}{\end{minipage}}
\RequirePackage[backend=biber,style=authoryear,sorting=ydnt]{biblatex} % v1.5 Move biblatex-related code to separate .cfg file
%% For removing numbering entirely when using a numeric style % so that it's easier to change and customise the style for
% \setlength{\bibhang}{1em} % publication lists
% \DeclareFieldFormat{labelnumberwidth}{\makebox[\bibhang][l]{\itemmarker}}
% \setlength{\biblabelsep}{0pt}
\defbibheading{pubtype}{\cvsubsection{#1}}
\renewcommand{\bibsetup}{\vspace*{-\baselineskip}}
\AtEveryBibitem{\makebox[\bibhang][l]{\itemmarker}}
\setlength{\bibitemsep}{0.25\baselineskip}
% v1.1.2: make it easier to add a sidebar aligned with top of next page % v1.1.2: make it easier to add a sidebar aligned with top of next page
\RequirePackage{afterpage} \RequirePackage{afterpage}
@ -300,7 +396,36 @@
} }
\newcommand{\addnextpagesidebar}[2][]{\afterpage{\addsidebar[#1]{#2}}} \newcommand{\addnextpagesidebar}[2][]{\afterpage{\addsidebar[#1]{#2}}}
\AtBeginDocument{% % v1.6.5 But provide for ability to highlight names in publication list
\RequirePackage{pgffor}
\def\my@namelist{}
\newcommand{\mynames}[1]{\def\my@namelist{#1}}
\newtoggle{boldname}
\AddToHook{package/biblatex/after}{
\renewcommand*{\mkbibnamefamily}[1]{%
\global\togglefalse{boldname}%
\foreach \my@fname / \my@gname in \my@namelist {%
\ifboolexpr{ test {\ifdefstrequal{\namepartfamily}{\my@fname}}
and
test {\ifdefstrequal{\namepartgiven}{\my@gname}}}
{\global\toggletrue{boldname}}{}%
}%
\iftoggle{boldname}{\textbf{#1}}{#1}%
}
\renewcommand*{\mkbibnamegiven}[1]{%
\global\togglefalse{boldname}%
\foreach \my@fname / \my@gname in \my@namelist{%
\ifboolexpr{ test {\ifdefstrequal{\namepartfamily}{\my@fname}}
and
test {\ifdefstrequal{\namepartgiven}{\my@gname}}}
{\global\toggletrue{boldname}\breakforeach}{}%
}%
\iftoggle{boldname}{\textbf{#1}}{#1}%
}
}
\AddToHook{begindocument/before}{%
\pagestyle{empty} \pagestyle{empty}
\color{body} \color{body}
\raggedright \raggedright

View file

@ -1,5 +1,5 @@
\documentclass[9pt,a4paper,ragged2e,normalphoto]{altacv} \documentclass[8pt,a4paper,ragged2e,normalphoto]{altacv}
\geometry{left=1cm,right=9cm,marginparwidth=6.8cm,marginparsep=1.2cm,top=1.25cm,bottom=1.25cm} \geometry{left=1cm,right=1cm,marginparwidth=6.8cm,marginparsep=1.2cm,top=1.25cm,bottom=1.25cm}
\setmainfont{Lato} \setmainfont{Lato}
\definecolor{ElectricMagenta}{HTML}{F268B3} \definecolor{ElectricMagenta}{HTML}{F268B3}
@ -7,63 +7,97 @@
\definecolor{SlateGrey}{HTML}{2E2E2E} \definecolor{SlateGrey}{HTML}{2E2E2E}
\definecolor{LightGrey}{HTML}{666666} \definecolor{LightGrey}{HTML}{666666}
\colorlet{heading}{ElectricMagenta} \colorlet{heading}{ElectricMagenta}
\colorlet{headingrule}{ElectricMagenta}
\colorlet{tagline}{ElectricGreen}
\colorlet{accent}{ElectricGreen} \colorlet{accent}{ElectricGreen}
\colorlet{emphasis}{LightGrey} \colorlet{emphasis}{LightGrey}
\colorlet{body}{SlateGrey} \colorlet{body}{SlateGrey}
\usepackage{fontawesome5} \usepackage{fontawesome5}
\usepackage[pdfborderstyle={/S/U/W .5}, urlbordercolor=ElectricMagenta]{hyperref} \usepackage{hyperref}
\hypersetup{
pdfborderstyle={/S/U/W 0}
}
\usepackage{soul}
\setulcolor{ElectricMagenta}
\usepackage{paracol}
\renewcommand{\footnotesize}{\fontsize{8pt}{11pt}\selectfont} \renewcommand{\footnotesize}{\fontsize{8pt}{11pt}\selectfont}
\renewcommand{\itemmarker}{{\small\textbullet}} \renewcommand{\itemmarker}{{\small\textbullet}}
\renewcommand{\ratingmarker}{\textbullet} \renewcommand{\ratingmarker}{\textbullet}
\begin{document} \renewcommand{\cvsectionline}{\rule{\linewidth}{1pt}}
\name{Yorick Barbanneau}
\tagline{Administrateur systèmes spécialisé Open-Source, geek curieux, persévérant et passionné.} \setulcolor{ElectricMagenta}
\photo{2.8cm}{images/generated/souris.png} \newcommand{\link}[2]{
\personalinfo{ \href{#1}{\ul{{\color{ElectricGreen}\fontsize{6pt}{8pt}\faLink} #2}}
\email{ephase@xieme-art.org}
\phone{+(33)6 86 27 42 41}
\mailaddress{218 rue de Suzon, entrée K appt. 325, 33400 Talence (FR)}
\printinfo{\faCarSide}{permis B et véhicule}
\printinfo{\faChild}{Marié, deux enfants}
} }
\begin{fullwidth} \begin{document}
\makecvheader
\end{fullwidth}
\cvsection[sidebar_page1.tex]{Expériences} \name{Yorick Barbanneau}
\tagline{Administrateur systèmes spécialisé Open-Source, geek curieux, persévérant et passionné.}
\photoR{2.4cm}{images/generated/souris.pdf}
\personalinfo{
\phone{+(33)6 86 27 42 41}
\email{ephase@xieme-art.org}
\mailaddress{218 rue de Suzon, entrée K appt. 325, 33400 Talence}
\printinfo{\faChild}{Marié, deux enfants}
\printinfo{\faCarSide}{permis B et véhicule}
}
\makecvheader
\columnratio{0.7}
\begin{paracol}{2}
\cvsection{Expériences}
\cvevent{Administrateur Systèmes}{Aliénor.net}{depuis août 2021}{Le Bouscat} \cvevent{Administrateur Systèmes}{Aliénor.net}{depuis août 2021}{Le Bouscat}
\textit{Gestion des serveurs Linux, des services associés, de leur maintien en \textit{Gestion d'un datacenter principalement orienté hégergement web au
condition opérationnelle et évolutions} sein d'une équipe de 5 administrateurs et en lien avec deux ingénieurs
infrastructure.}
\vspace{5pt} \vspace{5pt}
\begin{itemize} \begin{itemize}
\item Installation de machines (virtuelles conteneurs) \item Conception d'architecture (machines virtuelles, conteneurs)
\item Installation de services (web, bases de données, load-balancers / \item Installation de services (web, bases de données, load-balancers /
reverse-proxy \textellipsis) reverse-proxy \textellipsis)
\item Interventions sur incidents, diagnostics et écriture de rapports \item Réponse sur incidents : diagnostic, intervention, écriture de rapport
et prise de direction de restitution au client
\item Écriture de script (Bash, Python) et d'éléments d'automatisation avec
Ansible
\item Participation à la mise en place d'un \textit{monorepo} et
de \textit{revue de code} pour l'\textit{Infra as Code}.
\item Travail sur la modernisation de l'infrastructure, notamment la partie
authentification (PoC FreeIPA).
\end{itemize} \end{itemize}
\divider \divider
\cvevent{Technicien informatique}{Centres d'animation de Bordeaux}{2006 \cvevent{Technicien informatique}{Centres d'animation de Bordeaux}{2006
-- 2021}{Bordeaux} -- 2021}{Bordeaux}
\textit{Maintien en condition opérationnelle et évolution du système \textit{Maintien en condition opérationnelle et évolution du système
d'information de l'association sous la direction du DSI} d'information de l'association sous la direction du DSI (300 postes clients,
40 serveurs)}
\vspace{5pt} \vspace{5pt}
\begin{itemize} \begin{itemize}
\item Mise en place de l'infrastructure de gestion du service informatique \item Mise en place de l'infrastructure de gestion du service informatique
\item Gestion du parc de serveurs et de postes clients (GLPI, Nextcloud, Dokuwiki)
\item Modernisation de l'ensemble des réseaux (Wifi 5, OpenWRT, vlan,
Squid + Squidguard)
\item Mise en place de serveur de fichiers avec TrueNAS dans les différentes
structures avec réplication ZFS.
\item Écriture et maintenance de scripts divers (déploiement, sauvegarde,
\textellipsis) dans divers langages (Python, Bash, Powershell, ksh)
\end{itemize} \end{itemize}
\divider \divider
\cvevent{Accompagnateur TIC}{Centres d'animation de Bordeaux}{1999 -- 2006}{Bordeaux} \cvevent{Accompagnateur TIC}{Centres d'animation de Bordeaux}{1999 -- 2006}{Bordeaux}
\textit{Gestion technique d'un Espace Culture Multimédia, le face à face \textit{Gestion d'un Espace Culture Multimédia -- lieu de médiation
pédagogique et le soutien technique d'artistes en résidence.} avec le numérique ouvert dans une structure à vocation sociale -- que se
soit la partie technique, le face à face pédagogique ou le soutien technique
d'artistes en résidence.}
\vspace{5pt} \vspace{5pt}
\cvsection{Expériences extra-professionnelles} \cvsection{Expériences extra-professionnelles}
@ -71,7 +105,7 @@ pédagogique et le soutien technique d'artistes en résidence.}
\cvevent{Artiste Multimédia}{Compagnie Gigacircus}{2005 -- 2021}{Villefagnan} \cvevent{Artiste Multimédia}{Compagnie Gigacircus}{2005 -- 2021}{Villefagnan}
\textit{Croisement dartistes polyvalents, Gigacircus relie les arts numériques \textit{Croisement dartistes polyvalents, Gigacircus relie les arts numériques
à lespace public ou naturel, tout en nourrissant une dynamique à lespace public ou naturel, tout en nourrissant une dynamique
interculturelle sur des problématiques dart anthropologique.} - \href{https://gigacircus.net}{gigacircus.net} interculturelle sur des problématiques dart anthropologique.} - \link{https://gigacircus.net}{gigacircus.net}
\vspace{5pt} \vspace{5pt}
\begin{itemize} \begin{itemize}
\item{Participation au processus de création de la compagnie} \item{Participation au processus de création de la compagnie}
@ -83,13 +117,91 @@ pédagogique et le soutien technique d'artistes en résidence.}
\cvevent{Membre fondateur}{Collectif Giroll}{2006 -- 2021}{Bordeaux} \cvevent{Membre fondateur}{Collectif Giroll}{2006 -- 2021}{Bordeaux}
\textit{Créé en 2006, Giroll pour Gironde Logiciel Libres est un collectif \textit{Créé en 2006, Giroll pour Gironde Logiciel Libres est un collectif
fédéré autour des Cultures Libres.} - \href{https://www.giroll.org}{giroll.org} fédéré autour des Cultures Libres. Membre fondateur, j'y ai animé de nombreux
ateliers pour tous niveaux, organisé de nombreux événements et participé
l'émission de webradio mensuelle autour des Cultures Libres.} - \link{https://www.giroll.org}{giroll.org}
\vspace{5pt} \vspace{5pt}
\cvsection{Divers} \cvsection{Divers}
je suis un amateur de jeux-vidéo, en ce moment c'est \textit{System Shock} je suis un amateur de jeux-vidéo, en ce moment c'est \textit{System Shock}
versio Remasterisée de Nightdive. J'écris parfois sur mon blog lorsque j'en ai version remasterisée de Nightdive. J'écris parfois sur mon blog lorsque j'en ai
le temps. le temps. Mon projet du moment : configurer mes différentes machines de façon
\textit{reproductible} et \textit{immuable} avec Nix (et NixOS).
\switchcolumn
\vspace{2.5pt}
\cvsection{Formation}
\cvevent{Master Ingénieurie de l'Informatique}{Université de Bordeaux}{depuis
2021}{Bordeaux}
\textit{Dans la suite logique de ma licence, j'ai choisi de continuer ma reprise
d'étude en intégrant ce cursus encore expérimental consilliant études et travail
salarié.}
\divider
\cvevent{Formation Ansible}{Dawan}{mars 2022}{en ligne}
\vspace{5pt}
\cvevent{Licence Professionnelle ADSILLH}{Université de Bordeaux}{2018-2021}
{Bordeaux}
\textbf{Mention Très Bien}
\vspace{10pt}
\cvevent{BTS informatique de gestion}{Lycée Bertran de Born}{1999}{Périgueux}
\cvsection{Quelques Compétences}
\cvskill{Bash}{5}
\cvskill{Python, Powershell}{4}
\cvskill{Ansible}{4}
\cvskill{C, SQL}{3}
\divider
\cvskill{Apache, Nginx, HAProxy}{4}
\cvskill{PostgreSQL, MariaDB}{3}
\cvskill{Suite Telegraf, Grafana}{2}
\divider
\cvskill{Conteneurisation (Jail BSD, Docker) }{4}
\cvskill{Réseaux TCP/IP}{3}
\cvskill{VMWare, Proxmox}{3}
\cvsection{Langues}
\cvskill{Français - langue maternelle}{5}
\divider
\cvskill{Anglais lu}{4}
\cvskill{Anglais écris et parlé}{3}
\divider
\cvskill{Espagnol}{2}
\cvsection{Quelques liens}
\fontsize{8pt}{10pt}\selectfont
\ul{{\color{ElectricGreen}\faLink}
{\href{https://xieme-art.org}{\mbox{xieme-art.org}}}
} -- mon blog\\
\vspace{3pt}
\ul{{\color{ElectricGreen}\faMastodon}
{\href{https://toots.aquilenet.fr/@ephase}{@ephase@toot.aquilenet.fr}}
}\\
\vspace{3pt}
\ul{{\color{ElectricGreen}\faGitSquare}
{\href{https://git.epha.se/ephase}{git.epha.se}}
}\\
\vspace{3pt}
\ul{{\color{ElectricGreen}\faLinkedin}
{\href{https://www.linkedin.com/in/ephase/}{ephase}}
}\\
\end{paracol}
\end{document} \end{document}

View file

@ -1,58 +0,0 @@
\cvsection{Formation}
\cvevent{Master Ingénieurie de l'Informatique}{Université de Bordeaux}{depuis
2021}{Bordeaux}
\textit{Dans la suite logique de ma licence, j'ai choisi de continuer ma reprise
d'étude en intégrant ce cursus encore expérimental consilliant études et travail
salarié.}
\divider
\cvevent{Formation Ansible}{Dawan}{mars 2022}{en ligne}
\vspace{5pt}
\cvevent{Licence Professionelle ADSILLH}{Université de Bordeaux}{2018-2021}
{Bordeaux}
\textbg{Mention Très Bien}
\vspace{10pt}
\cvevent{BTS informatique de gestion}{Lycée Bertran de Born}{1999}{Périgueux}
\cvsection{Quelques Compétences}
\cvskill{Bash}{5}
\cvskill{Python, Powershell}{4}
\cvskill{HTML, CSS}{4}
\cvskill{C, SQL}{3}
\divider
\cvskill{Apache, Nginx PostgreSQL, MariaDB}{4}
\cvskill{Ansible, HAProxy}{3}
\cvskill{Suite Telegraf, Grafana}{2}
\divider
\cvskill{Réseaux TCP/IP}{4}
\cvskill{Jails BSD, Docker }{3}
\cvskill{VMWare, Proxmox}{3}
\cvsection{Langues}
\cvskill{Français - langue maternelle}{5}
\divider
\cvskill{Anglais lu}{4}
\cvskill{Anglais écris et parlé}{3}
\divider
\cvskill{Espagnol}{2}
\cvsection{En savoir plus}
\fontsize{8pt}{10pt}\selectfont
{\homepage{\href{https://xieme-art.org/}{xieme-art.org}}}\\
{\printinfo{\faMastodon}{\href{https://toots.aquilenet.fr/@ephase}{@ephase@toot.aquilenet.fr}}}\\
{\printinfo{\faGitSquare}{\href{https://git.epha.se/ephase}{git.epha.se}}}\\
{\github{\href{https://github.com/ephase/}{ephase}}\\