Skip to main content

Local installation

For full control over your CV compilation and offline editing, you can install a TeX distribution on your local machine.

Requirements

A full TeX distribution is required to compile the CV templates. The recommended option is TeX Live, which works on Windows, macOS, and Linux.
If you don’t want to install TeX on your system, you can use Docker instead (see below).

Installing TeX Live

Installing TeX Live from upstream gives you the most up-to-date packages:
  1. Download the install script from tug.org/texlive
  2. Run the installer and select the full scheme
See the TeX Live installation guide for detailed instructions.

Option 2: Install from package manager

For Ubuntu/Debian:
sudo apt-get install texlive-full
For Fedora:
sudo dnf install texlive-scheme-full
For Arch Linux:
sudo pacman -S texlive-most
Package manager versions may be outdated. Installing from upstream is recommended for the latest features.

Cloning the repository

Once TeX Live is installed, clone the CV Template repository:
git clone https://github.com/Mirza42069/CV_Template.git
cd CV_Template

Compiling your CV

cd examples
pdflatex cv_en.tex

Using pdfLaTeX directly

Navigate to the examples directory and compile:
cd examples
pdflatex cv_en.tex
This will generate cv_en.pdf in the same directory.
You may see warnings about overfull hboxes - these are usually safe to ignore and won’t affect the final PDF.
To compile the Indonesian version:
pdflatex cv_id.tex

Using the Makefile

From the project root, run:
make
This will compile both cv_en.pdf and cv_id.pdf in the examples directory. The Makefile runs pdflatex twice for each file to ensure all references are resolved correctly. Makefile targets:
  • make all or make - Compile both English and Indonesian CVs
  • make examples/cv_en.pdf - Compile only the English CV
  • make examples/cv_id.pdf - Compile only the Indonesian CV
  • make clean - Remove auxiliary files (.aux, .log, .out, etc.)

Using Docker

If you don’t want to install TeX Live locally, you can use the official TeX Live Docker image:
docker run --rm --user $(id -u):$(id -g) -i -w "/doc" \
  -v "$PWD/examples":/doc \
  texlive/texlive:latest \
  pdflatex cv_en.tex
What this command does:
  • --rm - Remove the container after compilation
  • --user $(id -u):$(id -g) - Run as your user (prevents permission issues)
  • -w "/doc" - Set working directory inside container
  • -v "$PWD/examples":/doc - Mount the examples directory
  • texlive/texlive:latest - Use the official TeX Live image
  • pdflatex cv_en.tex - Compile the English CV
The first time you run this command, Docker will download the TeX Live image, which is several gigabytes and may take a while.

File structure

After cloning the repository, you’ll see this structure:
examples/
  cv_en.tex             English CV template (edit this)
  cv_id.tex             Indonesian CV template (edit this)
  cv_en.pdf             Compiled English PDF
  cv_id.pdf             Compiled Indonesian PDF
  cv_en.png             Preview screenshot (English)
  cv_id.png             Preview screenshot (Indonesian)
cv_template.cls         Reference class file (not used by templates)
.github/workflows/compile-pdfs.yml   GitHub Actions CI for PDF compilation
CV_Template_Overleaf.zip    Ready-to-upload ZIP for Overleaf
Makefile                Build script (make all)
The example templates (cv_en.tex and cv_id.tex) don’t use cv_template.cls. They are self-contained with all styling defined inline. The class file is included as a reference for advanced users who want to create a custom class.

Continuous integration

The repository includes a GitHub Actions workflow that automatically compiles PDFs on every push:
.github/workflows/compile-pdfs.yml
name: Compile PDFs

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Compile LaTeX documents
        uses: xu-cheng/latex-action@v2
        with:
          root_file: |
            examples/cv_en.tex
            examples/cv_id.tex
This ensures your PDFs are always up to date with your source files.

Troubleshooting

Missing packages

If you get errors about missing packages: TeX Live users:
tlmgr install <package-name>
MiKTeX users:
MiKTeX will prompt you to install missing packages automatically.

Font not found

The template tries to use the Inter font if available, but falls back to Helvetica automatically:
\IfFileExists{inter.sty}{
  \usepackage[sfdefault]{inter}
}{
  \usepackage[scaled=0.95]{helvet}
}
No action is needed - the fallback works seamlessly.

Compilation errors

If you encounter compilation errors:
  1. Make sure you’re using pdflatex (not latex, xelatex, or lualatex)
  2. Check that all required packages are installed
  3. Try running pdflatex twice - some references require two passes
  4. Look at the .log file in the examples directory for detailed error messages

Next steps

Customization

Learn how to customize colors, fonts, and layout

Examples

View sample CVs and see what’s possible

Build docs developers (and LLMs) love