diff --git a/resume/README.md b/resume/README.md new file mode 100644 index 0000000..cf4dda8 --- /dev/null +++ b/resume/README.md @@ -0,0 +1,173 @@ +# AltaCV, yet another LaTeX CV/Résumé class + +v1.6.2 (28 Aug 2021), by LianTze Lim (liantze@gmail.com) + +* Starred `\NewInfoField*` command to handle Mastodon; Icons, `\cvskills`, `\wheelchart` have "copyable" text values; `\cvskill` supports numerical values {0.5, 1, ..., 4.5, 5} on 21 May 2021 +* Moved `biblatex`-related code to `*.cfg` files for easier edit on 8 May 2021 +* Removed dependency on `academicons` on 12 Apr 2021 +* Clickable hyperlinked info fields added on 10 May 2020 +* Sample file with new `paracol` layout added on 2 February 2020 + +(Thanks to [Nur](https://github.com/nurh) for the name.) + +It all started with this: + +[](https://twitter.com/Leonduck/status/764281546408923136) + +Leonardo was talking about a [résumé of Marissa Mayer that Business Insider put together](http://www.businessinsider.my/a-sample-resume-for-marissa-mayer-2016-7/) using [enhancv.com](https://enhancv.com). +I _knew_ I had to do something about it. And so AltaCV was born. + +## Samples + +This is how the re-created résumé looks like ([view/open on Overleaf](https://www.overleaf.com/latex/examples/recreating-business-insiders-cv-of-marissa-mayer-using-altacv/gtqfpbwncfvp)): + +Marissa Mayer's résumé, re-created with AltaCV + +Though if you're creating your own CV/résumé, you'd probably prefer using the basic template ([view/open on Overleaf](https://www.overleaf.com/latex/templates/altacv-template/trgqjpwnmtgv)): + +sample barebones AltaCV template + + +## Requirements and Compilation + +* pdflatex + biber + pdflatex +* AltaCV uses [`fontawesome5`](http://www.ctan.org/pkg/fontawesome5). +* Use the `normalphoto` option to get normal (i.e. non-circular) photos. +* As of v1.2 you can add multiple photos on the left or right: `\photoL{2cm}{logo1}` and `\photoR{2.5cm}{logo2,photo}`. (`\photo` will work like `\photoR`.) Separate your image filenames with commas _without_ spaces. +* Use the `ragged2e` option to activate hyphenations while keeping text left-justified; line endings will thus be less jagged and more aesthetically pleasing. +* As of v1.3 the `withhyper` document class option will make the "personal info" fields into clickable hyperlinks (where it makes sense). See below for more details. +* Can now be compiled with pdflatex, XeLaTeX and LuaLaTeX! + * Note that to compile with XeLaTeX, you should use a command line as follows, per [the `pdfx` documentation](http://mirrors.ctan.org/macros/latex/contrib/pdfx/pdfx.pdf): `xelatex -shell-escape -output-driver="xdvipdfmx -z 0" sample.tex` +* The samples here use the [Lato](http://www.latofonts.com/lato-free-fonts/) and [Roboto Slab fonts](https://github.com/googlefonts/robotoslab). Feel free to use a different typeface package instead—often a different typeface will change the entire CV's feel. + +## `sample.tex` [WAS `sample-alt.tex` 2 FEBRUARY 2020, DEFAULT SINCE 10 MAY 2020] ## +Many users have overlooked the optional argument of `\cvsection` to insert the right sidebar contents, and often confused that the right sidebar doesn't automatically break across pages. This new layout uses the `paracol` package for typesetting the left and right columns that _can_ break across pages. It also makes changing the column widths easier: + +```latex +%% Set the left/right column width ratio to 6:4. +\columnratio{0.6} + +% Start a 2-column paracol. Both the left and right columns will automatically +% break across pages if things get too long. +\begin{paracol}{2} +\cvsection{Experience} +... +... END OF LEFT COLUMN CONTENTS ... + +% Now switch to the right column. +\switchcolumn +\cvsection{Education} +... +...END OF RIGHT COLUMN CONTENTS ... +\end{paracol} +``` +You can also use `\swithcolumn*` for "synchronising" the columns, as well as other commands from the `paracol` package. See the [`paracol` package documentation](http://texdoc.net/pkg/paracol) for further details. + +**You do not need use the `fullwidth` environment nor use optional arguments with `\cvsection` with this new template.** + +## Clickable Info fields + +As of v1.3, the `withhyper` document class option will load the `hyperref` package, and make fields in the personal detail fields into clickable hyperlinks (where it makes sense anyway). + +*BIG CAVEAT:* Remember that not all readers may want to click on hyperlinks in PDFs. You may therefore sometimes want to _remove_ `withhyper`, and spell out the field URL details a bit more completely, e.g. `\github{github.com/your-id}`. + +Anyway assuming that you _do_ keep `withhyper` enabled: For each field e.g. `\homepage{foobar.com}`, a `\homepagesymbol` has been defined, and the clickable hyperlink is generated by prepending the `\homepagehyperprefix` to `foobar.com`. The `\homepgehyperprefix` is defined to be `\https://`, so this generates the hyperlink `https://foobar.com`. + +If your homepage doesn't use HTTPS yet, or if you want to use a different symbol, you can re-define them with +```latex +\renewcommand{\homepagehyperprefix}{http://} +\renewcommand{\homepagesymbol}{\faLink} +``` + + +## New Information Fields #### + +I've decided against adding definitions for too many fields and symbols in the `.cls` itself; otherwise we'll have all possible platforms in the world (and more services are born everyday!) within `altacv.cls` before we know it. + +You can actually just typeset your own arbitrary information fields using the `\printinfo{symbol}{detail}[optional hyperlink prefix]` command within `\personalinfo`: + +````latex +\printinfo{\faPaw}{Hey ho!} +\printinfo{\faGitLab}{your-handle}[https://gitlab.com/] +```` + +Or if you really prefer, you can define a new field yourself with `\NewInfoFiled{fieldname}{symbol}[optional hyperlink prefix]` before using it: + +````latex +\NewInfoField{gitlab}{\faGitlab}[https://gitlab.com/] +\gitlab{your_id} +```` + +For services and platforms like Mastodon where there isn't a straightforward relation between the more popular user ID or nickname and the hyperlink, you can use `\printinfo` directly e.g. + +```latex +\printinfo{\faMastodon}{@username@instace}[https://instance.url/@username] +``` + +But if you absolutely want to create new dedicated info fields for such platforms, then use `\NewInfoField*` with a star: + +```latex +\NewInfoField*{mastodon}{\faMastodon} +``` + +then you can use `\mastodon` with TWO arguments where the 2nd argument is the full hyperlink. + +```latex +\mastodon{@username@instance}{https://instance.url/@username} +``` + + +## Configurable colours + +Use `\colorlet` or `\definecolor` to change these. +* `accent` +* `emphasis` +* `heading` +* `headingrule` +* `subheading` +* `body` +* `name` +* `tagline` + +## Configurable fonts + +Use `\renewcommand` to change these. +* `\namefont` +* `\taglinefont` +* `\personalinfofont` +* `\cvsectionfont` +* `\cvsubsectionfont` + +--- + +## `legacy/sample-old.tex` + +This is the original sample template file until 5 May 2020. The right sidebar is actually a _`marginpar`_, so it doesn't support footnote and cannot automatically break across pages if it's too long. You would need to split your right sidebar contents into separate files e.g. `p1sidebar.tex` and `p2sidebar.tex`, and insert them as the optional argument of the `\cvsection{...}` that you want to align them with: + +```latex +\cvsection[p1sidebar]{Experience} +... +... END OF FIRST PAGE OF YOUR CV ... +\cvsection[page2sidebar]{Publications} +... +``` + +This assumes that the next page's main column would start immediately with a `\cvsection`, so that the top of your right sidebar contents also appear at the top of the page. Now if the _next_ page doesn't start with a `\cvsection` but you'd still like to add a sidebar, then use this command on the _current_ page to add it. The optional argument lets you pull up the sidebar a bit so that it looks aligned with the top of the main column: + +```latex +\addnextpagesidebar[-1ex]{page3sidebar} +``` + +If you want to change the left and right columns' widths, you'll need to tinker with the `right` (distance from paper's right edge until the main column's right edge) and `marginparwidth` (width of the right sidebar) options in the `\geometry` line. For example, to make the right sidebar wider by 2cm, you could use + +```latex +%% original was right=9cm, marginparwidth=6.8cm +\geometry{left=1cm,right=11cm,marginparwidth=8.8cm,marginparsep=1.2cm,top=1cm,bottom=1cm} +``` +as well as doing a bit of arithmetic when you're making the header to get it full-width, i.e. reducing the sidebar by 2cm and extending the main column by 2cm. + +```latex +\begin{adjustwidth}{}{-10cm} %% original was -8cm +\makecvheader +\end{adjustwidth} +``` diff --git a/resume/altacv.cls b/resume/altacv.cls new file mode 100644 index 0000000..1c4e44d --- /dev/null +++ b/resume/altacv.cls @@ -0,0 +1,440 @@ +%%%%%%%%%%%%%%%%% +% This is altacv.cls (v1.6.1, 22 Aug 2021) written by +% LianTze Lim (liantze@gmail.com). +% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% 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 2003/12/01 or later. +%% +%% +% Contributions: +% - 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/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] +\ProvidesClass{altacv}[2021/08/28 AltaCV v1.6.2, yet another alternative class for a resume/curriculum vitae.] + +%% v1.1: Optionally load academicons +%% v1.4: Nope, academicons is unnecessary; fontawesome5 has \faOrcid. +\DeclareOption{academicons}{\ClassWarning{altacv}{academicons option is now obsolete and unnecessary.}} +%% v1.1.3: Choice of round/square photo +\newif\if@normalphoto +\DeclareOption{normalphoto}{\@normalphototrue} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{extarticle}} +\newif\if@raggedtwoe +\DeclareOption{ragged2e}{\@raggedtwoetrue} +%% v1.3: load hyperref for clickable hyperlinks +\newif\if@withhyper +\DeclareOption{withhyper}{\@withhypertrue} +\ProcessOptions\relax + +\LoadClass{article} +%% v1.3.2 Hopefully this helps make the PDF +%% file more 'friendly' with copy-paste etc +%% v 1.6.1 Temporary fix for pdfx incompatibility; see https://tex.stackexchange.com/a/610445 +\RequirePackage{etoolbox} +\@ifl@t@r\fmtversion{2021-06-01}% + {\AddToHook{package/after/xmpincl} + {\patchcmd\mcs@xmpincl@patchFile{\if\par}{\ifx\par}{}{\fail}}}{} +\RequirePackage[a-1b]{pdfx} +%% v1.3.3 Temporary fix for pdfx and biblatex incompatibility +%% (Thanks to @badetitou for highlighting this issue) +%% https://github.com/plk/biblatex/issues/1044 +%% Will be removed when fix is released in biblatex 3.16 +% \catcode30=12 +\RequirePackage{accsupp} +\RequirePackage[margin=2cm]{geometry} +\RequirePackage[fixed]{fontawesome5} +\RequirePackage{ifxetex,ifluatex} +\RequirePackage{scrlfile} +\RequirePackage{xparse} + +%% v1.1.5: added for convenience +\newif\ifxetexorluatex +\ifxetex + \xetexorluatextrue +\else + \ifluatex + \xetexorluatextrue + \else + \xetexorluatexfalse + \fi +\fi + +\ifxetexorluatex + \RequirePackage{fontspec} +\else + %% v1.3.2 attempts to make ligatures + %% copy-paste as normal characters + \RequirePackage{cmap} + \RequirePackage[utf8]{inputenc} + \RequirePackage[T1]{fontenc} + \input{glyphtounicode} + \pdfglyphtounicode{f_f}{FB00} + \pdfglyphtounicode{f_f_i}{FB03} + \pdfglyphtounicode{f_f_l}{FB04} + \pdfglyphtounicode{f_i}{FB01} + \pdfgentounicode=1 +\fi + +\if@raggedtwoe + \RequirePackage[newcommands]{ragged2e} +\fi + +\if@withhyper + \AtBeginDocument{% + \hypersetup{hidelinks} + \urlstyle{same} + } +\fi + +\RequirePackage{xcolor} + +\colorlet{accent}{blue!70!black} +\colorlet{emphasis}{black} +\colorlet{heading}{black} +\colorlet{headingrule}{black} +\colorlet{subheading}{emphasis} +\colorlet{body}{black!80!white} +\colorlet{name}{heading} +\colorlet{tagline}{accent} +\newcommand{\itemmarker}{{\small\textbullet}} +\newcommand{\ratingmarker}{\faCircle} + +\RequirePackage{tikz} +\usetikzlibrary{arrows} +\RequirePackage[skins]{tcolorbox} +\RequirePackage[inline]{enumitem} +\setlist{leftmargin=*,labelsep=0.5em,nosep,itemsep=0.25\baselineskip,after=\vspace{0.25\baselineskip}} +\setlist[itemize]{label=\itemmarker} +\RequirePackage{graphicx} +\RequirePackage{trimclip} +\RequirePackage{dashrule} +\RequirePackage{multirow,tabularx} +\RequirePackage{changepage} +% \RequirePackage{marginfix} + +\setlength{\parindent}{0pt} +\newcommand{\divider}{\textcolor{body!30}{\hdashrule{\linewidth}{0.6pt}{0.5ex}}\medskip} + +\newenvironment{fullwidth}{% + \begin{adjustwidth}{}{\dimexpr-\marginparwidth-\marginparsep\relax}} + {\end{adjustwidth}} + +%% v1.3.1 \detokenize will break UTF-8 in pdflatex +%% Using alternative from https://tex.stackexchange.com/a/530911/226 +\newcommand{\utffriendlydetokenize}[1]{% +\scantokens{% + \catcode`\_=12% +% \catcode`\^=12% +% \catcode`\{=12% +% \catcode`\}=12% + \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{} +}% + + +%% 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{\tagline}[1]{\def\@tagline{#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/] +\NewInfoField{githubProject}{\faGithub}[https://github.com/asimonson1125/] +% 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{\makecvheader}{% + \begingroup + \altacv@left@photos\hfill% + \begin{minipage}{\dimexpr\linewidth-\altacv@photos@width}% + \raggedright% + {\namefont\color{name}\MakeUppercase{\@name}\par} + \medskip + {\taglinefont\color{tagline}\@tagline\par} + \medskip + {\personalinfofont\@personalinfo\par} + \end{minipage}\hfill% + \altacv@right@photos\par% + \endgroup\medskip +} + +\renewenvironment{quote}{\color{accent}\itshape\large}{\par} + +\newcommand{\cvsection}[2][]{% + \nointerlineskip\bigskip% %% bugfix in v1.6.2 + \ifstrequal{#1}{}{}{\marginpar{\vspace*{\dimexpr1pt-\baselineskip}\raggedright\input{#1}}}% + {\color{heading}\cvsectionfont\MakeUppercase{#2}}\\[-1ex]% + {\color{headingrule}\rule{\linewidth}{2pt}\par}\medskip +} + +\newcommand{\cvsubsection}[1]{% + \smallskip% + {\color{subheading}\cvsubsectionfont{#1}\par}\medskip +} + +% v1.1.4: fixes inconsistent font size +\newcommand{\cvevent}[4]{% + {\large\color{emphasis}#1\par} + \smallskip\normalsize + \ifstrequal{#2}{}{}{ + \textbf{\color{accent}#2}\par + \smallskip} + \ifstrequal{#3}{}{}{{\small\makebox[0.5\linewidth][l]{\faCalendar~#3}}}% + \ifstrequal{#4}{}{}{{\small\makebox[0.5\linewidth][l]{\faMapMarker~#4}}}\par + \medskip\normalsize +} + +\newcommand{\cvproject}[2]{% + {\large\color{emphasis}#1} + \medskip\normalsize + {\color{accent}\hspace{.1in}$|$\hspace{.05in}#2}\par + \normalsize +} + +\newcommand{\cvactivity}[5]{% + {\large\color{emphasis}#1} + \medskip\normalsize + {\color{accent}\hspace{.1in}#2\hspace{.05in}#3}\par + \smallskip + \ifstrequal{#4}{}{}{{\small\makebox[0.5\linewidth][l]{\faCalendar~#5}}} + \ifstrequal{#4}{}{}{{\small\makebox[0.5\linewidth][l]{\faMapMarker~#4}}}\par + \medskip\normalsize +} + +\newcommand{\cvachievement}[3]{% + \begin{tabularx}{\linewidth}{@{}p{2em} @{\hspace{1ex}} >{\raggedright\arraybackslash}X@{}} + \multirow{2}{*}{\Large\color{accent}#1} & \bfseries\textcolor{emphasis}{#2}\\ + & #3 + \end{tabularx}% + \smallskip +} + +\newcommand{\cveventShort}[4]{% + {\large\color{emphasis}#1\par} + \smallskip\normalsize + \ifstrequal{#2}{}{}{ + \textbf{\color{accent}#2}\par + \smallskip} + \ifstrequal{#3}{}{}{{\small\makebox[0.5\linewidth][l]{\faCalendar~#3}}}\\ + \ifstrequal{#4}{}{}{{\small\makebox[0.5\linewidth][l]{\faMapMarker~#4}}}\par + \medskip\normalsize +} + +\newcommand{\cvtag}[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]{% + \textcolor{emphasis}{\textbf{#1}}\hfill + \BeginAccSupp{method=plain,ActualText={#2}} + \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 +\newcommand{\wheelchart}[4][0]{% + \begingroup\centering + \def\innerradius{#3}% + \def\outerradius{#2}% + % Calculate total + \pgfmathsetmacro{\totalnum}{0}% + \foreach \value/\colour/\name in {#4} {% + \pgfmathparse{\value+\totalnum}% + \global\let\totalnum=\pgfmathresult% + }% + \begin{tikzpicture} + + % Calculate the thickness and the middle line of the wheel + \pgfmathsetmacro{\wheelwidth}{\outerradius-\innerradius} + \pgfmathsetmacro{\midradius}{(\outerradius+\innerradius)/2} + \pgfmathsetmacro{\totalrot}{-90 + #1} + + % Rotate so we start from the top + \begin{scope}[rotate=\totalrot] + + % Loop through each value set. \cumnum keeps track of where we are in the wheel + \pgfmathsetmacro{\cumnum}{0} + \foreach \value/\width/\colour/\name in {#4} { + \pgfmathsetmacro{\newcumnum}{\cumnum + \value/\totalnum*360} + + % Calculate the percent value + \pgfmathsetmacro{\percentage}{\value/\totalnum*100} + % Calculate the mid angle of the colour segments to place the labels + \pgfmathsetmacro{\midangle}{-(\cumnum+\newcumnum)/2} + + % This is necessary for the labels to align nicely + \pgfmathparse{ + (-\midangle>180?"west":"east") + } \edef\textanchor{\pgfmathresult} + \pgfmathparse{ + (-\midangle>180?"flush left":"flush right") + } \edef\textalign{\pgfmathresult} + \pgfmathsetmacro\labelshiftdir{1-2*(-\midangle<180)} + + % Draw the color segments. Somehow, the \midrow units got lost, so we add 'pt' at the end. Not nice... + \filldraw[draw=white,fill=\colour] (-\cumnum:\outerradius) arc (-\cumnum:-(\newcumnum):\outerradius) -- + (-\newcumnum:\innerradius) arc (-\newcumnum:-(\cumnum):\innerradius) -- cycle; + + % Draw the data labels + % 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 + \global\let\cumnum=\newcumnum + } + \end{scope} +% \draw[gray] (0,0) circle (\outerradius) circle (\innerradius); + \end{tikzpicture}\par + \endgroup +} + +\newcommand{\cvref}[3]{% + \smallskip + \textcolor{emphasis}{\textbf{#1}}\par + \begin{description}[font=\color{accent},style=multiline,leftmargin=1.35em,align=left] + \item[\small\normalfont\emailsymbol] #2 + \item[\small\normalfont\mailaddresssymbol] #3 + \end{description} +% \medskip +} + +\newenvironment{cvcolumn}[1]{\begin{minipage}[t]{#1}\raggedright}{\end{minipage}} + +% v1.5 Move biblatex-related code to separate .cfg file +% so that it's easier to change and customise the style for +% publication lists + +% v1.1.2: make it easier to add a sidebar aligned with top of next page +\RequirePackage{afterpage} +\newcommand{\addsidebar}[2][]{\marginpar{% + \ifstrequal{#1}{}{}{\vspace*{#1}}% + \input{#2}}% +} +\newcommand{\addnextpagesidebar}[2][]{\afterpage{\addsidebar[#1]{#2}}} + +\AtBeginDocument{% + \pagestyle{empty} + \color{body} + \raggedright +} diff --git a/resume/main.tex b/resume/main.tex new file mode 100644 index 0000000..8831bd5 --- /dev/null +++ b/resume/main.tex @@ -0,0 +1,222 @@ +%%%%%%%%%%%%%%%%% +% This is an sample CV template created using altacv.cls +% (v1.6, 21 May 2021) written by LianTze Lim (liantze@gmail.com). Now compiles with pdfLaTeX, XeLaTeX and LuaLaTeX. +% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% 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 2003/12/01 or later. +%%%%%%%%%%%%%%%% + +%% Use the "normalphoto" option if you want a normal photo instead of cropped to a circle +% \documentclass[10pt,a4paper,normalphoto]{altacv} + +\documentclass[10pt,a4paper,ragged2e,withhyper]{altacv} +%% AltaCV uses the fontawesome5 and packages. +%% See http://texdoc.net/pkg/fontawesome5 for full list of symbols. + +% Change the page layout if you need to +\geometry{left=1.25cm,right=1.25cm,top=1.5cm,bottom=1.5cm,columnsep=1.2cm} + +% The paracol package lets you typeset columns of text in parallel +\usepackage{paracol} + +% Change the font if you want to, depending on whether +% you're using pdflatex or xelatex/lualatex +\ifxetexorluatex + % If using xelatex or lualatex: + \setmainfont{Roboto Slab} + \setsansfont{Lato} + \renewcommand{\familydefault}{\sfdefault} +\else + % If using pdflatex: + \usepackage[rm]{roboto} + \usepackage[defaultsans]{lato} + % \usepackage{sourcesanspro} + \renewcommand{\familydefault}{\sfdefault} +\fi + +% Change the colours if you want to +\definecolor{SlateGrey}{HTML}{2E2E2E} +\definecolor{LightGrey}{HTML}{666666} +\definecolor{DarkPastelRed}{HTML}{450808} +\definecolor{PastelRed}{HTML}{8F0D0D} +\definecolor{GoldenEarth}{HTML}{E7D192} +\colorlet{name}{black} +\colorlet{tagline}{PastelRed} +\colorlet{heading}{DarkPastelRed} +\colorlet{headingrule}{GoldenEarth} +\colorlet{subheading}{PastelRed} +\colorlet{accent}{PastelRed} +\colorlet{emphasis}{SlateGrey} +\colorlet{body}{LightGrey} + +% Change some fonts, if necessary +\renewcommand{\namefont}{\Huge\rmfamily\bfseries} +\renewcommand{\personalinfofont}{\footnotesize} +\renewcommand{\cvsectionfont}{\LARGE\rmfamily\bfseries} +\renewcommand{\cvsubsectionfont}{\large\bfseries} + +% Change the bullets for itemize and rating marker +% for \cvskill if you want to +\renewcommand{\itemmarker}{{\small\textbullet}} +\renewcommand{\ratingmarker}{\faCircle} +%% Use (and optionally edit if necessary) this .tex if you +%% want to use an author-year reference style like APA(6) +%% for your publication list +\input{pubs-authoryear} + +%% Use (and optionally edit if necessary) this .tex if you +%% want an originally numerical reference style like IEEE +%% for your publication list +% \input{pubs-num} + +%% sample.bib contains your publications +\addbibresource{sample.bib} +\begin{document} +\name{Andrew Simonson} +\tagline{Seeking co-op or internship in data science or similar field for the summer of 2022} +%% You can add multiple photos on the left or right +% \photoL{2.5cm}{Yacht_High,Suitcase_High} + +\personalinfo{% + % Not all of these are required! + \email{asimonson1125@gmail.com} + \phone{(240)-707-1486} + \homepage{asimonson1125.github.io} + \linkedin{simonsonandrew} + \github{asimonson1125} + %% You can add your own arbitrary detail with + %% \printinfo{symbol}{detail}[optional hyperlink prefix] + % \printinfo{\faPaw}{Hey ho!}[https://example.com/] + %% Or you can declare your own field with + %% \NewInfoFiled{fieldname}{symbol}[optional hyperlink prefix] and use it: + % \NewInfoField{gitlab}{\faGitlab}[https://gitlab.com/] + % \gitlab{your_id} + %% + %% For services and platforms like Mastodon where there isn't a + %% straightforward relation between the user ID/nickname and the hyperlink, + %% you can use \printinfo directly e.g. + % \printinfo{\faMastodon}{@username@instace}[https://instance.url/@username] + %% But if you absolutely want to create new dedicated info fields for + %% such platforms, then use \NewInfoField* with a star: + % \NewInfoField*{mastodon}{\faMastodon} + %% then you can use \mastodon, with TWO arguments where the 2nd argument is + %% the full hyperlink. + % \mastodon{@username@instance}{https://instance.url/@username} +} + +\makecvheader +%% Depending on your tastes, you may want to make fonts of itemize environments slightly smaller +% \AtBeginEnvironment{itemize}{\small} + +%% Set the left/right column width ratio to 6:4. +\columnratio{0.6} + +% Start a 2-column paracol. Both the left and right columns will automatically +% break across pages if things get too long. +\begin{paracol}{2} + +\cvsection{Projects} + +\cvproject{Slate}{\githubProject{Slate}} +A web app for RIT Computer Science House to help event coordinators schedule events by congregating participant calendar data\\ +\cvtag{Python} +\cvtag{APIs} +\cvtag{OAuth2} + +\divider + +\cvproject{Humans vs. Zombies Bot}{\githubProject{HvZ-bot}} +A Discord bot to handle role management and statistics for RIT's Humans vs Zombies games\\ +\cvtag{JavaScript} +\cvtag{NodeJS} +\cvtag{APIs} +\cvtag{SQL} + + +\divider + +\cvproject{NationsGame Rolls Simulator}{\githubProject{NG-Rolls-Simulator}} +A NationsGame competition simulator for division predictions and statistical analysis, originally written in Python, ported to JavaScript for use in Discord bots.\\ +\cvtag{Python} +\cvtag{JavaScript} +\cvtag{NodeJS} +\cvtag{APIs} + + +\medskip + +\cvsection{Activities} + +\cvactivity{Computer Science House}{|}{\homepage{csh.rit.edu}}{Active Member}{May 2021 - Present}{Rochester Institute of Technology} +A living and learning community with an emphasis on hands-on learning and a strong social atmosphere. CSH helps its members grow as professionals with the organization's focus on learning from each other through seminars and the yearly major project requirement. + +\divider + +\cvevent{FinTech}{Member/Dev}{September 2021 - Present}{Rochester Institute of Technology} +A group derived from the RIT Financial Management Association dedicated to learning about financial management of equities using modern programmatic applications developed by students. + +\divider + +\cvevent{National Honor Society}{Member and Volunteer}{2019 - 2021}{Boonsboro High School} +A nationwide organization promoting scholarship, leadership, service, and character + +\divider + +\cvevent{BHS VEX Robotics}{President and Team Lead}{2015-2021}{Boonsboro High School} +An organization to design, build, and program robots to compete in the +annual VEX Robotics Competition +%% Switch to the right column. This will now automatically move to the second +%% page if the content is too long. +\switchcolumn + +\cvsection{Skills} + +\cvtag{Python} +\cvtag{JavaScript} +\cvtag{Java} +\cvtag{C++} +\cvtag{SQL} +\cvtag{Object-Oriented Programming} + +\divider\smallskip + +\cvtag{Git} +\cvtag{Linux} +\cvtag{Raspberry Pi} +\cvtag{LaTeX} +\cvtag{NodeJS} +\cvtag{Flask} +\cvtag{Statistical Analysis} +\cvtag{DOM Scraping} + +\medskip + +\cvsection{Experience} + +\cveventShort{Kitchen Staff}{\href{https://www.pretzelandpizzacreations.com/}{Pretzel and Pizza Creations}}{April 2021 -- August 2021}{Hagerstown, MD} +Worked part-time as a chef with a team to manage and fulfill orders and manage active ingredient supply + +\divider + +\cveventShort{Election Official}{\href{https://www.washco-mdelections.org/}{Washington County Board of Elections}}{August 2020 -- December 2020}{Hagerstown, MD} +Trained in voter registry operations and provisional voting for the 2020 US Presidential Election + +\cvsection{Education} + +\cvevent{Rochester Institute of Technology}{Computer Science B.S.}{August 2021 -- May 2026}{} +Sophomore Standing + +\divider + +\cvevent{Boonsboro High School}{}{Sept 2001 -- June 2002}{} +GPA: 4.2 +SAT: 1500 + +\end{paracol} + +\end{document} diff --git a/resume/nicethings_icons_readme.txt b/resume/nicethings_icons_readme.txt new file mode 100644 index 0000000..30f41fb --- /dev/null +++ b/resume/nicethings_icons_readme.txt @@ -0,0 +1,18 @@ +------------------ +Freebie: Nice Things Icon Set (128 Icons, PNG, AI) +Designed by Chris Behr (http://www.chrisbehr.com/) and released for Smashing Magazine and its readers. +------------------ + +Dear Friends, + +Thank you for downloading this icon set! + +This freebie has been brought to you by SmashingMagazine.com. You can freely use it for both your private and commercial projects, including software, online services, templates and themes. + +However, the icons may not be resold, sublicensed, rented, transferred or otherwise made available for use. The icons may not be offered for free downloading from websites other than SmashingMagazine.com. + +Please link to the article in which this freebie was released if you would like to spread the word: http://www.smashingmagazine.com/2013/11/01/freebie-nice-things-icon-set/ + +Smashing Magazine Team, +www.smashingmagazine.com + diff --git a/resume/pubs-authoryear.tex b/resume/pubs-authoryear.tex new file mode 100644 index 0000000..25692bf --- /dev/null +++ b/resume/pubs-authoryear.tex @@ -0,0 +1,8 @@ +% When using APA6 if you need more author names to be listed +% because you're e.g. the 12th author, add apamaxprtauth=12 +\usepackage[backend=biber,style=apa6,sorting=ydnt]{biblatex} +\defbibheading{pubtype}{\cvsubsection{#1}} +\renewcommand{\bibsetup}{\vspace*{-\baselineskip}} +\AtEveryBibitem{\makebox[\bibhang][l]{\itemmarker}} +\setlength{\bibitemsep}{0.25\baselineskip} +\setlength{\bibhang}{1.25em} diff --git a/resume/pubs-num.tex b/resume/pubs-num.tex new file mode 100644 index 0000000..c9a74d4 --- /dev/null +++ b/resume/pubs-num.tex @@ -0,0 +1,7 @@ +\usepackage[backend=biber,style=ieee,sorting=ydnt]{biblatex} +%% For removing numbering entirely when using a numeric style +\setlength{\bibhang}{1.25em} +\DeclareFieldFormat{labelnumberwidth}{\makebox[\bibhang][l]{\itemmarker}} +\setlength{\biblabelsep}{0pt} +\defbibheading{pubtype}{\cvsubsection{#1}} +\renewcommand{\bibsetup}{\vspace*{-\baselineskip}}