Chapter 1 Introduction

This book is a guide to authoring books and technical documents with R Markdown (Allaire, Xie, et al. 2017) and the R package bookdown (Xie 2017a). 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 2017b), 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 2017) 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, and Winston Chang. 2017. Rmarkdown: Dynamic Documents for R.

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

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

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

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