YAMLResume

Installation

YAMLResume is a Node.js tool, under the hood, it transform your resumes from the YAML format to LaTeX code and then call a LaTeX typesetting engine to compile the generated LaTeX code to PDF. Besides, to get optimal PDF output, we also suggest to install some fonts. In a nutshell, you need to install the followings to get started with YAMLResume:

Please follow the appropriate instructions below to install the necessary tools based on your operating system. At the time of writing, our guide covers MacOS, Windows, and some Linux distributions.

Node.js

Node.js 20.x or newer is required.

There may be like 100+ methods to install Node.js on different OS, you can check the official Node.js Download to get started.

We recommend using a package manager to install Node.js.

yamlresume

Installing yamlresume is a breeze. You can install it using your favourite Node.js package manager:

npm install -g yamlresume

Verify that yamlresume is installed successfully:

$ yamlresume help
Usage: yamlresume [options] [command]
 
YAMLResume — Resume as Code in YAML
 
 __   __ _    __  __ _     ____
 \ \ / // \  |  \/  | |   |  _ \ ___  ___ _   _ ___  ___   ___
  \ V // _ \ | |\/| | |   | |_) / _ \/ __| | | / _ \/ _ \ / _ \
   | |/ ___ \| |  | | |___|  _ <  __/\__ \ |_| | | | | | |  __/
   |_/_/   \_\_|  |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
 
 
Options:
  -V, --version   output the version number
  -h, --help      display help for command
 
Commands:
  new [filename]  create a new resume
  build <source>  build a resume to LaTeX and PDF
  languages       i18n and l10n support
  templates       manage resume templates
  help [command]  display help for command

If you just want to give yamlresume a try without installing it, you can use npx, pnpx or other similar tools:

npx yamlresume help

Typesetting Engine

Under the hood, yamlresume does the job of a compiler, parsing a YAML resume to an AST and then transforming the AST to LaTeX code.

As a mini-compiler, yamlresume relies on a typesetting engine to compile the generated LaTeX code to PDFs. Therefore you must first install a typesetting engine first before you can use yamlresume to generate resume PDFs.

YAMLResume currently supports two typesetting engines: XeTeX and Tectonic.

Why LaTeX?

At the time of writing, LaTeX is still the best choice of typesetting engine for producing professional looking PDFs. Typst is a great alternative, but it is still in its early stage and its CJK support is not mature and production ready yet. Previously I wrote a post On Typesetting Engines explaining the reasons why I chose LaTeX over other typesetting engines when I founded PPResume.

XeTeX

XeTeX is a TeX typesetting engine using Unicode and supporting modern font technologies such as OpenType, Graphite and Apple Advanced Typography (AAT).

It is a very mature, stable typesetting engine that is widely used by many academic and scientific people.

The easiest way is to install the MacTeX distribution.

It includes XeTeX along with many other TeX-related programs and packages. You can download it from the MacTeX website or install it via homebrew:

brew install mactex

Verify that XeTeX is installed successfully:

$ xetex -v
XeTeX 3.141592653-2.6-0.999994 (TeX Live 2022)
kpathsea version 6.3.4
Copyright 2022 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 70.1; using 70.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.11.1; using 2.11.1
Compiled with Graphite2 version 1.3.14; using 1.3.14
Compiled with HarfBuzz version 3.4.0; using 3.4.0
Compiled with libpng version 1.6.37; using 1.6.37
Compiled with pplib version v2.05 less toxic i hope
Using Mac OS X Core Text and Cocoa frameworks

Tectonic

Tectonic is a modernized, complete, self-contained TeX/LaTeX engine, powered by XeTeX and TeXLive.

A full TeX Live distribution typically takes up several GB of disk space, while tectonic's initial installation takes up only 10+ MB. It automatically downloads support files, so you don't have to install a complete LaTeX distribution. When you start using a new LaTeX package, Tectonic simply downloads the files it needs and continues processing.

Tectonic provides an official installation guide, but this would just put tectonic in the directory where you ran the installation command, yamlresume needs a global tectonic command in your $PATH, so you need to figure that out with some shell hacks on your own.

If you're a macOS user, you're in luck because Homebrew provides prebuilt package:

brew install tectonic

In to my experience, tectonic still has some minor compatibility issues with official XeTeX, so if you do not mind the long download tim eof a full TeX Live distribution, XeTeX is still the recommended choice here.

Font

Linux Libertine

YAMLResume adopts Linux Libertine as the default font for Latin characters. It is highly recommended to install it in order to get an optimal PDF output.

For Homebrew users:

brew install font-linux-libertine

Otherwise you can download the latest version of Linux Libertine from the website and install the font with macOS's Font Book.

Google Noto

If you need CJK resumes, you will also need to install Google Noto fonts for best unicode coverage.

For Homebrew users:

brew install font-noto-sans-cjk font-noto-serif-cjk

Troubleshooting

You can raise an issue if you have trouble to install yamlresume or its dependencies.

Getting Tired?

If you are getting tired of the installation process, you can try PPResume, which is a hosted, commercial resume builder solution who open sourced YAMLResume.

On this page