Skip to content

nbaghiro/latex-compiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LaTeX Compiler

Dockerized LaTeX compilation environment. No local LaTeX installation required.

Prerequisites

  • Docker Desktop

Quick Start

# Make scripts executable
chmod +x compile.sh watch.sh

# Compile resume
./compile.sh resume

# Watch mode (auto-recompile on changes)
./watch.sh resume

First run downloads the Docker image (~500MB) and installs packages. Subsequent runs are instant.

Usage

Compile

./compile.sh [project-name] [optional-file.tex]

Examples:

./compile.sh resume                    # Compiles first .tex in projects/resume/
./compile.sh resume resume.tex         # Compiles projects/resume/resume.tex
./compile.sh letter cover-letter.tex   # Compiles projects/letter/cover-letter.tex

Watch Mode

./watch.sh [project-name]

Auto-recompiles on file changes. Excludes PDF/log/aux files from watch to prevent loops. Press Ctrl+C to stop.

Project Structure

latex-compiler/
├── Dockerfile                    # LaTeX environment (XeLaTeX)
├── docker-compose.yml           # Docker config
├── compile.sh                   # Compile script
├── watch.sh                     # Watch script with fswatch
└── projects/
    ├── resume/
    │   ├── resume.tex
    │   └── resume-openfont.cls
    └── [your-project]/
        └── *.tex

Adding Projects

mkdir projects/my-paper
cd projects/my-paper
# Add your .tex files
./compile.sh my-paper

Each project is isolated. Add custom .cls, .sty, images, etc. directly to project folders.

Customization

Add LaTeX Packages

Edit Dockerfile:

RUN tlmgr install [package-name]

Rebuild:

docker-compose build --no-cache

Per-Project Configuration

Projects are independent. Add any custom files (classes, styles, fonts) to the project directory.

Technical Details

  • Compiler: XeLaTeX (supports Unicode and modern fonts)
  • Base Image: texlive/texlive:latest
  • File Watching: fswatch (excludes .pdf, .aux, .log, .out)
  • Volume Mounting: Projects mounted read-write at /work
  • Auto-cleanup: Removes auxiliary files after compilation

Troubleshooting

Watch script keeps recompiling:

  • Fixed in latest version - PDF/aux files excluded from watch

Ctrl+C doesn't stop watch:

  • Fixed in latest version - proper signal handling with -i flag

Permission denied:

chmod +x compile.sh watch.sh

Build fails:

docker-compose build --no-cache

Current Projects

  • resume: Professional single-column resume template with XeLaTeX fonts

License

MIT

About

Docker-based LaTeX compiler. No local installation required. Auto-recompile on file changes.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published