Esse post é um tutorial rápido de como você pode criar um livro usando o pacote {bookdown}. Eu uso esse pacote para escrever todos os meus grandes relatórios e até minha tese de mestrado. A filosofia dele é a mesma que a do markdown: o foco é o conteúdo; o formato fica pra depois.
Esse é um pacote maravilhoso, mas um pouco espinhudo, pois não é fácil lidar com vários formatos distintos. Para dominar o {bookdown}, recomendo que você leia o livro feito pelo Yihui Xie: https://bookdown.org/yihui/bookdown/. O Yihui é também o autor do {knitr}, {rmarkdown}, {pagedown}, e do excepcional {xaringan}. Os pacotes dele têm todos a mesma característica: são extremamente úteis, mas às vezes te mordem.
Nesse post, apresento um vídeo-tutorial faço apenas alguns comentários adicionais
Vídeo
Prometo que vou melhorar o áudio nos próximos tutoriais.
O que faz o que?
Para criar um livro com {bookdown}, você só precisa de dois componentes, descritos abaixo
- Um arquivo 
index.Rmdouindex.md, com o seguinte conteúdo: 
---
site: bookdown::bookdown_site
---
# 
- Rodar a operação
 
O primeiro componente diz que seu markdown deve ser compilado como um livro do {bookdown}. Isso substitui a função rmarkdown::default_site(), que é o padrão para desenvolver sites usando RMarkdown. Isso fica para outro post!
Já o segundo componente é o que compila o site de fato. O parâmetro output_format é o que controla a saída. Existem três opções principais de formatos no {bookdown}: gitbook (HTML), pdf_book (PDF) e gitbook (E-pub).
Outra forma mais enxuta, mas menos geral de obter o mesmo é utilizando a função
bookdown::render_book()no lugar dermarkdown::render_site(). Nesse caso, não é necessário adicionar a tagsite: bookdown::bookdown_siteno arquivoindex.Rmd/index.md.
E se eu quiser que meu site tenha vários formatos?
Você pode fazer isso trocando output_format por um vetor. No entanto, existem formas mais organizadas. Nesse caso, a recomendação é criar um arquivo _output.yml, contendo os outputs que você quer ter, por exemplo
bookdown::gitbook:
  caption: false
bookdown::pdf_book
Note que é possível adicionar parâmetros ao livro, que podem controlar o template que vamos utilizar, por exemplo.
Outra forma de fazer isso é diretamente no index.Rmd:
---
site: bookdown::bookdown_site
output:
  bookdown::gitbook:
    caption: false
  bookdown::pdf_book
---
# meu livro 
E se eu quiser quebrar meu livro em vários arquivos?
Sem problemas. Basta criar arquivos com uma ordem específica, como 01_introducao.Rmd, 02_introducao.Rmd, etc. Esses arquivos são agregados num grande Rmd antes de ser compilado.
Por enquanto é isso. Farei mais posts sobre markdown, pois é muito útil e divertido! Happy coding ;)