Write beautiful yet customizable letters in R Markdown and directly obtain the finished PDF. Smooth generation of PDFs is realized by 'rmarkdown', the 'pandoc-letter' template and the 'KOMA-Script' letter class. 'KOMA-Script' provides enhanced replacements for the standard 'LaTeX' classes with emphasis on typography and versatility. 'KOMA-Script' is particularly useful for international writers as it handles various paper formats well, provides layouts for many common window envelope types (e.g. German, US, French, Japanese) and lets you define your own layouts. The package comes with a default letter layout based on 'DIN 5008B'.
Simple letters tend to look very much alike. They are either determined by a standard eg. window envelope style or writer's preferences. Thus, if the layout is fix, they lend themselves to be written in R Markdown.
The KOMA-Script LaTeX Bundle provides layouts for many common window envelope types (German, US, French, Japanese, ...) and the possibility to define your own layout. The komaletter package also provides it's own default layout loosely based on DIN 5008B.
This package is an adaptation of the linl package by Dirk Eddelbuettel and Aaron Wolen. Which leans on earlier work by Aaron Wolen in his pandoc-letter repository and extends it for use from R via the rmarkdown package.
The skeleton creates a very simple letter as a starting point for your own
writing. Several formatting defaults for font, fontsize, indentation are in use.
vignette('intro', 'komaletter') and
help(komaletter) for a complete list
and default values. The following figure shows the complete source on the left
and the rendered pdf on the right.
The vignette examples are a little more featureful and show how to include a signature, choose a different layout and a few formatting settings. All of these are driven by simple YAML headers as seen on the left. The vignettes also contain a few lines of vignette metadata one would be excluded from a normal letter.
As the package is on CRAN, you can use the standard incantation to install the released version. A development version of komaletter can be installed from Github using the package devtools.
# the easiest way is to install from CRANinstall.packages("komaletter")# or get the development version from Github# install.packages("devtools")devtools::install_github("rnuske/komaletter")
To start a new letter one can call the skeleton using the
rmarkdown::draft or the RStudio menu: New File > R markdown... The document can be compiled to PDF via
rmarkdown::render or the RStudio Knit button.
# load rmarkdown# komaletter enhances rmarkdown and doesn't need to be loadedlibrary(rmarkdown)# start a new letter using the provided skeletondraft("myletter.Rmd", template="pdf", package="komaletter", edit=FALSE)# change myletter.Rmd to your liking# turn Rmd into a beautiful PDFrender("myletter.Rmd")
Beyond the R package dependencies, a working
pandoc binary and a LaTeX
distribution including KOMA-Script is needed. RStudio installs it's own copy of
pandoc, otherwise do what is needed on your OS. For LaTeX look for
which is included in most Linux distributions or
MiKTeX if you are using
Windows. KOMA-Script is part of all but the most bare bone LaTeX distributions.
sudo apt-get install pandoc pandoc-citeproc texlive should provide everything needed on Debian/Ubuntu.
If you plan to write non-english letter, make sure you have the necessary
language packs, i.e
Robert Nuske, Dirk Eddelbuettel and Aaron Wolen.
GPL-3 for this package, the work in pandoc-letter, as well as underlying Pandoc template.