# R Markdown (v1) Vignettes with knitr

## Yihui Xie

### 2024-11-06

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 R Markdown v1 only. If you use R Markdown v2, you should use the vignette engine `knitr::rmarkdown` instead of `knitr::knitr`.

## Package vignettes

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

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

## View vignettes

And R will load the knitr 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] 3.98959 0.01359 0.84722 6.17346 0.04204

    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')