3.8 KiB
template_first-skyfritt-example.tex
Pandoc template for generating PDFs via XeLaTeX. Produces a document with a title page, table of contents, Roboto font, A4 format, 2.5 cm margins, and page numbering.
Requirements
- Pandoc
- A TeX Live installation with XeLaTeX
- Homebrew (for installing fontconfig)
- Roboto and Roboto Mono fonts
macOS Installation
1. Install Homebrew (if not already installed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2. Install Pandoc
brew install pandoc
3. Install MacTeX / TeX Live
Download and install MacTeX from https://tug.org/mactex/, or install the lighter BasicTeX:
brew install --cask basictex
After installation, open a new terminal session so that /Library/TeX/texbin is on your PATH.
4. Update tlmgr and install LaTeX packages
sudo tlmgr update --self
sudo tlmgr install \
titlesec \
tocloft \
booktabs \
tools \
fancyhdr \
parskip \
float \
listings \
fancyvrb \
caption \
hyperref \
xcolor \
fontspec \
geometry \
babel
5. Install fontconfig
fc-list and fc-cache are needed for font verification and are not included on macOS by default:
brew install fontconfig
6. Install fonts
Download Roboto and Roboto Mono from Google Fonts and install them into ~/Library/Fonts/:
curl -L "https://fonts.google.com/download?family=Roboto" -o roboto.zip && \
curl -L "https://fonts.google.com/download?family=Roboto+Mono" -o roboto-mono.zip && \
unzip roboto.zip -d ~/roboto && \
unzip roboto-mono.zip -d ~/roboto-mono && \
cp ~/roboto/static/*.ttf ~/Library/Fonts/ && \
cp ~/roboto-mono/static/*.ttf ~/Library/Fonts/ && \
fc-cache -f -v
Clean up:
rm -rf roboto.zip roboto-mono.zip ~/roboto ~/roboto-mono
7. Verify fonts are available to XeLaTeX
fc-list | grep -i roboto
You should see several lines listing the Roboto and Roboto Mono font files. If nothing appears, double-check that the .ttf files are present in ~/Library/Fonts/.
8. Verify LaTeX packages are installed
kpsewhich titlesec.sty tocloft.sty fancyhdr.sty caption.sty
Each line should return a file path. If any are blank, install the missing package individually:
sudo tlmgr install <packagename>
Usage
Add a YAML front matter block to the top of your Markdown file:
---
title: "My Document"
subtitle: "An optional subtitle"
author: "Jane Doe"
date: "March 2026"
description: "An optional blurb shown at the bottom of the title page."
---
Then compile with:
pandoc input.md -o output.pdf \
--pdf-engine=xelatex \
--template=template_first-skyfritt-example.tex
Fonts used
| Role | Font | Source |
|---|---|---|
| Main text | Roboto | https://fonts.google.com/specimen/Roboto |
| Monospace | Roboto Mono | https://fonts.google.com/specimen/Roboto+Mono |
Both fonts are open source and licensed under the Apache License 2.0.
Troubleshooting
xelatex: createProcess: find_executable: failed
XeLaTeX is not installed or not on your PATH. Install MacTeX or BasicTeX and open a new terminal session.
The font "Roboto" cannot be found
The font is not installed. Follow step 6 above.
File 'titlesec.sty' not found
A required LaTeX package is missing. Run the tlmgr install command in step 4.
No counter 'none' defined
A known pandoc + longtable bug. The template includes a fix for this — make sure you are using the latest version of template_first-skyfritt-example.tex.
fc-list: command not found
fontconfig is not installed. Run brew install fontconfig.