A boilerplate to ease the pain of building and maintaining a CV or résumé using pandoc.
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: Immanuel Kant
address: Königsberg, Prussia
email: [email protected]
AOS:
- Aesthetics, Epistemology, Ethics, Metaphysics, Philosophy of Mind, Political Philosophy
AOC:
- German Idealism, Philosophy of Religion
experience:
- years: 1770-1804
employer: University of Königsberg
job: Chair of Logic and Metaphysics
city: Königsberg, DE
The advantage of keeping things in the YAML file is that it is then easy to convert the information, using pandoc, into a PDF (via pandoc and LaTeX) or html (via pandoc and some css styling), or any other format (e.g. a Word .docx file).
For example, using template.tex
we can easily iterate on repetitive data structures:
$for(experience)$
$experience.years$\\
\textsc{$experience.employer$}\\
\emph{$experience.job$}\\
$experience.city$\\[.2cm]
$endfor$
There is also a makefile included for ease of generation of PDF and html. With
this method, you can keep your entire CV encoded in a single YAML file, put it
under version control (into a gist, for instance), and generate a PDF and
webpage on the fly, with a single make
command when needed.
- 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.
-
Run this in your terminal to clone the repo, move into the right directory and delete all the git stuff:
git clone [email protected]:mclearc/cv-boilerplate.git && cd cv-boilerplate && rm -rf .git
-
Open
content.yml
with your text editor and fill it with your personal details, work experience, education, and desired settings. -
Run
make
to compile the PDF. -
Tweak the
template.tex
,template.html
, andstyle.css
files until you're satisfied with the results.
Refer to pandoc's documentation to learn more about how templates work.
Note: for the font settings to work this template needs to be compiled with XeTeX.
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 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.
- 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
- If you're not familiar with the YAML syntax, here's a good overview.
- If you want to edit the template but LaTeX scares you, this docs put together by ShareLaTeX cover most of the basics and are surprisingly kind to the beginner.
- Odds are your question already has an answer on TeX Stack Exchange. Also, pretty friendly crowd in there.
- invoice-boilerplate — Simple automated LaTeX invoicing system
- letter-boilerplate — Quickly and painlessly generate high-quality letters from markdown through LaTeX
This repository contains a modified version of Dario Taraborelli's cvtex template, with further modifications from Mattia Tezzele's original boilerplate.
License: CC BY-SA 3.0