A boilerplate to quickly and painlessly generate high-quality letters through LaTeX.
Why settle for MS Word when you can get the job done using your text editor?
datetime2plus its language modules if you want to use a custom date, see below in the settings section)
To install LaTeX on Mac OS X, I recommend getting the smaller version BasicTeX from here and installing the additional packages with
tlmgr afterwards. Same goes for Linux: install
texlive-base with your package manager and add the needed additional packages later.
To install pandoc on Mac OS X, run
brew install pandoc. To install it on Linux, refer to the official docs.
letter.mdand fill the YAML frontmatter with your details, your recipient's details, optional subject line, and the desired settings.
maketo compile the PDF.
If a file named
signature.pdf is present in the directory, the boilerplate will automatically print it after the letter's body as a final touch. Follow this method to import your own signature.
Note: this template needs to be compiled with XeTeX.
Although I didn't test it, you can probably use this on Windows, too. Both Pandoc and LaTeX can be installed on Windows (I recommend MiKTeX for that) and you should be able to run makefiles on Windows through Cygwin. If that's too much hassle, this command should do the trick in Powershell:
pandoc letter.md -o output.pdf --template=template.tex --pdf-engine=xelatex
subject: The letter's subject (optional)
mainfont: Hoefler Text is the default, but every font installed on your system should work out of the box (thanks, XeTeX!)
altfont: Used to render the recipient address so that it stands out from the rest of the letter.
fontsize: Possible values here are 10pt, 11pt and 12pt.
lang: Sets the main language through the
polyglossiapackage. This is important for proper hyphenation and date format.
geometry: A string that sets the margins through
geometry. Read this to learn how this package works.
letterhead: include custom letterhead in the PDF (see below).
customdate: Allows you to specify a custom date in the format YYYY-MM-DD in case you need to pre/postdate your letter. Caveat: Requires
datetime2along with its language module (ex: if
langis set to
tlmgr install datetime2 datetime2-german)
If you have already designed your own letterhead and want to use it with this template, including it should be easy enough. Set the
letterhead option to
true to activate the
wallpaper package in the template.
wallpaper will look for a file named
letterhead.pdf in the project root folder and print it on the PDF before compiling the document. Change the fonts to match the ones in your letterhead, adjust the margins with
geometry and you should be all set.