indiedown makes it easy to generate a customized R Markdown PDF template that follow the principles of your corporate design.
Start by installing indiedown:
install.packages("indiedown")
You can also install the development version from GitHub:
# install.packages("remotes")
remotes::install_github("cynkra/indiedown")
Create an customized R Markdown template
# install.packages("devtools")
devtools::install_github("cynkra/indiedown")
To create your own customized R Markdown template, start by creating
an indiedown template package, called mydown
in this
example. Navigate to the directory where you want to create the package,
then:
indiedown::create_indiedown_package("mydown")
This creates a package skeleton in the new mydown
directory in the current working directory. You can build
mydown, using “Build and Reload” in the RStudio or via the
command line, as follows:
devtools::install("mydown")
With mydown built and installed, our new template is available in RStudio (after a restart):
Customization points
indiedown does not modify the default .tex
template of
Pandoc. Instead, all modifications are applied on top of it. This should
make it compliant with future releases of Pandoc and R Markdown.
There are three possible customization points to customize an indiedown skeleton:
Set defaults (such as fonts or geometry) in the YAML header at
inst/indiedown/default.yaml
Tweak LaTeX settings at
inst/indiedown/preamble.tex
Apply dynamic adjustments in
pre_processor.R
(advanced)
See the vignette("customize")
for details.
Corporate Design Elements
Indiedown packages use R functions to generate LaTeX code for customization.
For most customizations, it is recommended to turn off the default
LaTeX title page and create your own title page via LaTeX commands. The
basic repertory are the LaTeX commands \large
,
\Large
, \LARGE
, \huge
, etc, along
with vspace{1ex}
, but all LaTeX trickery can be applied.
The LaTeX helper functions should be put in the R
folder of
your package.
The function cd_page_title()
creates an example title
page that can be adjusted to your needs. Note that the example uses raw
strings, which are only available in R >= 4. They make it easy to
write LaTeX code directly in R. See details in
?indiedown_glue
for methods that work well with R <
4.