| .gitignore | ||
| content.yml | ||
| makefile | ||
| output.pdf | ||
| preview.jpg | ||
| README.md | ||
| template.tex | ||
| TODO.md | ||
CV Boilerplate
A boilerplate to ease the pain of building and maintaining a CV or résumé using LaTeX. The perfect companion to letter-boilerplate.
Intro
Separating presentation from content makes life easier. The typical content of a CV is a perfect fit for a yaml file due to its structured nature:
---
name: Friedrich Nietzsche
address:
- Humboldtstraße 36
- 99425 Weimar
- Prussia
email: friedrich@thevoid.de
# ...
experience:
- years: 1879--1889
employer: Freiberufler
job: Freier Philisoph
city: Sils-Maria
- years: 1869–-1879
employer: Universität Basel
job: Professor für klassische Philologie
city: Basel
That makes super easy to update a CV while keeping a consistent structure.
Thanks to pandoc, we can then access our data from template.tex by using a special notation. Iterating on repetitive data structures becomes trivial:
$for(experience)$
$experience.years$\\
\textsc{$experience.employer$}\\
\emph{$experience.job$}\\
$experience.city$\\[.2cm]
$endfor$
Below a preview of the final result. Check out the output to see the compiled PDF.
Dependencies
- LaTeX with the following extra packages:
fontspecgeometrymulticolxunicodexltxtramarginnotesectstyulemhyperrefpolyglossia - Pandoc
To install LaTeX on Mac OS X, I recommend getting the smaller version BasicTeX from here and installing the additional packages with tlmgr afterwards. Same goes for Linux: install texlive-base with your package manager and add the needed additional packages later.
To install pandoc on Mac OS X, run brew install pandoc. To install it on Linux, refer to the official docs.
Getting started
- Edit
content.ymlwith your personal details, work experience, education, and desired settings. - Run
maketo compile the PDF. - Tweak on
template.texuntil you're satisfied with the result.
Refer to pandoc's documentation to learn more about how templates work.
Note: this template needs to be compiled with XeTeX.
Available settings
mainfont: Hoefler Text is the default, but every font installed on your system should work out of the box (thanks, XeTeX!)fontsize: Possible values here are 10pt, 11pt and 12pt.lang: Sets the main language through thepolyglossiapackage. This is important for proper hyphenation, among other things.geometry: A string that sets the margins throughgeometry. Read this to learn how this package works.
Recommended reading
- Why I do my résumé in LaTeX by Dan McGee
- What are the benefits of writing resumes in TeX/LaTeX? on TeX Stack Exchange
- Typesetting your academic CV in LaTeX by Dario Taraborelli
- Résumé advices from Butterick's Practical Typography
License
This repository contains a modified version of Dario Taraborelli's cvtex template.
License: CC BY-SA 3.0
