12.2 Project structure
Below shows the basic structure of a default bookdown project:
directory/ ├── index.Rmd ├── 01-intro.Rmd ├── 02-literature.Rmd ├── 03-method.Rmd ├── 04-application.Rmd ├── 05-summary.Rmd ├── 06-references.Rmd ├── _bookdown.yml ├── _output.yml ├── book.bib ├── preamble.tex ├── README.md└── style.css
As a summary of these files:
index.Rmd: This is the only Rmd document to contain a YAML frontmatter as described within Chapter 2, and is the first book chapter.
Rmd files: A typical bookdown book contains multiple chapters, and each chapter lives in one separate Rmd file.
_bookdown.yml: A configuration file for bookdown.
_output.yml: It specifies the formatting of the HTML, LaTeX/PDF, and e-books.
style.css: They can be used to adjust the appearance and styles of the book output document(s). Knowledge of LaTeX and/or CSS is required.
These files are explained in greater detail in the following subsections.
12.2.1 Index file
index.Rmd file contains the first chapter and the YAML metadata, e.g.,
--- title: "A Minimal Book Example" author: "Yihui Xie" date: "`r Sys.Date()`" site: bookdown::bookdown_site documentclass: book bibliography: [book.bib, packages.bib] biblio-style: apalike link-citations: yes description: "This is a minimal example of using the bookdown package to write a book." ---
12.2.2 Rmd files
By default, all Rmd files are merged with the
index.Rmd to render the book. The Rmd files must start immediately with the chapter title using the first-level heading, e.g.,
# Chapter Title. Note that YAML metadata should not be included in these Rmd files, as it is inherited from the
# Introduction This chapter is an overview of the methods thatwe propose to solve an **important problem**.
# Literature Here is a review of existing methods.
By default, bookdown merges all Rmd files by the order of filenames, e.g.,
01-intro.Rmd will appear before
02-literature.Rmd. Filenames that start with an underscore
_ are skipped.
_bookdown.yml file allows you to specify optional settings to build the book. For example, you may want to override the order in which files are merged by including the field
rmd_files: ["index.Rmd", "02-literature.Rmd", "01-intro.Rmd"]
_output.yml file is used to specify the book output formats (see Section 12.4). Here is a brief example:
bookdown::gitbook: lib_dir: assets split_by: section config: toolbar: position: static bookdown::pdf_book: keep_tex: yes bookdown::html_book: css: toc.css