flowchart LR id1(Documento Quarto) <--> id2(Cabeçalho .yml) id1(Documento Quarto) <--> id3(Texto) id1(Documento Quarto) <--> id4(Códigos) style id1 fill:#B0DAFF,stroke:#333,stroke-width:3px style id2 fill:#FEFF86,stroke:#333,stroke-width:3px style id3 fill:#FEFF86,stroke:#333,stroke-width:3px style id4 fill:#FEFF86,stroke:#333,stroke-width:3px
Sobre o Quarto
Quarto é um novo sistema de publicação científica e técnica de código aberto. O objetivo desse sistema é fazer o processo de criação de documentos e colaboração muito melhor. Quarto capacita o usuário a tecer um documento com conteúdo de texto e código executável junto.
Segundo Quarto, o sistema pode ser definido como:
“Quarto é uma versão multilíngue da próxima geração do R Markdown (do RStudio) e inclui dezenas de novos recursos, ao mesmo tempo em que é capaz de renderizar a maioria dos arquivos
.Rmd
existentes sem modificação.”
O Quarto tem a vantagem de unificar e estender o ecossistema do R Markdown, portanto, ele serve bem tanto para quem já faz uso diário do R Markdown como para não usuários do R Markdown.
A redação de textos continua sendo a linguagem de marcação Markdown e também com o uso de chunks para a edição de códigos. Portanto, o Quarto pode ser utilizado por pesquisadores, desenvolvedores e educadores.
Como funciona o sistema Quarto
O Quarto funciona em diferentes linguagens de programação como o R, Python, Julia e Observable e os arquivos podem ser compartilhados por colaboradores que utilizam diferentes linguagens.
O Quarto produz diferentes arquivos como PDF, HTML, Word, sites, livros, apresentações, artigos científicos e blogs.
Um documento Quarto chamado de .qmd
é convertido através de um sistema chamado Pandoc que utiliza o documento de texto Markdown com códigos .qmd e transformaele em documentos PDF, Word, HTML, etc. Veja o esquema de ilustração abaixo.
Vantagens em relação ao R Markdown
O R Markdown conta com diversos pacotes que podem ser baixados no R para executar diveras funções, entre eles, blogdown, rticles, xaringan, distill, knitr, bookdown, flexdashboard e rsconnect. A vantagem do Quarto em relação a isso, é que ele unifica a funcionalidade de todos esses pacotes em uma interface de linha de comando sem precisar fazer o download desses pacotes.
O Quarto conta com uma implementação atrativa de output como:
Tabsets e callouts
Code-folding
Sintax highlights
Sintaxe informativa de erros
Suporte para outras linguagens
Chunks organizados
O Quarto permite fazer a mudança de formatos (por exemplo, de PDF para HTML) facilmente. No YAML do arquivo, podemos subsituir e trocar o output de interesse sem modificar o conteúdo de nosso documento.
Opções de configuração para todo o documento podem ser definidas no próprio YAML através da função execute
. Essa é mais uma vantagem em relação ao R Markdown em que é preciso definir um código mais complexo no início do documento.
O site Quarto Pub torna o processo de publicação online de arquivos HTML muito mais fácil apenas usando o comando quarto publish quarto-pub
no Terminal do RStudio.
Estrutura de um documento em Quarto
A estrutura geral dos documentos em Quarto são três: cabeçalho .yml, texto e código.
Cabeçalho
.yml
: cabeçalho com as informações do tipo de documento (PDF, HTML, Word, etc.), autoria, título, subtítulo, data, e formatações como espaçamento, arquivos de bibliografia, entre outros.Texto: usado com a sintaxe Markdown;
Códigos: códigos executáveis que são digitados dentro de Chunks e multilíngue, pois podem ser usados em linguagem Python, R, Julia, e outros.
Criação de websites
Com o Quarto você pode criar e publicar sites de forma muito rápida e fácil. Para isso você pode seguir essas etapas:
Clique em File na aba de ferramentas do RStudio;
Clique em New Project e New Directory;
Clique em Quarto Website.
Após isso, você indicará o diretório do computador em que irá hospedar o seu projeto. No projeto você encontrará dois arquivos .qmd e um arquivo .yml
. Nos arquivos .qmd você adicionará os conteúdos do seu site e no arquivo .yml
você adicionará as configurações do seu site como apresentado na figura abaixo:
:
project-dir: _output
output
: true
toc-sections: true
number: references.bib
bibliography
:
format:
html: styles.css
css-math-method: katex
html:
pdf: report
documentclass-left: 30mm
margin-right: 30mm margin
Nesse arquivo .yml
você também encontra essas principais estruturas de configuração:
Project
: indicação do tipo (type
) de projeto, no caso, website;Website
: Configurações do site, como título (title
), abas (navbar
), conteúdo presente em cada abahref
(arquivos .qmd), localização das abas no lado esquerdo (left
) ou direito, etc;Format
: tipo de arquivo (HTML), o tema (theme
) para estética do site, a indicação do arquivocss
, entre outros estilos;Lang
: língua do website (português, inglês, espanhol, etc.).
Veja esse outro exemplo de um cabeçalho YAML que contém diversos tipos de configurações:
Exemplo de cabeçalho YAML
---
: "Meu primeiro relatório" # -----> Título
title: "Exemplo: Relatório em Quarto" # -----> Subtítulo
subtitle: "Ariane Hayana" # -----> Autoria
author: "2023-02-08" # -----> Data de publicação
date-format: short # -----> Formato de data curto: dd/mm/aaaa
date: pt # -----> Linguagem: português
lang:
format:
html-fold: true # -----> code-fold: `true` para "ocultar" o bloco de códigos
code:
theme: [pulse,custom.scss] # Tema modo claro
light: [cyborg,custom.scss] # Tema modo escuro
dark-block-banner: true # -----> Estilo de banner no topo do documento
title: references.bib # -----> Referências do documento
bibliography---
Detalhes sobre as configurações do cabeçalho .yml abaixo:
date-format
: formato curto de data. Existem diversos formatos possíveis que podem ser consultados em Quarto.org;lang
: identifica o idioma principal do documento. Outras idiomas podem ser o espanhol (lang: es
), o inglês (lang: en
) e francês (lang: fr
), por exemplo;code-fold
: quando igual atrue
, o bloco de códigos é ocultado, podendo ser consultado ao clicar na palavra “Código”;theme: light ou dark
: tema utilizado em nosso documento. Podemos customizar utilizando um arquivo.scss
;title-block-banner: true
: se igual atrue
, esta configuração insere um bloco de título no estilo de banner no topo do documento;bibliography
: referências utilizadas no documento. Trata-se de um arquivo.bib
.
Diagrama explicativo
O diagrama abaixo mostra o processo de criação de websites com as etapas iniciais.
flowchart LR A(File) --> B(New File) B --> C(New Project) C --> D(New Directory) D --> F(Quarto Website)
Os arquivos presentes na criação dos websites são o .yml
e .qmd
. Esses belos diagramas foram criados com a linguagem Mermaid inserida no Quarto e é feito dentro de um chunk.
flowchart LR id(Quarto Website) --> id1(Arquivo .yml) id1(Arquivo .yml) <--> id2(Project) id1(Arquivo .yml) <--> id3(Website) id1(Arquivo .yml) <--> id4(Format) style id fill:#F9E2AF style id1 fill:#f9f,stroke:#333,stroke-width:4px style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#080808,stroke-dasharray: 5 5 style id3 fill:#bbf,stroke:#f66,stroke-width:2px,color:#080808,stroke-dasharray: 5 5 style id4 fill:#bbf,stroke:#f66,stroke-width:2px,color:#080808,stroke-dasharray: 5 5
flowchart LR id(Quarto Website) --> id2(Arquivo .qmd) id2(Arquivo .qmd) <--> id3(index.qmd) id2(Arquivo .qmd) <--> id4(hello.qmd) style id fill:#F9E2AF style id2 fill:#f9f,stroke:#333,stroke-width:4px style id3 fill:#bbf,stroke:#f66,stroke-width:2px,color:#080808,stroke-dasharray: 5 5 style id4 fill:#bbf,stroke:#f66,stroke-width:2px,color:#080808,stroke-dasharray: 5 5
Algumas dicas especiais do Quarto
No cabeçalho YAML é possível adicionar o argumento
code-link: true
. Esse argumento permite que os leitores tenham acesso a links dos sites com informações sobre os códigos. Por exemplo, no códigoggplot
, o leitor poderá clicar nele e acessar o site com informações do pacote ggplot2. Essa funcionalidade pode servir como uma importante ferramenta de ensino.No formato de apresentações reaveals.js podemos adicionar o argumento
chalkboard: true
no cabeçalho YAML e obter ferramentas de ensino como quadro-negro e expansão de partes dos slides durante a apresentação.Citação de referências de pacotes do R.
library(car)
library(ggplot2)
::write_bib(c("car","ggplot2"), "packages.bib")
knitr
## Um novo arquivo packages.bib aparecerá na pasta do diretório com as referências.
Encontrar caminhos de pastas com
here
. Mesmo sem está no diretório da pasta, podemos executar os códigos usando ohere
.#install.packages("here") ::here() here::here("cat.png") here
Organização de chunks com #|, onde cada argumento de configuração fica um abaixo do outro e não ao lado e separado por vírgula como no R Markdown.
# Exemplo: # #| echo: true # #| out.width: "80%" # #| fig.align: "center" # #| fig.cap: "Um simpático gatinho." ::include_graphics("cat.png") knitr
Para fazer a mudança de chunks do R Markdown para chunks com #|.
::convert_chunk_header(input = "C:/Users/jeann/Documents/Quarto_R/introducao_quarto/introducao_quarto_markdown.qmd", type knitr= "multiline")
Adicionar ícones ao texto com o Font Awesome Extension.
— Instalação no terminal do RStudio: quarto install extension quarto-ext/fontawesome
Visite o link para adicionar exemplos de ícones como esse:
Referências
10 dicas para programar melhor em RMarkdown/Quarto