3.3 KiB
CV/Résumé Boilerplate
A boilerplate to ease the pain of building and maintaining a CV or résumé using LaTeX.
Separating presentation from content makes life easier. The typical content of a CV is a perfect fit for the yaml syntax 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:
fontspec
geometry
multicol
xunicode
xltxtra
marginnote
sectsty
ulem
hyperref
polyglossia
- 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.yml
with your personal details, work experience, education, and desired settings. Run make
to compile the PDF. Tweak on template.tex
until 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 in 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 thepolyglossia
package. 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