---
title: "Render"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Render}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
```{r setup}
library(docorator)
```
Running `as_docorator()` does not render your display - it creates a `docorator` object to store all your display information. For rendering, an explicit call to a render function is needed. A display can be output to PDF, RTF, or both via a combination of the `render_pdf()` and `render_rtf()` functions.
Further, with `render_pdf()`, users have a choice of R Markdown or Quarto engines via the `quarto` option. Currently, the result is nearly identical, except for {gt} tables, where `quarto = FALSE` renders the `gt` via the `longtable` LaTeX library and `quarto = TRUE` via the `tabular` LaTeX library. Please note the Quarto engine is currently experimental and can take longer to render.
## Render to PDF
```
as_docorator(
mytbl,
display_name = "mytbl"
) |>
render_pdf()
```
If you understand the underlying LaTeX involved in going from a display object to PDF, `render_pdf` has a few arguments which could be of use.
- The `transform` argument allows you to pass a function to manipulate the LaTeX string of the object before it goes to PDF.
- The `header_latex` argument allows additional LaTeX to be added to the header-includes section of the template.Rmd used for PDF generation. For example, you can pass additional LaTeX libraries here. This should be passed as a .tex file.
- The `escape_latex` argument controls escaping for special characters in headers and footers. This can be set to `FALSE` to disable the escaping if manual escaping is preferred, i.e. if results are not as expected.
## Render to RTF
```
as_docorator(
mytbl,
display_name = "mytbl"
) |>
render_rtf()
```
Due to the limitations of the RTF file format, some arguments specified in your `as_docorator()` call are not preserved, such as certain formatting or table styling. Document decoration headers are also not preserved, only titles specified as 'center' will be applied.
## Multi-render
```
as_docorator(
mytbl,
display_name = "mytbl"
) |>
render_pdf() |>
render_rtf()
```
Both `render_pdf()` and `render_rtf()` return the original object created with `as_docorator()`, and as such, can be piped one after another as shown in the example above.