Chapter 1 Introduction

This book is a guide to authoring books and technical documents with R Markdown (Allaire, Xie, McPherson, et al. 2020) and the R package bookdown (Xie 2020a). It focuses on the features specific to writing books, long-form articles, or reports, such as:

  • how to typeset equations, theorems, figures and tables, and cross-reference them;
  • how to generate multiple output formats such as HTML, PDF, and e-books for a single book;
  • how to customize the book templates and style different elements in a book;
  • editor support (in particular, the RStudio IDE); and
  • how to publish a book.

It is not a comprehensive introduction to R Markdown or the knitr package (Xie 2020b), on top of which bookdown was built. To learn more about R Markdown, please check out the online documentation For knitr, please see Xie (2015). You do not have to be an expert of the R language (R Core Team 2020) to read this book, but you are expected to have some basic knowledge about R Markdown and knitr. For beginners, you may get started with the cheatsheets at The appendix of this book contains brief introductions to these software packages. To be able to customize the book templates and themes, you should be familiar with LaTeX, HTML and CSS.


Allaire, JJ, Yihui Xie, Jonathan McPherson, Javier Luraschi, Kevin Ushey, Aron Atkins, Hadley Wickham, Joe Cheng, Winston Chang, and Richard Iannone. 2020. Rmarkdown: Dynamic Documents for R.

R Core Team. 2020. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing.

Xie, Yihui. 2015. Dynamic Documents with R and Knitr. 2nd ed. Boca Raton, Florida: Chapman; Hall/CRC.

Xie, Yihui. 2020a. Bookdown: Authoring Books and Technical Documents with R Markdown.

Xie, Yihui. 2020b. Knitr: A General-Purpose Package for Dynamic Report Generation in R.