Creating a C.V. with LaTeX and moderncv
This article hasn't been updated for over a year.
The moderncv
document class provides an easy way to create a good looking curriculum vitae in LaTeX. Unfortunately, documentation for the package seems to be non-existent. As usual, questions on Stack Exchange were the best resource for finding out how the package works. While I didn’t use every function moderncv
provides, I hope this article explains enough for you to create the same basic c.v. as I did.
Start out with a similar structure like any other LaTeX document:
\documentclass[10pt,a4paper]{moderncv}
\usepackage[utf8]{inputenc}
\moderncvtheme[blue]{classic}
\begin{document}
\makecvtitle
\section{Education}
\section{Work Experience}
\section{Language}
\section{Varia}
\end{document}
Personal data
Your personal data has to be set above the \begin{document}
block. Most properties can be ignored if you don’t use them, just remove them from your source.
\firstname{John}
\familyname{Doe}
\title{Resumé title (optional)}
\address{street and number}{postcode city}
\mobile{+1~(234)~567~890}
\phone{+2~(345)~678~901}
\fax{+3~(456)~789~012}
\email{john@doe.org}
\homepage{www.johndoe.com}
\extrainfo{additional information}
\photo[64pt][0.4pt]{picture}
\quote{Some quote (optional)}
Depending on the theme, this information is shown in a block at the top or the bottom of the page.
Education
We’ll be using the cventry
command to list educational items. This command requires 6 arguments in the order listed below. Note that the appearance of these arguments on the generated C.V. depends on the selected theme. Try not swap arguments because you think they look better that way, it may look even worse if you ever decide to use another theme. The last 3 arguments may be empty.
\cventry{years}{degree}{institution}{location}{grade}{description}
A Master’s degree from Thunderwood College could look like:
\cventry{2009-2012}{M.Sc Internet Technologies}{Thunderwood College}{}{}{}
In case you need a longer description:
\cventry{2009-2012}{M.Sc Internet Technologies}{Thunderwood College}{}{}{%
I clicked some buttons and all I got was this silly degree.\\
Another line here.}
Work experience
The same cventry
command is used to list work experience. Some arguments have a different meaning when used for work experience:
\cventry{years}{position}{company}{location}{grade}{description}
An example job would be:
\cventry{2012-2015}{Teacher}{Thunderwood College}{}{}{}
Languages
The cvlanguage
command allows you to define the different languages you are able to communicate in. Some people prefer to split this in their ability to read, write, speak and listen. As far as I know, moderncv does not support this by default. You’ll have to do the additional markup yourself.
\cvlanguage{language}{level}{description}
For example:
\cvlanguage{dutch}{mother tongue}{}
\cvlanguage{english}{good}{written and spoken}
Other information
The document class also provides a few generic commands to list other data on your resume. I suggest using the cventry
and cvlanguage
commands if possible, as themes may apply special markup for those. That said, try out the commands listed below:
\cvline{margintext}{linetext}
\cvdoubleitem{subtitle}{text}{subtitle}{text}
\cvlistitem[symbol]{point1}
\cvlistdoubleitem[symbol]{point1}{point2}
Setting the theme
In case you do care about the looks of your c.v. and don’t like the defaults: change the theme! The moderncvtheme
command sets a theme and color scheme for the generated curriculum vitae. Four usable themes are shipped by default, a fifth empty
theme can be used to create your own.
- casual
- classic
- oldstyle
- banking
Every theme supports 7 color schemes. Note that some themes don’t use much color at all, so setting the color scheme may not change much.
- black
- blue
- green
- grey
- orange
- purple
- red