{"id":13558981,"url":"https://github.com/mrzool/letter-boilerplate","last_synced_at":"2025-04-04T21:09:03.085Z","repository":{"id":48826669,"uuid":"44920840","full_name":"mrzool/letter-boilerplate","owner":"mrzool","description":"Finest letter typesetting from the command line","archived":false,"fork":false,"pushed_at":"2024-08-02T07:46:49.000Z","size":1146,"stargazers_count":446,"open_issues_count":7,"forks_count":78,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-28T20:07:27.032Z","etag":null,"topics":["latex","makefile","markdown","pandoc","pdf","typesetting","xetex","yaml"],"latest_commit_sha":null,"homepage":"http://mrzool.cc/tex-boilerplates/","language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrzool.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-10-25T17:28:19.000Z","updated_at":"2025-03-10T06:04:19.000Z","dependencies_parsed_at":"2024-11-04T10:42:05.854Z","dependency_job_id":null,"html_url":"https://github.com/mrzool/letter-boilerplate","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrzool%2Fletter-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrzool%2Fletter-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrzool%2Fletter-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrzool%2Fletter-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrzool","download_url":"https://codeload.github.com/mrzool/letter-boilerplate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247249528,"owners_count":20908212,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["latex","makefile","markdown","pandoc","pdf","typesetting","xetex","yaml"],"created_at":"2024-08-01T12:05:16.230Z","updated_at":"2025-04-04T21:09:03.061Z","avatar_url":"https://github.com/mrzool.png","language":"TeX","funding_links":[],"categories":["TeX","markdown"],"sub_categories":[],"readme":"# Letter Boilerplate\n\nA boilerplate to quickly and painlessly generate high-quality letters through LaTeX.\n\nWhy settle for MS Word when you can get the job done using your text editor?\n\n![preview](preview.jpg)\n\n## Dependencies\n\n1. LaTeX with the following extra packages: `fontspec` `geometry` `ragged2e` `enumitem` `xunicode` `xltxtra` `hyperref` `polyglossia` `footmisc` (also, `datetime2` plus its language modules if you want to use a custom date, see below in the settings section)\n2. [Pandoc](http://pandoc.org/), the universal document converter.\n\nI highly recommend [TinyTeX](https://yihui.org/tinytex/) as LaTeX distribution. All additional packages can be installed with `tlmgr` as needed.\n\n## Getting started\n\n1. Open `letter.md` and fill the YAML frontmatter with your details, your recipient's details, optional subject line, and the desired settings.\n2. Write your letter in markdown below.\n3. Run `make` to compile the PDF.\n\nIf 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](http://tex.stackexchange.com/a/32940/82423) to import your own signature.\n\n**Note**: this template needs to be compiled with XeTeX.\n\n### Note for Windows users\n\nAlthough I didn't test it, you can probably use this on Windows, too. Both [Pandoc](http://pandoc.org/installing.html) and LaTeX can be installed on Windows and you should be able to run makefiles on Windows through [Cygwin](https://www.cygwin.com/). If that's too much hassle, this command should do the trick in Powershell:\n\n    pandoc letter.md -o output.pdf --template=template.tex --pdf-engine=xelatex\n\n## Available settings\n\n- **`subject`**: The letter's subject (optional)\n- **`mainfont`**: Hoefler Text is the default, but every font installed on your system should work out of the box thanks to XeTeX.\n- **`altfont`**: Used to render the recipient address so that it stands out from the rest of the letter.\n- **`fontsize`**: Possible values here are 10pt, 11pt and 12pt.\n- **`lang`**: Sets the main language through the `polyglossia` package. This is important for proper hyphenation and date format.\n- **`geometry`**: A string that sets the margins through `geometry`. Read [this](https://www.sharelatex.com/learn/Page_size_and_margins) to learn how this package works.\n- **`letterhead`**: include custom letterhead in the PDF (see below).\n- **`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 `datetime2` along with its language module (ex: if `lang` is set to `german` do `tlmgr install datetime2 datetime2-german`)\n\n## Custom letterhead\n\nIf 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.\n\n## Recommended readings\n\n- [Typesetting Automation](http://mrzool.cc/writing/typesetting-automation/), my article about this project with in-depth instructions and some suggestions for an ideal workflow.\n- [The Beauty of LaTeX](http://nitens.org/taraborelli/latex) by Dario Taraborelli\n- [Letterhead advices](http://practicaltypography.com/letterhead.html) from Butterick's Practical Typography \n- [Multichannel Text Processing](https://ia.net/topics/multichannel-text-processing/) by iA\n- [Why Microsoft Word must Die](http://www.antipope.org/charlie/blog-static/2013/10/why-microsoft-word-must-die.html) by Charlie Stross\n- [Word Processors: Stupid and Inefficient](http://ricardo.ecn.wfu.edu/~cottrell/wp.html) by Allin Cottrell\n- [Proprietary Binary Data Formats: Just Say No!](https://web.archive.org/web/20170730105025/http://www.podval.org/~sds/data.html) by Sam Steingold\n- [Sustainable Authorship in Plain Text using Pandoc and Markdown](http://programminghistorian.org/lessons/sustainable-authorship-in-plain-text-using-pandoc-and-markdown) by Dennis Tenen and Grant Wythoff\n\n## Resources\n\n- [TinyTeX](https://yihui.org/tinytex/) is a lightweight, cross-platform, portable, and easy-to-maintain LaTeX distribution based on TeX Live.\n- Refer to [pandoc's documentation](http://pandoc.org/MANUAL.html#templates) to learn more about how templates work.\n- If you're not familiar with the YAML syntax, [here](http://learnxinyminutes.com/docs/yaml/)'s a good overview.\n- If you want to edit the template but LaTeX scares you, these [docs](https://www.sharelatex.com/learn/Main_Page) put together by ShareLaTeX cover most of the basics and are surprisingly kind to the beginner.\n- Odds are your question already has an answer on [TeX Stack Exchange](https://www.sharelatex.com/learn/Main_Page). Also, pretty friendly crowd in there.\n- Need to fax that letter? Check out [Phaxio](https://www.phaxio.com/) and learn how to send your faxes from the command line with a simple API call.\n\n## See also\n\n- [invoice-boilerplate](https://github.com/mrzool/invoice-boilerplate) — Simple automated LaTeX invoicing system\n- [cv-boilerplate](https://github.com/mrzool/cv-boilerplate) — Easing the process of building and maintaining a CV using LaTeX\n\n## License\n\n[MIT](https://opensource.org/licenses/MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrzool%2Fletter-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrzool%2Fletter-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrzool%2Fletter-boilerplate/lists"}