LaTeX-Tutorial.com

How to write a minimalistic cv in latex: step-by-step guide, learn how to write and customize a minimalistic curriculum vitae in latex. understand the logic behind every macro, and also how you can make modifications to customize it..

writing resume in latex

If your goal is not to become a TeXnician, but instead to have an easy way to write a CV in LaTeX, I am sure this tutorial will also be useful to you. You will find a fully working LaTeX template to write a CV and a detailed explanation that can serve as a reference when you want to change any aspect of the template. If you don’t care about the Technical details, you can jump straight to the last section , in which you will find a high-level and user-friendly use of the macros, to quickly produce a professional CV.

Without further introduction, let’s start writing our professional and minimalistic CV in LaTeX.

Required packages for typsetting a CV in LaTeX

1. document class.

Opens in a new tab.

As an optional argument, we will choose the font size of the document to be 12pt. Thus the first line of our document is:

2. Language and encoding

Next, we have to load the packages we will use. To begin with, let us load some basic packages:

3. Set the document font

In our example, the main font of the document is not LaTeX’s default font Computer Modern ; instead, we load the package:

which sets as default font the TeX Gyre Pagella.

CV LaTeX Font

4. Specify the CV margins

As you can see, the configuration command \geometry is very straightforward and lets us easily modify the size of the left, right, top, and bottom margins, setting them to the TeX dimension we want. Note that in our example we leave the default right and bottom margins, that’s why those lines are commented out (any margin that is not specified as the default length).

5. Remove headers, footers and page numbers

The page layout configuration is finished with the following command:

which empties the page from other elements like headers, footers, page numbers, margin notes, or anything like that.

6. Modify sections style to meet CV style

We change the font of the sectioning commands in the following ways:

  • We make the font smaller: instead of using the \Large default font size it uses \large.
  • We change the font family: instead of the font set for the entire document, for the sections we use the font \TeX Gyre Adventor, which can be loaded with the font code qag.
  • Finally, we print a horizontal rule 5pt below the title, with a thickness of 1pt.

Once we have loaded the packages we will need, we have to define the macros used to write each of the entries in the document.

2. The macros

It is important to define macros for this purpose, instead of writing the text directly in the main document, for at least two reasons.

  • First, the code becomes much shorter and cleaner, since we don’t have to specify the font size, type, etc. each time we want to write a new entry.
  • Second, the code becomes much more reusable, because this way the user doesn’t need to understand what’s working behind, he can simply use the macros to write his CV without knowing any LaTeX at all.

Before writing our first macros, we need to define a new length, which will be used to align text on the same line (for example, in the entries for personal information, or to write the duration of each work entry):

1. Predefined lengths for space boxes

As you can see, we set this new length to be equal to the width of the box formed by 123456789. It is also convenient to define a macro to easily insert the same vertical separation between entries each time:

2. Name macro

Now it is time to write the macro that prints our name at the top of the CV:

This macro does the following:

  • First, it sets the \Huge font size , so that our name outstands in the document.
  • Next, it changes the font family. In this case, we chose the Helvetica font family, with font code phv .
  • Following that it prints the name (which is passed as the first and unique argument to the macro) centered and using the boldface .
  • After all of this, it ends the paragraph with \par and sets back the default size and font .

3. Slogan macro

A similar macro is used to define the motto, or slogan, of the candidate:

The only thing that changes with respect to the \name macro is that the font size is now \large, and the text is printed with a slanted font.

4. Personal details macro

Once we have the heading of our CV, we want to print the personal details of the candidate (contact information, address, and the like). Thus we define a macro to write each of these personal entries:

Let’s break down what this macro does since it is pretty different from the ones defined before:

  • Before the contents of the macro, note that it will be passed to parameters: the first one will specify the name of the (personal information) entry, while the second will specify the contents of that entry. We separate these two so that we can give different format to each of them, and also set some separation.
  • For this entries we set a specific indentation from the right margin. We first delete the default indentation with \noindent , then set our custom indentation with \hangindent , and finally indicate for how many lines we want this indentation with \hangafter (zero means that all the lines will have this same indentation).
  • Now we create a paragraph mode box with \parbox of size \spacebox as was defined previously. Inside this box we want to have the entry name slanted.
  • Finally, we print the entry contents using the default font and end the paragraph with \par .

If you get what this macro does, and understand what each command means, the remaining macros will be a piece of cake, since the structure is very similar.

5. Skills macro

To introduce skills and language levels we have the macros

As you can see, these are essentially the same as the \info macro , but let me make you aware of some differences.

  • First the entry name space for the \verb|\skill| command is \verb|3\spacebox| instead of \verb|\spacebox|, since we want one of the skills to be “Programming languages” which doesn’t fit in a single line of width \verb|\spacebox|. I suggest you too adjust these lengths to fit the needs of your entries.
  • What also changes is the font type of the entry names: for the skill it is smallcaps, and for the languages is boldface. These are, of course, arbitrary choices, and you can set them as you like the most.

6. Education macro

Finally let’s have a look at the two most complex macros, designed for education and work entries. First the macro for education entries is

This may seem a lot to get your head around to, but let me break it down for you into small steps:

  • This macro has four arguments: the first specifies the name of the studies, the second the duration, the third the institution, and the fourth a more or less brief description.
  • We write the name of the studies with no indentation in bold text.
  • Then we use the \hfill command to write at the right the duration of the studies. This duration is written inside a \parbox of width 6em , is centered inside the paragraph box with \centering , and written in bold. Finally, the box is wrapped with a frame, using the \framebox command.
  • Then we start a new paragraph with \par , and with no indentation we write the institution using italics. Again, we end the paragraph and start a new one.
  • Finally, we leave 0.5em of vertical space, and with the same custom indentation as the one used for the personal, technical and language entries, we write in small text the description of the studies. Finally, we go back to the normal text size and end the paragraph.

7. Work macro

The work entry for our curriculum is essentially the same as the education entry:

But we wrote a separate macro in case you wanted to customize its appearance.

The main document

Now all of the hard work is done. It is time to see a small implementation of the previous macros, that is to say, a small example of how to use these macros, so that we can produce the example below.

Of course, every snippet that will appear in this section is no longer part of the preamble of our document; instead, it is all written inside the document environment .

First let’s write our name, motivation, and personal information:

  • Note the need for the adequate vertical spacing each time: to get the motto closer to the name, we deleted 10pt of vertical space, which in our opinion made the title look better.
  • We also added a \sepspace between the title and the personal info, and wrote the email with the typewriter font type, to make it look more professional.

Following this we have the work experience:

As you can see, between each entry we use a \sepspace . Similarly, we have the education section:

In this case, the education entries need no description. For this reason, we don’t use the \sepspace between entries, since they seem to look fine this way. However, this is just a matter of taste, so it is your final decision how it should look like.

And to finish the curriculum we have the sections with skills and languages:

In this tutorial we have seen a comprehensive explanation of the source code needed to compile the example of CV shown above.

  • Along the way, we have explained several LaTeX commands to modify spacing , indenting , font size , font types , etc. that I hope will be useful to you in your LaTeX life beyond this project.
  • We have seen some external packages, such as geometry or sectsty , used to customize the appearance of our document, that may also be useful in other kinds of documents.

Therefore I hope this tutorial has not only helped you typeset a professional CV, but that you have also gained some more insight into how LaTeX works with a practical example.

Recent Posts

Typesetting Multiple Choice Questions in LaTeX

n this tutorial, we will see how to write a multiple-choice exam in LaTeX, using the exam document class. This document class provides multiple tools to easily typeset exams in LaTeX, and we have...

How to denote the dot product in LaTeX?

In this post, we will learn how to denote the dot product in LaTeX and which commands can be used!

Navigation Menu

Search code, repositories, users, issues, pull requests..., provide feedback.

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly.

To see all available qualifiers, see our documentation .

  • Notifications You must be signed in to change notification settings

ATS friendly LaTeX resume template. Create a unique looking CV from scratch.

subidit/rover-resume

Folders and files, repository files navigation.

Daytona logo

This repository has several simple yet effective résumé template using basic LaTeX commands. The BASE ROVER template requires only about 10 lines of code to set up a clean and minimal résumé format. For your résumé, there's no need for any custom résumé class, which requires you to learn new commands and options. These templates leverage the full power and flexibility of LaTeX, allowing you to customize every aspect without the constraints of predefined classes. All templates use article class and preinstalled fonts only.

These templates are designed with ATS (Applicant Tracking System) compatibility in mind, featuring single-column layouts that ensure your résumé is easily parsed. By using standard LaTeX commands, they maintain a clear and organized structure, making it simple for both ATS software and recruiters to quickly identify key details.

If you have any questions about using this template or formatting your résumé, feel free to post them in the Discussions section.

Screenshots

*Milky Rover Template is a recreation of Butterick’s practical typography résumé template.

  • Single or Double lined title option.
  • Multiple ways to format the Name & Contact info banner.
  • ATS friendly.
  • Works with pre-installed LaTeX fonts.
  • Uses article class. No need to learn the working of any custom class.
  • Uses typographic best practices.
  • Your content looks clean and structured.

Quick start

Edit on Overleaf . Or just copy paste the code into your favorite LaTeX editor.

Getting Started

  • Get the Repository : Fork or Download this repository to your local machine.
  • Select a Template : Choose a template from the available options.
  • Fill in Your Details : Personalize the template by filling in your information.

Tips for Using LaTeX Commands

  • Sectioning : Use \section for major sections like Education, Experience, Certifications, Awards, Skills & Interests, etc.
  • Subsectioning : Employ \subsection{} and \subsubsection for primary and secondary titles such as Institution Name, Position Title, Duration, etc.
  • Bullet Points : Use itemize lists for creating bullet points.

Known Issue

This occurs because hyperref package creates clickable texts for both internal and external links. When generating a PDF, certain elements like bookmarks, metadata, and hyperlinks are encoded as PDF strings . Since \section{} , \subsection{} etc. are used in the Table of contents (i.e. bookmarks), certain LaTeX commands (like \hfill ) or control sequences doesn't make sense in this context.

When hyperref encounters the \hfill command while processing a piece of text that needs to be converted into a PDF string, it cannot include this command in the output PDF string. As a result, it removes the command and issues a warning to notify you of this action.

We can circumvents this issue by disabling the creation of bookmarks as shown below.

To avoid generating warnings, the bookmarks option in the hyperref package must be set during package loading with \usepackage[bookmarks=false]{hyperref} . You can use \hypersetup{} for everything else.

For inquiries or assistance, visit the Discussions tab.

Feel free to contribute to the project or provide feedback by opening an issue or submitting a pull request.

Happy job hunting!

writing resume in latex

Your new CV

Creating a professional CV or resume is quick and easy with Overleaf and writeLaTeX. With this free template you can start editing online instantly, and download a PDF version to send to employers and recruiters when you've finished.

Here we use a great template produced by howtotex.com, and if you're looking for a different style why not checkout our full gallery of CV and Résumé templates .

If you're new to LaTeX, checkout our free online introduction to LaTeX course for more hints on writing and editing in LaTeX.

Your new CV

Get in touch

Have you checked our knowledge base ?

Message sent! Our team will review it and reply by email.

Email: 

COMMENTS

  1. Templates - Journals, CVs, Presentations, Reports and More

    Produce beautiful documents starting from our gallery of LaTeX templates for journals, conferences, theses, reports, CVs and much more. An online LaTeX editor that’s easy to use. No installation, real-time collaboration, version control, hundreds of LaTeX templates, and more.

  2. How to Write a Minimalistic CV in LaTeX: Step-by-step Guide

    Learn how to write and customize a minimalistic curriculum vitae in LaTeX. Understand the logic behind every macro, and also how you can make modifications…

  3. GitHub - subidit/rover-resume: ATS friendly LaTeX resume ...

    This repository has several simple yet effective résumé template using basic LaTeX commands. The BASE ROVER template requires only about 10 lines of code to set up a clean and minimal résumé format.

  4. Your new CV - Overleaf, Online LaTeX Editor

    Creating a professional CV or resume is quick and easy with Overleaf and writeLaTeX. With this free template you can start editing online instantly, and download a PDF version to send to employers and recruiters when you've finished.

  5. packages - LaTeX template for resume/curriculum vitae - TeX ...

    If you have a TeX'ed resume, did you use a template or make your own? Are there any useful packages? What looks the most professional? How about special considerations for different areas of work (...

  6. Create your Professional/Educational resume using LaTeX

    In this tutorial, I would like to demonstrate the use of the LaTeX environment to create a well organized and professional resume for your future endeavors. The primary motive behind a compelling resume is to showcase your essential assets like your Qualifications, Experience, Achievements, Capabilities, and Qualities.