Using and modifying modernCV

Since I like to keep my résumé up to date I have spent the last few days on updating both the format and the content of both the résumé and the template for a cover letter.

This post will detail some of the changes I’ve made to the basics of the modernCV package

Front matter

Since I am maintaining documents in both Swedish and English I have decided on placing the front-matter and modernCV options in a separate file. The following is the front-matter for the my English documents, as you can see it’s basically the settings from modernCV moved to a separate file

\documentclass[11pt,a4paper]{moderncv}

\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage[english]{babel}
\usepackage[scale=0.8]{geometry}
\recomputelengths
\fancyfoot{}
\fancyfoot[LE,RO]{\thepage}
\fancyfoot[RE,LO]{\footnotesize }


\name{Fredrik}{Loch}
\address{Street address}{Town}{Country}
\phone[mobile]{+47 111 11 111}
\email{fredrik.loch@outlook.com}
\homepage{fredrikloch.me}
\social[linkedin]{fredrikloch}
\social[github]{SenjinDarashiva}

\photo[84pt]{assets/images/cvBild_2012.jpg}
% optional, remove the line if not wanted
\quote{"If you do what you've always done, you'll get what you've always gotten." -- Anthony Robbins}
Next up is my major issue with the original modernCV templates, they create a single file containing both the résumé and a cover letter. This is great in some cases I do however prefer to have a bit more control over the output.

The cover letter

Since the cover letter has the potential of being my first impression I want to make sure that It gives the reader a pleasant experience. I also want to include an image of myself to give the reader a face to relate to.

The following is the basic structure for my personal letter:

\input{src/head_en.tex}
\moderncvtheme[black]{casual}
 % style options are 'casual' (default), 'classic', 'oldstyle' and 'banking'
 % color options 'blue' (default),
 % 'orange', 'green', 'red', 'purple', 'grey' and 'black'
\nopagenumbers{}

\usepackage{setspace}
\onehalfspacing

\addtolength{\topmargin}{-.8in}
%----------------------------------------------------------------------------------
%            content
%-------------------------------------------------------------------------
\begin{document}
\pagenumbering{gobble}
%-----       letter       -----------------------------------------------
    \maketitle
    \vspace{-15mm}
    \textbf{Application to the position as superman,}\hfill \today
            \vspace{3mm}\\

    \vfill
\end{document}

I have decided on using the “regular” CV title from modernCV to focus on my name as well as an image of me, this does however mean that I have to recreate the opening and closure of the letter by hand.

References and Certificates

To be able to deliver all the necessary documentation in a nice looking format I use the basic modernCV structure to create a reference list and a single file containing letters of recommendation grades and certifications.

This forced some addition to apart from basic modernCV package creating the following specific front matter:

\input{src/head_en.tex}
\moderncvtheme[black]{banking}
 % style options are 'casual' (default), 'classic', 'oldstyle' and 'banking'
 % color options 'blue' (default), 'orange', 'green', 'red', 'purple', 'grey' and 'black'
\usepackage{pdfpages}
\usepackage{graphicx}
\usepackage[margin=10pt,font=small,labelfont=bf]{caption}
\usepackage{float}

% Define \cvdoublecolumn, which sets its arguments in two columns without any labels
\newcommand{\cvdoublecolumn}[2]{%
  \cvitem[0.75em]{}{%
    \begin{minipage}[t]{\listdoubleitemmaincolumnwidth}#1\end{minipage}%
    \hfill%
    \begin{minipage}[t]{\listdoubleitemmaincolumnwidth}#2\end{minipage}%
    }%
}

% usage: \cvreference{name}{address line 1}{address line 2}{address line 3}{address line 4}{e-mail address}{phone number}
% Everything but the name is optional
% If \addresssymbol, \emailsymbol or \phonesymbol are specified, they will be used.
% (Per default, \addresssymbol isn't specified, the other two are specified.)
% If you don't like the symbols, remove them from the following code, including the tilde ~ (space).

\newcommand{\cvreference}[9]{%
    \textbf{#1}\newline% Name
    \ifthenelse{\equal{#2}{}}{}{\addresssymbol~#2\newline}% Department
    \ifthenelse{\equal{#3}{}}{}{#3\newline}% Company
    \ifthenelse{\equal{#4}{}}{}{#4\newline}% Position
    \ifthenelse{\equal{#5}{}}{}{#5\newline}% Adress 1
    \ifthenelse{\equal{#6}{}}{}{#6\newline}% Adress 2
    \ifthenelse{\equal{#7}{}}{}{\emailsymbol~\texttt{#7}\newline}% % E-mail
    \ifthenelse{\equal{#8}{}}{}{\phonesymbol~#8\newline} % Telephone
    \ifthenelse{\equal{#9}{}}{}{\mobilephonesymbol~#9}} % CellPhone
All these changes are adaptations of solutions offered on stack-overflow, sadly the original I don’t have the links to the original threads.

To include letters of recommendation and certificates I use the pdfpages package and include the pages one by one, this is done to get correct page numbering and to allow for references.

\begin{minipage}{\linewidth}
    \centering
    \includegraphics[page=2, width=\textwidth]{/assets/documents/FullSize/varnplik.pdf} \\
    Mandatory Military Service page 1
    \label{ref:MMS}
\end{minipage}

The résumé

This is the final document and it is the document with the least amount of modifications from the modernCV original.

I have limited myself to shrinking the top and bottom margins and to create a table for a CEFR evaluation.

To achieve the increased margins I added the following to the bottom of the front matter:

\addtolength{\topmargin}{-.8in}
\addtolength{\textheight}{1in}
%----------------------------------------------------
%            content
%----------------------------------------------------
\begin{document}
\maketitle
\vspace{-10mm}

I also created a table for the language section:

\section{Languages}
\cvline{}
{
    \small Self assessment according to
    \href{http://europass.cedefop.europa.eu/en/resources/european-language-levels-cefr}{CEFR}
    (C2 maximum evaluation\normalsize
}
\setlength{\tabcolsep}{5pt}
\begin{tabular}{l r p{5mm}|  c c | c c | c}
        &
        &
        &
        \multicolumn{2}{c}{\textbf{Understanding}} &
        \multicolumn{2}{c}{\textbf{Speaking}}&
        \textbf{Writing} \\

        &
        &
        &
        Listening & Reading &
        Interaction & Production
        &\\

        \textbf{Swedish:}&
        Professional &
        &
        C2 &
        C2 &
        C2 &
        C2 &
        C2 \\

        \textbf{English:} &
        Experienced &
        &
        C2 &
        C2 &
        C2 &
        C2 &
        C2\\

        \textbf{Norweigan:}&
        Basic &
        &
        C1 &
        C1 &
        C1 &
        B2 &
        A1\\
\end{tabular}

\vspace{3mm}

\closesection{}

Folder structure and building the CV

As you might have noticed I am using relative paths to “assets” like photos and letters of recommendation as well as between parts of the document. This is possible since I compile all documents from the root of my cv folder, which is structured as follows:

fredrik_cv
├── assets
│   ├── documents
│   │   ├── FullSize
│   │   └── Originals
│   └── images
│       └── cvBild_2012.jpg
├── CLI-Builder
│   ├── build.py
│   ├── LICENSE
│   └── README.md
├── out
└── src
    ├── head_en.tex
    ├── head_sv.tex
    ├── other
    ├── personal_letter
    │   ├── coverletter-EN.tex
    ├── references
    │   ├── references-EN.tex
    │   └── references.tex
    └── resume
        ├── CV-Fredrik-Loch-V2-EN.tex
        ├── CV-Fredrik-Loch-V2-SV.tex
To build a document in this file structure I use a small python script, available on github and the following command
    python CLI-Builder/build.py -x src/resume/CV-Fredrik-Loch-V2-EN.tex

Which gives me a pdf in the working directory and places all logs in the out/ folder.

Examples and sources