Moderncv Bibliography Sample

Writing my curriculum in LaTeX was a task that has been on my TODO-list for quite a while. I liked the style of my Word-written CV and I believed it would take hours to come up with a reasonable CV in LaTeX. Nevertheless, I recently sat down, began writing, and after not too long, I came up with a presentable result that I would like to share.

A complete minimal example can be found at the end of this post.

The Title

In order to even spacing all around, we change the page margins to 3cm using the geometry package. We further make use of the standard article maketitle command, printing the person’s name (title field) and e-mail address (author field).

\documentclass[10pt]{article} \usepackage[margin=3cm]{geometry} \title{\bfseries\Huge Tom T. Texblog} \author{} \date{} \begin{document} \maketitle \end{document}

In case you prefer to add a photo to your CV, try the following slightly more complex code, using minipage:

\documentclass[10pt]{article} \usepackage[margin=3cm]{geometry} \title{\bfseries\Huge Tom T. Texblog} \author{} \date{} \begin{document} \begin{minipage}{0.65\textwidth} \begingroup \let\center\flushleft \let\endcenter\endflushleft \maketitle \endgroup \end{minipage} \begin{minipage}{0.3\textwidth} \flushright{\rule{3.5cm}{4.5cm}} \end{minipage} \end{document}

Address and Personal Information

We use minipage again to split the page into two parts, one for the address and the second for some personal information if that’s required. Straight forward.

\begin{minipage}[ht]{0.48\textwidth} Main Road 25\\ City 12345\\ State of Sabotage \end{minipage} \begin{minipage}[ht]{0.48\textwidth} Nonlandian\\ January 3rd, 2020\\ +12 34 56 789 \end{minipage}

The space between the title and the address is just about right. To add more space, use:


The Content

After the cosmetics, we now add the actual content. We use the standard article section with a star to omit numbering. Sections may include: Objective (of the CV), Professional Experience, Education, Languages, Publications, Programming Languages, etc. We will show a few examples here, the structure is always the same.

Let’s first prepare the content with some code in the preamble. We use the tabular environment to divide the page into two columns, a small column for the year/title and a wide column for the description. In order to minimize typing, we define two new columntypes in the preamble, “L” and “R” as well as a thin light-gray line in between, \VRule.

\usepackage{array, xcolor} \definecolor{lightgray}{gray}{0.8} \newcolumntype{L}{>{\raggedleft}p{0.14\textwidth}} \newcolumntype{R}{p{0.8\textwidth}} \newcommand\VRule{\color{lightgray}\vrule width 0.5pt}

Now we can start creating content sections using the tabular environment as follows:

\section*{Heading} \begin{tabular}{L!{\VRule}R} 2012&Some text\\[5pt] 2011&Some other text\\ \end{tabular}

For better readability, we add small vertical spaces between rows in the tabular.


Let’s start by looking at the example with education. We highlighted the parts in bold which are most recent or most important.

\section*{Education} \begin{tabular}{L!{\VRule}R} 2005--2007&{\bf MSc in Computer Science, Great University, Country.}\\[5pt] 2001--2005&BSc in Life Science, Great University, Country.\\ \end{tabular}


Here, we use the left column for the language and the right column for the level of proficiency.

\section*{Languages} \begin{tabular}{L!{\VRule}R} Klingon&Mother tongue\\ {\bf English}&{\bf Fluent}\\ French&Fluent (DELF 2010)\\ Japanese&Fair\\ \end{tabular}

Professional Experience

\usepackage{lipsum} ... \section*{Professional Experience} \begin{tabular}{L!{\VRule}R} 2011--today&{\bf Work at company XY.}\\ &\lipsum[66]\\[5pt] 2008--2010&{\bf Trainee at company ZY.}\\ &\lipsum[66]\\ \end{tabular}


We use the bibentry package to generate an inline list of publications. The references are stored in a bibtex file.

\usepackage{bibentry} ... \bibliographystyle{plain} \nobibliography{publication.bib} \section*{Publications} \begin{tabular}{L!{\VRule}R} 2006&\bibentry{knuth2006art}\\[5pt] 1968&\bibentry{lamport1986latex}\\ \end{tabular}

Minimal Example CV

\documentclass[10pt]{article} \usepackage{array, xcolor, lipsum, bibentry} \usepackage[margin=3cm]{geometry} \title{\bfseries\Huge Tom T. Texblog} \author{} \date{} \definecolor{lightgray}{gray}{0.8} \newcolumntype{L}{>{\raggedleft}p{0.14\textwidth}} \newcolumntype{R}{p{0.8\textwidth}} \newcommand\VRule{\color{lightgray}\vrule width 0.5pt} \begin{filecontents}{publication.bib} @article{lamport1986latex, title={LaTEX: User's Guide \& Reference Manual}, author={Lamport, L.}, year={1986}, publisher={Addison-Wesley} } @book{knuth2006art, title={The art of computer programming: Generating all trees: history of combinatorial generation}, author={Knuth, D.E.}, volume={4}, year={2006}, publisher={addison-Wesley} } \end{filecontents} \begin{document} \maketitle \vspace{1em} \begin{minipage}[ht]{0.48\textwidth} Main Road 25\\ City 12345\\ State of Sabotage \end{minipage} \begin{minipage}[ht]{0.48\textwidth} Nonlandian\\ January 3rd, 2020\\ +12 34 56 789 \end{minipage} \vspace{20pt} \section*{Objective} Find a job. \section*{Professional Experience} \begin{tabular}{L!{\VRule}R} 2011--today&{\bf Work at company XY.}\\ &\lipsum[66]\\ \end{tabular} \section*{Education} \begin{tabular}{L!{\VRule}R} 2005--2007&{\bf MSc in Computer Science, Great University, Country.}\\[5pt] 2001--2005&BSc in Life Science, Great University, Country.\\ \end{tabular} \section*{Languages} \begin{tabular}{L!{\VRule}R} Klingon&Mother tongue\\ {\bf English}&{\bf Fluent}\\ French&Fluent (DELF 2010)\\ Japanese&Fair\\ \end{tabular} \bibliographystyle{plain} \nobibliography{publication} \section*{Publications} \begin{tabular}{L!{\VRule}R} 2006&\bibentry{knuth2006art}\\[5pt] 1986&\bibentry{lamport1986latex}\\ \end{tabular} {\vspace{20pt}\newline\newline \vspace{20pt} \scriptsize\hfill Created by} \end{document}

Additional Resources

Drop me a comment if you know of other resources and I will add them to the list.


A few days after publishing this post, a vivid discussion took place with lots of interesting CV examples on

Like this:



A curriculum vitæ or résumé has a universal requirement: its formatting must be flawless. This is a great example of cases where the power of LaTeX comes to the front. Thanks to its strong typographical stance, LaTeX is definitely a document processor of choice to write a CV.

Of course you can design your own CV by hand. Otherwise, you may want to use a dedicated class for that task. This way, writing a CV in LaTeX is as simple as filling the forms, and you are done. The important thing to mention is that a class or package not only defines the syntax of the form to be filled out, but also the layout. While filling out a form is very easy, changing a layout that is supposed to be fixed, is extremely hard. Best results will be achieved when doing a CV from scratch, using list environments and tabulars.

⇒ Be aware of which is still used by some people. It is a very old class, that is nearly impossible to customize. Only very experienced users should use . ⇐

A full list of CV packages is available at CTAN.


\documentclass[utf8, a4paper, 10pt, helvetica, narrow, flagWB, booktabs, totpages, english]{europecv}\usepackage{graphicx}% Required to draw the flag\usepackage[a4paper, left=3cm, right=2cm, top=2cm, bottom=2cm]{geometry}\usepackage{babel}% Commands europecv\ecvLogoWidth{12mm}% Size logo europass%\ecvLeftColumnWidth{4cm} % Size of column and vertical line (different from standard)%\ecvfootnote{footnote} % Foot notes\ecvname{\textsc{Surname}, First Name}% Personal picture\ecvbeforepicture{\raggedleft}\ecvpicture[height=1in]{namefile_pic}% File picture without extension \ecvafterpicture{\ecvspace{-2.5cm}}% Address\ecvaddress{Address first line\\& Address second line\\& City, State}% Telephone \ecvtelephone{+44 (0) 123 4567}%\ecvfax{+39 01234567}\ecvemail{john@someserver}% Other personal info\ecvnationality{Nationality}\ecvdateofbirth{01/01/1900}\ecvgender{Male}\begin{document}% Begin europecv environment\begin{europecv}\ecvpersonalinfo% Print personal info in preamble\ecvitem{}{}% 1 free line - \ecvitem{}{} adds elements to a section%\ecvsection{} % \ecvsection{} adds sections\ecvitem{\large\textbf{Desired employment / Occupational field}}{\Large\textbf{Dream job}}% desired job% Sections% School\ecvsection{Education and training}\ecvitem{Dates}{From September 1900 to August 1905}\\\ecvitem{Title of qualification awarded}{Name of the\\& degree}\\\ecvitem{Principal subjects/occupational skills covered}{Learned skills}\\\ecvitem{Name and type of organisation providing education and training}{My University\\& Address\\& City\\& Nation\\& Post code\\& Tel. +44 (0) 123 45678 23}\\\ecvitem{Level in national or international classification}{Level of degree}\\%\pagebreak{}% Single course\ecvitem{Dates}{August 2013}\ecvitem{Title of qualification awarded}{Name of certification}\ecvitem{Principal subjects/occupational skills covered}{Skills of certification}\ecvitem{Name and type of organisation providing education and training}{Institution}\\% Last working experience\ecvsection{Work Experience}\ecvitem{Dates}{From June 1957 to February 1987}\\\ecvitem{Occupation or position held}{Name of the job}\\\ecvitem{Main activities and responsibilities}{Activities during \\& this job}\ecvitem{Name and address of employer}{Name of employer\\& Employer address\\& Second line\\& City\\& Nation\\& Tel. +39 (0) 1234 5678}\\\ecvitem{Type of business or sector}{Business}\\% Volunteer experiences\ecvsection{Volunteer Experience}\ecvitem{Dates}{From August 2000 to present}\\\ecvitem{Occupation or position held}{First Aider}\\\ecvitem{Main activities and responsibilities}{Activities}\ecvitem{Name and address of employer}{Name\\& Address\\& City\\& Post code\\& Nation\\& Tel. +44 (0) 1234 7654}\\\ecvitem{Type of business or sector}{Business}\\% Personal competences\ecvsection{Personal skills and competences}% Lenguages% Mothertongue\ecvmothertongue[10pt]{Italian}\\% 10pt leave a one-char line space before the text% Table for common lenguage evaluation\ecvlanguageheader{(*)}\ecvlanguage{English}{\ecvCOne}{\ecvCOne}{\ecvCOne}{\ecvCOne}{\ecvCOne}% second language and levels% Language levels A1 - A2 - B1 - B2 - C1 - C2 from basic to advanced.% in this package are \ecv + A, B or C and the sub-level in letters (One or Two)\ecvlanguage{French}{\ecvBTwo}{\ecvBTwo}{\ecvBTwo}{\ecvBTwo}{\ecvBTwo}% third\ecvlastlanguage{Russian}{\ecvAOne}{\ecvATwo}{\ecvBOne}{\ecvCTwo}{\ecvBTwo}% last language\ecvlanguagefooter{(*)}\\% Social skills\ecvitem{Social skills and competences}{- First social skill;\\& - Second social skill}\\% Technical skills\ecvitem{Technical skills and competences}{- First technical skill;\\& - Second technical skill}\\% Computer skills\ecvitem{Computer skills and competences}{- First skill;\\& - Second}\\% Other skills\ecvitem{Other skills and competences}{- First otherskill}\\% Driving Licence\ecvitem{Driving licence(s)}{Category and Type}\\% Annexes\ecvsection{Annexes}\ecvitem{}{On request:}\ecvitem{}{Birth certificate}\ecvitem{}{Passport}\ecvitem{}{Driving licence}\ecvitem{}{Criminal record certificate}\ecvitem{}{University study plan}\ecvitem{}{}% Disclaimer\ecvsection{Disclaimer}\ecvitem{}{This informations may be used for all purposes permitted by law and under the Data Protection Act 1998.\\& Autorizzo l'utilizzo dei dati personali contenuti nel presente curriculum ai sensi del D.Lgs. 196/2003 e s.m.i. (Codice in materia di protezione dei dati personali)}\end{europecv}\end{document}


From CTAN:

Moderncv pro­vides a doc­u­ment­class for type­set­ting mod­ern cur­ricu­lums vi­tae, both in a clas­sic and in a ca­sual style. It is fairly cus­tomiz­able, al­low­ing you to de­fine your own style by chang­ing the colours, the fonts, etc.

The official package provides some well commented templates which may be a good start. You can find those templates in your distribution (if documentation is installed along packages) or ultimately on CTAN.

We will not repeat the templates here, so we will only provide a crash course. You should really have a look at the templates for more details.

First document[edit]

Most commands are self-explanatory.

\documentclass[11pt,a4paper,sans]{moderncv}%% ModernCV themes\moderncvstyle{casual}\moderncvcolor{blue}\renewcommand{\familydefault}{\sfdefault}\nopagenumbers{}%% Character encoding\usepackage[utf8]{inputenc}%% Adjust the page margins\usepackage[scale=0.75]{geometry}%% Personal data\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{}\homepage{}\extrainfo{additional information}\photo[64pt][0.4pt]{picture}\quote{Some quote (optional)}%%------------------------------------------------------------------------------%% Content%%------------------------------------------------------------------------------\begin{document}\makecvtitle\section{Education}\cventry{year--year}{Degree}{Institution}{City}{\textit{Grade}}{Description}% arguments 3 to 6 can be left empty\cvitem{title}{\emph{Title}}\cvitemwithcomment{Language 1}{Skill level}{Comment}\cvdoubleitem{category X}{XXX, YYY, ZZZ}{category Y}{XXX, YYY, ZZZ}\cvlistitem{Item 1}\cvlistdoubleitem{Item 2}{Item 3}%% ...%% A publications list\nocite{*}\bibliographystyle{plain}\bibliography{publications}% a bibtex file containing the list of publications\end{document}

Theme previews[edit]

  • Themes

A customizable Layout[edit]

There is no need to use a complicated template with a given layout that is hard to change. You can just as well use the simple class to write up a CV. You are free to decide about the amount of information, the layout of the information and the order in which you want to show the info. You are the designer and not restricted to any syntax.

\documentclass{article}\usepackage{geometry}\geometry{margin=1in}\setcounter{secnumdepth}{0}\setlength{\parindent}{0pt}\begin{document}\begin{center}\begin{tabular}{rl}\huge\textbf{John}&\huge\textbf{Birdwatch}\\ +44 1234 9876 &\\ Sunny Lane 15 &Duckbourgh\end{tabular}\end{center}\section{Computer Skills}\LaTeX, PERL, Windows, Linux \section{Education}\textbf{Master of Arts in 2015} for \textsc{Pigeons love doves}\par\textbf{Bachelor of Arts in 2013} for \textsc{Pigeons in Cities}\section{Publications} John Birdwatch, \textsc{Pigeons love doves}, Master Thesis, Columbidae University, 2015\par Laura Lion, John Birdwatch and Paul Platypus, {\itshape Journal of excessive Bird Watchers}: ``Observations made in the Duck Pond", 2016\par\end{document}

The example above has a simple centered header including name and personal information. The publications section is done completely by hand. If you have many publications, you should consider using a bibliography management package, see Biblatex. Another small example that uses package .

\begin{filecontents}{\jobname.bib} @thesis{birdwatch2015, author = {John Birdwatch}, title = {Pigeons love ducks}, type = {mathesis}, institution = {Columbidae University}, location = {Duckbourgh}, date = {2015}, keywords = {ownpub}, } @journal{birdwatch2016, author = {Laura Lion and John Birdwatch and Paul Platypus}, title = {Observations made in the Duck Pond}, journal = {Journal of excessive Bird Watchers}, date = {2016}, keywords = {ownpub}, }\end{filecontents}\documentclass{article}\usepackage{scrextend}\addtokomafont{labelinglabel}{\bfseries}\usepackage{geometry}\geometry{margin=1in}\usepackage[style=authoryear]{biblatex}\addbibresource{\jobname.bib}\nocite{*}\setcounter{secnumdepth}{0}\setlength{\parindent}{0pt}\begin{document}{\huge\textbf{John Birdwatch}\par} +44 1234 9876 \par\par Sunny Lane 15 \par Duckbourgh\par\vspace{1cm}\begin{labeling}{Longest list item}\item [Computer Skills] \LaTeX, PERL, Windows, Linux \item [Education] \parbox[t]{.8\textwidth}{ Master of Arts in 2015 for \textsc{Pigeons love doves}\par Bachelor of Arts in 2013 for \textsc{Pigeons in Cities}}\end{labeling}\printbibliography[title=Publications,heading=subbibliography,keyword=ownpub]\end{document}

Multilingual support[edit]

It is especially convenient for résumés to have only one document for several output languages, since many parts are shared among versions (personal data, structure, etc.).

LaTeX with appropriate macros provide a comfortable way to manage it. See Internationalization.


0 Thoughts to “Moderncv Bibliography Sample

Leave a comment

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *