Skip to main content
A CV is the one document where typography visibly works for or against you. Recruiters and hiring committees skim; a page with clean alignment, consistent spacing, and restrained styling reads as careful work before anyone reads a word. That’s exactly what LaTeX is good at — and unlike a word processor, the layout will not shift the night before a deadline because you added one more bullet point. This guide builds a complete CV twice — once with the plain article class so you understand every line, and once with moderncv for a styled result with less code — then covers the details that separate a good CV PDF from a mediocre one.

Why LaTeX for a CV?

  • Consistent layout. Sections, dates, and rules stay aligned no matter how often you edit. There is no invisible table cell to fight.
  • One source, many versions. Keep your CV in version control and maintain variants (industry vs. academic, one-page vs. full) from a shared base.
  • Professional PDF output. Predictable fonts, proper hyphenation, and real hyperlinks via hyperref.
  • Plain text. Reviewable diffs, easy backups, and no proprietary format.
If you have never written LaTeX before, start with LaTeX in 30 Minutes first — this guide assumes you can compile a basic document.

A Complete CV with the article Class

The fastest way to understand CV layout in LaTeX is to build one from scratch. This example uses only three packages: geometry for margins, hyperref for clickable links, and titlesec for compact section headings with a rule. A few details worth copying even if you change everything else:
  • \pagestyle{empty} removes the page number — a one-page CV doesn’t need one.
  • \hfill pushes dates and places to the right margin without any table, which keeps the source readable.
  • \titlerule under each section heading gives the page structure at a glance.
  • \href makes your email and website clickable in the PDF while staying printable.

The Same CV with moderncv

If you’d rather not hand-style anything, moderncv ships professional layouts out of the box. It is part of TeX Live, so there is nothing to install — pick a style (classic, banking, casual) and a color, and fill in the entries. The core of moderncv is two commands: \cventry for anything with a date range (jobs, degrees) and \cvitem for labeled one-liners (skills, languages). Everything aligns automatically. Which one should you use? Use moderncv when you want a good result quickly. Use the article approach when you need full control over layout — or when an employer’s submission system dislikes decorative elements and you want maximal simplicity.

Academic CVs: Adding Publications

For academic positions, the publications section carries the most weight. For a handful of entries, thebibliography is enough and keeps numbering consistent: Once your list grows beyond a page, switch to BibLaTeX with a .bib file — the same database you already use for papers can generate your CV’s publication list, sorted and formatted automatically.

Details That Make a CV Look Professional

Margins. Default article margins are made for long documents, not CVs. \usepackage[margin=2.2cm]{geometry} is a good starting point; do not go below ~1.5 cm or the page looks crowded when printed. Fonts. The default Computer Modern is fine, but a sans-serif or humanist font often suits CVs better. \usepackage{helvet} with \renewcommand{\familydefault}{\sfdefault} gets you a clean sans-serif look with pdfLaTeX. One page vs. two. Industry CVs: aim for one page, cut ruthlessly. Academic CVs: length grows with your record — completeness beats compression, but the first page must still carry the essentials. PDF text quality. Many companies extract text from your PDF automatically. LaTeX PDFs extract cleanly by default — one more reason to avoid turning your CV into a design poster with text baked into graphics. Keep content as text, use standard section names, and check the result by selecting-and-copying text in your PDF viewer. Ligatures in copy-paste. If extracted text shows glued together in words like “profile”, add \usepackage{cmap} (pdfLaTeX) at the top of your preamble to improve text extraction.

Common Mistakes to Avoid

  1. Over-designing. Two font sizes, one accent at most. The typography should be invisible.
  2. Inconsistent date formats. Pick 2022 -- 2024 or 03/2022 -- 06/2024 and use it everywhere. The -- gives you a proper en-dash.
  3. Manual spacing everywhere. If you are writing \vspace after every entry, define the spacing once (as titlespacing does in the first example) instead.
  4. A photo by default. Conventions differ by country — photos are common in Germany, unusual in the US and UK. Decide per application, not per template.

Start from a Template

If you’d rather not start from a blank file, the CV template in our gallery is ready to open and edit — and both examples on this page compile as shown in LaTeX Cloud Studio, with the PDF preview next to your source. Open the editor and start your CV → No installation needed — moderncv and everything else used here is already available.