A modular LaTeX resume template that can be easily customized and compiled to PDF.
The resume is organized into modular sections:
resume.tex- Main document file that includes all sectionspreamble.tex- Document class, LaTeX packages, and formatting settingssections/header.tex- Name and contact informationsections/experience.tex- Work experience sectionsections/skills.tex- Skills sectionsections/education.tex- Education section
Build the PDF:
makeClean auxiliary files (keeps PDF):
make cleanClean everything including PDF:
make cleanallRebuild (clean and build):
make rebuildWatch for file changes and auto-rebuild:
make watchThis will automatically rebuild your resume whenever you save any .tex or .sty file. It uses polling mode (checks every 2 seconds). Press Ctrl+C to stop watching.
Show all available commands:
make helpNote for Windows users: It's recommended to use WSL (Windows Subsystem for Linux) to build the resume.
- Install WSL if you haven't already: https://learn.microsoft.com/en-us/windows/wsl/install
- Open WSL terminal and navigate to your project directory
- Install build tools (if needed):
sudo apt update sudo apt install build-essential
- Install LaTeX (TeX Live):
sudo apt install texlive-full
- Now you can use
maketo build your resume!
If you prefer to compile manually or don't have make:
pdflatex resume.tex- TeX Live (Cross-platform): https://www.tug.org/texlive/
Your personal information (name, title, email, etc.) is kept private and not committed to the repository. You have two options:
-
Copy the example file:
cp private.tex.example private.tex
-
Edit
private.texand fill in your personal information:\newcommand{\resumename}{Your Name} \newcommand{\resumetitle}{Your Job Title} \newcommand{\resumeemail}{your.email@example.com} \newcommand{\resumewebsite}{https://yourwebsite.com} \newcommand{\resumelocation}{Your City, State} \newcommand{\resumephone}{+1 (XXX) XXX-XXXX}
The private.tex file is gitignored and will not be committed to the repository.
You can also set environment variables instead of using private.tex:
export RESUME_NAME="Your Name"
export RESUME_TITLE="Your Job Title"
export RESUME_EMAIL="your.email@example.com"
export RESUME_WEBSITE="https://yourwebsite.com"
export RESUME_LOCATION="Your City, State"
export RESUME_PHONE="+1 (XXX) XXX-XXXX"
makeNote: If private.tex exists, it takes precedence over environment variables.
- Edit
private.tex(or set environment variables) to update your name and contact information - Edit
sections/experience.texto add/modify work experience - Edit
sections/skills.texto update your skills - Edit
sections/education.texto update education details - Edit
preamble.texto modify document class, formatting, or add LaTeX packages
- Create a new
.texfile in thesections/directory (e.g.,sections/projects.tex) - Add your content to the new file
- Include it in
resume.texusing\input{sections/filename}
Example:
% In resume.tex, after other sections:
\input{sections/projects}This project uses tex-fmt for automatic LaTeX formatting with the LaTeX Workshop VSCode extension.
Note: The LaTeX Workshop VSCode extension is required for formatting to work inside the IDE. Install it from the VSCode marketplace if you haven't already.
Prerequisites: Install Rust on your system.
For native Windows (Default):
- Install Rust from https://www.rust-lang.org/tools/install
- Open PowerShell or Command Prompt
- Install
tex-fmt:cargo install tex-fmt
For Windows users using WSL:
- Open WSL terminal
- Install Rust (if not already installed):
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Install
tex-fmt:cargo install tex-fmt
The project is pre-configured to use tex-fmt with native Windows. The configuration is in .vscode/settings.json:
{
"latex-workshop.formatting.latex": "tex-fmt",
"latex-workshop.formatting.tex-fmt.path": "tex-fmt",
"latex-workshop.formatting.tex-fmt.args": []
}For WSL installation, update .vscode/settings.json to:
{
"latex-workshop.formatting.latex": "tex-fmt",
"latex-workshop.formatting.tex-fmt.path": "wsl",
"latex-workshop.formatting.tex-fmt.args": [
"bash",
"-lc",
"tex-fmt --nowrap \"$(wslpath '%TMPFILE%')\""
]
}Note: Ensure that the directory containing the tex-fmt executable is in your system's PATH environment variable.
Once configured, you can format your LaTeX files in VSCode:
- Format entire document: Press
Shift+Alt+F(orShift+Option+Fon macOS) - Format selection: Select text, right-click, and choose
Format Selection - Format on save: Enable format on save in VSCode settings
For more information, see the LaTeX Workshop Formatting Documentation.