Quarto: Um Sistema de Publicação Técnica e Científica
Um tutorial sobre como utilizar o sistema de pubicação Quarto e a linguagem R usando o IDE RStudio.
1 Introdução
2 Criando um Arquivo Quarto com o RStudio
Como destacamos no tutorial sobre o RStudio é fundamental sempre utilizar um Projeto RStudio para organizar seus projetos de análise de dados nos quais você utiliza a linguagem R.
Assim, neste tutorial, assumimos que você já criou um projeto RStudio e que os arquivos do sistema quarto serão salvos e organizados nesse projeto já criado. Para detalhes sobre como criar um projeto Rstudio veja o tutorial específico .
Em Ciência de Dados, utilizamos o termo workflow orietando a projetos para denominar esta boa prática de extrema importância.
Como vimos no tutorial sobre o RStudio, há duas formas simples de criar um arquivo do sistema Quarto usando o este IDE:
- Clicando em
File -> New File -> Quarto Document
, conforme a Fig. 3.

- Uma opção mais rápida é clicar no ícone , localizado no canto superior esquerdo da interface do RStudio e, em seguida, clicar em
Quarto Document
, como na Fig. 4.

- Utilizando qualquer uma das opções anteriores, após clicar em
Quarto Document
, aparecerá a interface exibida na Fig. 5:

Você pode, mas não é usual, inserir o título e o autor do documento nesta interface, porque o fluxo usual é simplesmente clicar no formato desejado e, em seguida, clicar em
Create
.Neste exemplo, vamos utilizar a opção padrão que é o formato HTML. Assim, após clicar em
Create
, o RStudio irá criar, no painel Source, o arquivo exibido na Fig. 6.

- Agora, salve esse arquivo na subpasta
testes
da pastarelatorios
do projeto Rstudio que você criou ao estudar o tutorial sobre o RStudio. Utilize o nome01_teste.qmd
para este arquivo, este é apenas um nome sugerido, e você pode escolher outro nome, mas deve manter a extensão .qmd.
Agora que você já criou seu primeiro arquivo Quarto, vamos entender melhor sua estrutura e componentes na próxima seção (Seção 3).
3 Anatomia de um Arquivo Quarto
Um arquivo do sistema Quarto, que possui a extensão .qmd
, consiste essencialmente de três elementos:
Metadados
Texto (incluindo equações matemáticas escritas com Latex, se necessário.)
Células de Código
Nas próximas seções do tutorial, vamos entender esses elementos em detalhes.
3.1 Metadados
O arquivo mínimo gerado pelo RStudio, exibido na Fig. 6, contém apenas um cabeçalho, mais precisamente, contém um cabeçalho YAML simples (mais detalhes a seguir), o qual é demarcado por três traços (—) em cada extremidade.
O código acima constitui um exemplo do uso da linguagem de marcação YAML (de “Yet Another Markup Language”) para fornecer metadados aos documentos gerados com Quarto. A sintaxe de YAML usa pares chave-valor no formato key: value
.
Outros campos YAML comumente encontrados em cabeçalhos de arquivos quarto incluem metadados como author
, title
, date
, bem como opções de personalização como theme
, entre diversas outras.
De forma mais detalhada, os metadados do cabeçalho YAML consistem:
… de pares chave-valor (key-value),
… que podem aninhar,
… que ão exigentes quanto ao recuo,
… e são mantidos entre ---
.
---
format:
html:
toc: true
code-fold: true
---
3.2 Sintáxe YAML
---
title: "Título do Document"
author:
- Santos Dummont
- Albert Einstein
format:
html:
toc: true
abstract: |
Aqui vai o abstract.
Tem dois parágrafos.---
Definindo um único valor com
key: value
Definindo uma lista de valores:
key: - value1 - value2
indente 2 espaços para aninhar
Sequências de caracteres de várias linhas seguem
|
3.3 Atenção! YAML é Exigente com Indentação
Inválidos
---
format:html
---
---
format:
html
---
---
format:
html:
---
Válidos
format: html
format:
html
format:
html:
toc: true
3.4 Opções dos Cabeçalhos YAML
As opções que podem ser usadas nos cabeçalhos YAML de um arquivo quarto dependem do formato final do documento a ser produzido.
Nesta seção, são explicadas algumas das principais opções disponíveis para os formatos HTML e pdf, que são os principais formatos que utilizamos na disciplina Introdução à Ciência de Dados.
3.4.1 Algumas Opções Disponíveis para Arquivos HTML
Os arquivos HTML gerados pelo Quarto oferecem diversas opções de personalização. Aqui estão algumas das mais úteis:
Opção | Descrição | Exemplo de Uso |
---|---|---|
theme |
Define o tema visual do documento | theme: cosmo |
embed-resources |
Incorpora todos recursos no arquivo HTML | embed-resources: true |
toc |
Ativa o índice do documento | toc: true |
toc-depth |
Define a profundidade do índice | toc-depth: 3 |
toc-location |
Define a posição do índice | toc-location: left |
code-fold |
Permite recolher/expandir blocos de código | code-fold: true |
code-tools |
Adiciona ferramentas para copiar código | code-tools: true |
code-line-numbers |
Adiciona números às linhas de código | code-line-numbers: true |
Exemplo de uso no cabeçalho YAML:
format:
html:
theme: cosmo
embed-resources: true
toc: true
toc-depth: 3
toc-location: left
code-fold: true
code-tools: true
3.5 Algumas Opções Disponíveis para Arquivos PDF
O Quarto pode gerar documentos PDF de alta qualidade, usando o sistema Typst ou LaTeX como motor de renderização. Aqui estão algumas opções úteis para personalização de documentos PDF:
Opção | Descrição | Exemplo de Uso |
---|---|---|
papersize |
Define o tamanho do papel | papersize: a4 |
fontsize |
Define o tamanho da fonte | fontsize: 12pt |
linestretch |
Define o espaçamento entre linhas | linestretch: 1.5 |
linkcolor |
Define a cor dos links | linkcolor: "blue" |
lof |
Ativa lista de figuras | lof: true |
lot |
Ativa lista de tabelas | lot: true |
Exemplo de uso no cabeçalho YAML para Typst:
format:
typst:
papersize: a4
fontsize: 12pt
number-sections: true
linkcolor: "blue"
4 Textos
A parte textual dos documentos Quarto utiliza a linguagem de marcação Markdown, que é uma forma simplificada de estruturar textos. Com Markdown, você pode facilmente criar títulos, subtítulos, listas, textos em negrito ou itálico, links, e muito mais.
Como já desenvolvemos um tutorial completo sobre Markdown específico para elaboração de documentos no sistema Quarto, recomendo que você consulte esse material para aprender a formatar seus textos adequadamente.
Lembre-se que o Quarto também suporta equações matemáticas usando a sintaxe LaTeX, o que é particularmente útil para documentos técnicos e científicos. Exemplos de uso de equações matemáticas também estão disponíveis no tutorial de Markdown mencionado acima.
5 Células de Código (Code Chunks)
As células de código (ou code chunks) são blocos que permitem a inclusão e execução de código R diretamente no seu documento Quarto. Elas são essenciais para análises de dados reproduzíveis, pois integram o código com seus resultados e explicações textuais.
5.1 Criando uma Célula de Código
Você pode adicionar uma célula de código de três maneiras:
Usando o atalho de teclado:
Ctrl+Alt+I
(Windows/Linux) ouCmd+Option+I
(Mac).Clicando no ícone
“Insert a new code chunk” na barra superior de ferramentas do RStudio e selecionando “R”.Digitando manualmente os delimitadores de célula: ```
{r}
e `````.
5.2 Exemplo de uma Célula de Código Básica
```{r}
# Este é um exemplo de célula de código R
x <- 1:10
mean(x)
```
5.3 Opções de Célula de Código no Quarto
O Quarto usa um formato de YAML dentro das células de código, com cada opção precedida por #|
. Este formato é diferente do R Markdown e oferece maior clareza e flexibilidade:
```{r}
#| echo: true
#| warning: false
#| message: false
# Esta célula mostrará o código (echo: true),
# mas ocultará avisos (warning) e mensagens
library(dplyr)
mtcars %>%
group_by(cyl) %>%
summarise(
n = n(),
mpg_média = mean(mpg, na.rm = TRUE)
)
```
5.4 Opções Comuns para Células de Código no Quarto
Opção | Descrição |
---|---|
echo |
Controla se o código é exibido (true ) ou oculto (false ) |
eval |
Define se o código deve ser executado (true ) ou não (false ) |
warning |
Controla a exibição de avisos durante a execução |
message |
Controla a exibição de mensagens durante a execução |
error |
Define se erros devem ser exibidos (true ) ou parar a renderização (false ) |
fig-width |
Define a largura da figura de saída em polegadas |
fig-height |
Define a altura da figura de saída em polegadas |
fig-cap |
Adiciona uma legenda à figura resultante |
label |
Atribui um identificador único à célula, útil para referência cruzada |
5.5 Exemplo com Figura e Legenda
```{r}
#| label: fig-1
#| fig-cap: "Relação entre Consumo na Estrada e na Cidade por Cilindrada"
#| fig-width: 8
#| fig-height: 6
library(ggplot2)
ggplot(mpg, aes(x = hwy, y = cty, color = cyl)) +
geom_point(alpha = 0.5, size = 2) +
scale_color_viridis_c() +
theme_minimal() +
labs(
x = "Consumo na Estrada (mpg)",
y = "Consumo na Cidade (mpg)",
color = "Cilindrada"
)
```
5.6 Código Inline
Além das células de código, você também pode incluir código R diretamente no texto usando a sintaxe `r `
. Por exemplo, a média de 1 a 10 é `r mean(1:10)`
, que será renderizado como o valor calculado.
5.7 Ocultando Células de Código
Para um relatório mais formal, às vezes você pode querer mostrar apenas os resultados sem o código. Isso pode ser controlado globalmente no cabeçalho YAML com execute: echo: false
:
---
title: "Título do Relatório"
lang: pt-BR
author: Seu Nome
format:
html:
toc: true
number-sections: true
embed-resources: true
execute:
echo: false
message: false
warning: false
editor: source
---
Ou célula por célula:
```{r}
#| label: fig-2
#| echo: false
#| message: false
#| warning: false
#| fig-cap: "Gráfico de Dispersão entre Peso e Consumo"
# Este código não será exibido, apenas o resultado
plot(mtcars$mpg, mtcars$wt,
xlab = "Consumo (mpg)",
ylab = "Peso (1000 lbs)")
```
5.8 Referenciando Figuras e Tabelas
O Quarto permite referenciar facilmente figuras e tabelas usando o atributo label
. Por exemplo, a figura criada acima pode ser referenciada como @fig-2
em qualquer lugar do texto, e o Quarto automaticamente substituirá isso pelo número da figura.
6 Renderização
Considerando que você tenha criado o arquivo 01_teste.qmd
(e salvo esse arquivo na pasta apropriada do seu projeto RStudio), apague o cabeçalho mínimo desse arquivo criado pelo RStudio, em seguida, copie e cole o código do cabeçaho exibio abaixo no mesmo local:
---
title: "Olá, Quarto"
format: html
editor: source
---
Agora, renderize o arquivo 01_teste.qmd
clicando no botão Render, localizado na barra superior do painel
Source
do Rstudio, como mostra a Fig. 7.

A renderização do arquivo 01_teste.qmd
produz um arquivo html exibido na guia Viewer do RStudio, conforme a Fig. 8. Esse arquivo, como esperado, mostra apenas o título atribuído ao documento usando a chave: valor title: "Olá, Quarto"
.

Ao renderizar, o sistema Quarto gera um novo arquivo que contém texto selecionado, código e resultados do arquivo .qmd. O novo arquivo pode ser um documento HTML, PDF, MS Word, apresentação, site, livro, documento interativo ou outro formato.
7 Criando Relatórios Quarto em Diversos Formatos com o RStudio
Para que você possa começar a trabalhar com relatórios produzidos pelo sistema Quarto, nas subseções a seguir são fornecidos códigos dos cabeçalhos YAML que podem ser utilizados para produzir relatórios em diferentes formatos.
Esses exemplos são apenas uma referência inicial para você começar a trabalhar e a se aprofundar no uso do sistema Quarto para produzir relatórios acadêmicos ou corporativos.
7.1 Relatório no formato HTML
Para criar um relatório com o sistema Quarto no formato HTML, utilize o seguinte cabeçalho YAML:
---
title: "Título do Relatório"
lang: pt-BR
author: Seu Nome
date: today
date-format: "DD/MM/YYYY"
format:
html:
theme: cosmos
toc: true
number-sections: true
embed-resources: true
code-fold: true
fig-cap-location: bottom
tbl-cap-location: top
execute:
echo: true
message: false
warning: false
editor: source
---
A Tab. 1 contém explicações de cada um dos pares chave-valor usados no cabeçalho acima.
Chave | Valor no Exemplo | Explicação |
---|---|---|
title |
"Título do Relatório" |
Define o título principal que aparecerá no topo do documento HTML. |
lang |
pt-BR |
Especifica o idioma do documento como português brasileiro, afetando a hifenização, formatação de datas, separadores decimais e outros elementos dependentes do idioma regional. |
author |
Seu Nome |
Identifica o autor do documento, aparecendo normalmente logo abaixo do título. |
date |
today |
Configura a data do documento para a data atual quando o documento for renderizado. |
date-format |
"DD/MM/YYYY" |
Define o formato da data como dia/mês/ano (exemplo: 18/03/2025). |
format | Seção que configura o formato de saída | |
theme |
cosmos |
Define o tema visual do documento HTML, neste caso usando o tema “cosmos” que determina cores, fontes e estilos. |
toc |
true |
Ativa a tabela de conteúdo (índice), facilitando a navegação pelo documento. |
number-sections |
true |
Adiciona numeração automática às seções e subseções (1, 1.1, 1.2, 2, etc.). |
embed-resources |
true |
Cria um arquivo HTML único e independente com todos os recursos necessários incorporados (CSS, imagens, etc.). |
code-fold |
true |
Permite que blocos de código sejam recolhidos/expandidos pelo leitor, tornando o documento mais limpo. |
fig-cap-location |
bottom |
Posiciona as legendas das figuras abaixo das imagens. |
tbl-cap-location |
top |
Posiciona as legendas das tabelas acima das tabelas. |
execute | Seção que controla a execução de código | |
echo |
true |
Mostra o código fonte junto com seus resultados no documento final. |
message |
false |
Oculta mensagens geradas durante a execução do código. |
warning |
false |
Oculta avisos gerados durante a execução do código. |
editor |
source |
Especifica o modo de edição padrão como “source” (código fonte) ao abrir o documento no RStudio ou outro editor compatível. |
7.2 Relatório no formato pdf com Typst
Para criar um relatório com o sistema Quarto no formato pdf com o sistema Typst, utilize o seguinte cabeçalho YAML:
---
title: "Título do Relatório"
lang: pt-BR
author: "Seu Nome"
date: today
date-format: "DD/MM/YYYY"
format:
typst:
papersize: a4
number-sections: true
toc: false
fig-cap-location: bottom
tbl-cap-location: top
linkcolor: "blue"
execute:
echo: true
warning: false
message: false
---
Na Tab. 2, apresento apenas os parâmetros específicos do formato Typst ou aqueles com valores diferentes dos explicados anteriormente na tabela de parâmetros HTML. Parâmetros comuns como title
, lang
, author
, date
, date-format
, e as opções de execute
mantêm o mesmo significado em ambos os formatos.
Parâmetro | Valor no Exemplo | Explicação Didática |
---|---|---|
format: typst |
Indica que o documento será renderizado usando o sistema Typst, um sistema moderno de tipografia para produzir documentos PDF, alternativo ao LaTeX. | |
papersize |
a4 |
Define o tamanho do papel como A4 (210 × 297 mm), padrão internacional comum em documentos acadêmicos no Brasil. |
fontsize |
fontsize: 12pt |
Define o tamanho da fonte. |
number-sections |
true |
Adiciona numeração automática às seções e subseções do documento (1, 1.1, 1.2, 2, etc.). |
fig-cap-location |
bottom |
Posiciona as legendas das figuras abaixo das imagens. |
tbl-cap-location |
top |
Posiciona as legendas das tabelas acima das tabelas. |
linkcolor |
"blue" |
Define a cor dos hiperlinks no documento como azul, facilitando a identificação visual de links para o leitor. |
O sistema Typst é uma alternativa mais moderna e ágil ao LaTeX para produção de PDFs, sendo particularmente útil para documentos acadêmicos que exigem alta qualidade tipográfica. O formato Typst oferece um bom equilíbrio entre a simplicidade do HTML e o poder de formatação do LaTeX.
7.3 Relatório no formato docx
Para criar um relatório com o sistema Quarto no formato docx do MS Word, utilize o seguinte cabeçalho YAML:
---
title: "Título do Relatório"
lang: pt-BR
author: Seu Nome
date: today
date-format: "DD/MM/YYYY"
format:
docx:
number-sections: true
execute:
echo: true
message: false
warning: false
editor: source
---
Este cabeçalho YAML configura a produção de um documento no formato Microsoft Word (.docx). Todas as opções utilizadas já foram explicadas nas tabelas anteriores.
A única diferença é a especificação format: docx:
, que indica ao Quarto que o documento deve ser renderizado como um arquivo .docx. Este formato pode ser útil quando for necessário compartilhar documentos editáveis com pessoas que utilizam o Microsoft Office, embora não seja o formato mais recomendado para trabalhos acadêmicos devido às suas limitações de formatação consistente e controle tipográfico.
8 Atalhos de Teclado Essenciais para o Sistema Quarto
Dominar alguns atalhos de teclado básicos aumentará significativamente sua produtividade no RStudio, especialmente ao trabalhar com documentos Quarto.
Estes atalhos são particularmente úteis para o trabalho com arquivos Quarto (.qmd) e te ajudarão a desenvolver um fluxo de trabalho mais eficiente.
Windows/Linux | macOS | Função
Criação e Renderização:
Ctrl+Shift+K
|⌘+Shift+K
| Renderiza o documento Quarto ativoCtrl+Alt+I
|⌘+Option+I
| Insere uma nova célula de código R
Navegação em Documentos:
Ctrl+Alt+P
|⌘+Option+P
| Abre o painel de navegaçãoCtrl+.
|⌘+.
| Navega para seções/função/célula específicosCtrl+F
|⌘+F
| Busca texto no documento atual
Trabalho com Chunks de Código:
Ctrl+Enter
|⌘+Enter
| Executa a linha atual ou seleção na célulaCtrl+Shift+Enter
|⌘+Shift+Enter
| Executa a célula de código atual completaCtrl+Alt+C
|⌘+Option+C
| Executa todas as células anterioresCtrl+Alt+R
|⌘+Option+R
| Executa todas as células no documento
Edição:
Tab
|Tab
| Autocompleta comandos ou nomes de variáveisCtrl+Shift+C
|⌘+Shift+C
| Comenta/descomenta a linha ou seleçãoCtrl+Shift+/
|⌘+Shift+/
| Reflow comentário ou textoCtrl+Shift+M
|⌘+Shift+M
| Insere operador pipe do tidyverse (%>%
)Ctrl+Shift+.
|⌘+Shift+.
| Insere operador pipe nativo do R (|>
)Alt+-
|Option+-
| Insere operador de atribuição (<-
)
Ajuda e Visualização:
F1
|F1
| Mostra ajuda para função sob o cursorAlt+Shift+K
|Option+Shift+K
| Mostra lista completa de atalhos de teclado
9 Glossário de Termos
C
Células de Código (Code Chunks): Blocos de código em um documento Quarto que podem ser executados, gerando resultados que são incluídos no documento final.
Cabeçalho YAML: Seção no início de um documento Quarto, delimitada por três traços (—), onde são definidos metadados e opções de formatação para o documento.
Chave-valor (key-value): Formato de dados usado no YAML que associa um nome de propriedade (chave) a um conteúdo ou configuração específica (valor).
Código Inline: Código R incorporado diretamente no texto de um documento Quarto, indicado pela sintaxe `r `
, que é executado durante a renderização.
E
echo: Opção de célula de código que controla se o código fonte é exibido (true) ou ocultado (false) no documento final.
eval: Opção de célula de código que determina se o código deve ser executado (true) ou não (false) durante a renderização.
F
Formato de Saída: Tipo de documento final gerado pelo Quarto, como HTML, PDF, DOCX, apresentações, entre outros.
fig-cap: Opção de célula de código que adiciona uma legenda a uma figura gerada pelo código.
I
Indentação: Espaçamento consistente utilizado no YAML para indicar hierarquia e aninhamento de opções, crucial para o funcionamento correto dos metadados.
K
knitr: Pacote R responsável por executar o código R em documentos Quarto, transformando o documento .qmd em um arquivo markdown intermediário (.md).
L
Linguagem de Marcação: Sistema de anotações inseridas em um texto para definir como ele deve ser estruturado, formatado ou apresentado. Ao contrário das linguagens de programação que executam comandos, as linguagens de marcação utilizam tags ou comamdos para identificar elementos do documento (como títulos, parágrafos, listas) sem se preocupar com a lógica computacional. Exemplos incluem HTML (para páginas web), XML (para dados estruturados), LaTeX (para documentos científicos) e Markdown (usada no Quarto para formatação simplificada de texto).
M
Markdown: Linguagem de marcação leve usada para formatar textos nos documentos Quarto, permitindo cabeçalhos, listas, negrito, itálico, links, entre outros elementos.
Metadados: Informações sobre o documento (como título, autor, data, formato) definidas no cabeçalho YAML.
P
Pandoc: Ferramenta universal de conversão de documentos que o Quarto utiliza para transformar arquivos markdown em formatos finais como HTML, PDF e DOCX.
Publicação Técnica e Científica: Processo de criar e disseminar documentos com conteúdo acadêmico ou técnico, seguindo padrões estabelecidos de formatação e referenciação.
Q
QMD: Extensão de arquivo (.qmd) específica dos documentos Quarto, que contém texto em Markdown, código e metadados YAML.
Quarto: Sistema de publicação científica e técnica de código aberto que permite combinar texto narrativo, código, equações e resultados em um único documento reproduzível.
R
Referência Cruzada: Recurso que permite fazer referência a elementos como figuras, tabelas e seções em qualquer parte do documento usando identificadores únicos.
Render: Processo de transformar um documento Quarto (.qmd) em seu formato final (HTML, PDF, etc.), executando código e formatando o conteúdo conforme as especificações.
Reprodutibilidade: Princípio que permite que outros pesquisadores e profissionais possam replicar exatamente os mesmos resultados utilizando os mesmos dados e códigos. No contexto corporativo, garante a auditabilidade de análises, facilita a transferência de conhecimento entre equipes, permite verificação de resultados por diferentes stakeholders e assegura a continuidade de projetos mesmo com mudanças de pessoal.
T
TOC (Table of Contents): Sumário ou índice automático gerado pelo Quarto com base na estrutura de títulos e subtítulos do documento.
Typst: Sistema moderno de tipografia utilizado pelo Quarto como alternativa ao LaTeX para produzir documentos PDF com alta qualidade tipográfica.
W
warning: Opção de célula de código que controla se os avisos gerados durante a execução do código são exibidos (true) ou ocultados (false) no documento final.
Y
YAML (Yet Another Markup Language): Linguagem de serialização de dados legível por humanos usada para os metadados de documentos Quarto, caracterizada pelo formato de pares chave-valor e indentação significativa.