# R Markdown Vignettes with litedown

## Yihui Xie

### 2025-12-19

Before R 3.0.0, only Sweave/PDF vignettes were supported in R. Markdown is gaining popularity over the years due to its simplicity, and R 3.0.0 starts to support package vignettes written in R Markdown.

> Please note this example is for litedown. If you use R Markdown v2, you should use the vignette engine `knitr::rmarkdown` instead of `litedown::vignette`.

## Package vignettes

To enable Markdown vignettes in an R package, you need to

- add `*.Rmd` files under the `vignettes` directory
- add `VignetteBuilder: litedown` to the `DESCRIPTION` file
- specify the vignette engine `\VignetteEngine{litedown::vignette}` in the `Rmd` files (inside HTML comments)

## View vignettes

And R will load the litedown package to build these vignettes to HTML files, and you can see them when you open the HTML help:

    help(package = 'YourPackage', help_type = 'html')
    # or see a standalone list of vignettes
    browseVignettes('YourPackage')

## Examples

Below are some code chunks as examples.

    if (TRUE) cat('_hello_ **markdown**!', '\n')

hello markdown!

Normally you do not need any chunk options.

    1+1
    #> [1] 2
    10:1
    #>  [1] 10  9  8  7  6  5  4  3  2  1
    rnorm(5)^2
    #> [1] 0.0006543 1.0674152 0.0047204 2.9825604 0.0529313
    strsplit('hello, markdown vignettes', '')
    #> [[1]]
    #>  [1] "h" "e" "l" "l" "o" "," " " "m" "a" "r" "k" "d" "o" "w" "n" " " "v" "i" "g"
    #> [20] "n" "e" "t" "t" "e" "s"
    #>

Feel free to draw beautiful plots and write math \(P(X>x)=\alpha/2\).

    n=300; set.seed(123)
    par(mar=c(4,4,.1,.1))
    plot(rnorm(n), rnorm(n), pch=21, cex=5*runif(n), col='white', bg='gray')