You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Miloš Jovanović edbe57c35f
add courses in details, remvoe panglossia requirement from template, upstream bug makes make fail
2 years ago
.gitignore Ignore output pdf 9 years ago
README.md add couple of articles to the recommended readings section 7 years ago
cv.md added off-center stuff 4 years ago
cv.pdf updated with papers for job apps 6 years ago
details.yml add courses in details, remvoe panglossia requirement from template, upstream bug makes make fail 2 years ago
makefile added UCLA affiliation 5 years ago
missfont.log updated with new talks by Mar 2021 3 years ago
preview.png Sepia preview 9 years ago
template.markdown added UCLA affiliation 5 years ago
template.tex add courses in details, remvoe panglossia requirement from template, upstream bug makes make fail 2 years ago
test.md Initial commit 6 years ago
upload_cv.sh fixed upload script, added article details 5 years ago

README.md

CV Boilerplate

I consider LaTeX resumes to be a secret handshake of sorts, something that makes me significantly more likely to be inclined to hire a candidate.
zackelan on HN

A boilerplate to ease the pain of building and maintaining a CV or résumé using LaTeX.

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 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$

LaTeX takes then care of the typesetting with its usual elegance. Below a preview of the final result. Check out the output to see the compiled PDF.

preview

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 on the fly when needed. You can also easily export it to other formats, like HTML for web publishing (I've heard Jekyll likes YAML). Convenient, portable and time-proof.

Dependencies

  1. LaTeX with the following extra packages: fontspec geometry multicol xunicode xltxtra marginnote sectsty ulem hyperref polyglossia
  2. Pandoc, the universal document converter.

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

  1. Fill details.yml with your personal details, work experience, education, and desired settings.
  2. Run make to compile the PDF.
  3. Tweak on template.tex until you're satisfied with the result.

Note: this template needs to be compiled with XeTeX.

Note for Windows users

Although I didn't test it, you can probably use this on Windows, too. Both Pandoc and LaTeX can be installed on Windows (I recommend MiKTeX for that) and you should be able to run makefiles on Windows through Cygwin. If that's too much hassle, this command should do the trick in Powershell:

pandoc details.yml -o output.pdf --template=template.tex --pdf-engine=xelatex

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 the polyglossia package. This is important for proper hyphenation, among other things.
  • geometry: A string that sets the margins through geometry. Read this to learn how this package works.

Resources

  • Refer to pandoc's documentation to learn more about how templates work.
  • 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, these 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.

See also

License

This repository contains a modified version of Dario Taraborelli's cvtex template.

License: CC BY-SA 3.0