A modular LaTeX template for creating clean, professional service quotes and offers — the kind you send to a client for freelance or consulting work. Change a handful of variables in one config file and get a polished, two-page PDF: a cover letter and an itemised offer with positions, subtotals, and a VAT summary.
Built out of the recurring need to send tidy, consistent offers without wrestling with a word processor every time.
- Single source of truth — all your data (sender, client, bank details, hourly rate, offer ID) lives in
config.tex. Edit once, no digging through the document. - Two-page layout — a formal cover letter followed by a detailed offer sheet.
- Itemised positions — group line items into positions with automatic subtotals.
- VAT summary — net / VAT / gross totals in a clean summary table.
- Automatic footer — contact and banking details plus
Page X of Y, generated instructure.tex. - One-command build on Windows via
make.ps1— compiles, cleans up build artifacts, and opens the PDF. - Portable — compiles with any LaTeX toolchain (Libertine font, A4 geometry,
hyperref,fancyhdr).
- A TeX distribution — e.g. MiKTeX (Windows), TeX Live (cross-platform), or MacTeX (macOS)
- A LaTeX editor — VS Code with the LaTeX Workshop extension is a good choice
-
Clone the repo:
git clone https://github.com/gerfru/LaTex-Offer.git cd LaTex-Offer -
Edit
config.texwith your details and offer line items. -
Build the PDF:
Windows (one command — requires an enabled PowerShell execution policy):
.\make.ps1
Any platform (manual compile):
pdflatex Offer_XX.tex
Everything you normally change per offer is in config.tex:
| Variable | Purpose |
|---|---|
\Sender, \Street, \City, \Country, \Phone, \Mail |
Your contact details |
\Bankname, \BIC, \IBAN |
Banking details for the footer |
\Company, \Companyperson, \Companyaddress |
The client you're sending to |
\Subject |
What the offer is about |
\Offer, \Customer, \CreateDate |
Offer ID, customer reference, date |
\Stdlohn |
Your hourly rate |
The line items and totals live in the offer table inside Offer_XX.tex.
| File | Role |
|---|---|
Offer_XX.tex |
Main document — cover letter and offer positions |
config.tex |
All per-offer variables (edit this) |
includes.tex |
Document class and packages |
structure.tex |
Footer definition |
make.ps1 |
Windows build script |
The modular split may look like a lot for a short document, but it keeps the content you edit cleanly separated from the layout you don't.
Released under the MIT License — free to use, adapt, and share.
Questions or ideas? Open an issue or reach out. Best regards, Gerald