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.Rmd
ouindex.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_site
no 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 ;)