3  Módulo 2 | Quarto

Introdução ao html em quarto

Autor
Afiliação

A. Peralta-Santos

Escola Nacional de Saúde Pública

Data de Publicação

15 de setembro de 2024

3.1 O que é o Quarto

Quarto é um formato de script que permite a criação de documentos, apresentações e relatórios dinâmicos, interativos e reprodutíveis a partir de código.

Foi projetado para trabalhar com diversas linguagens de programação, como R, Python, Julia. O Quarto estende as capacidades do R Markdown, permitindo que os usuários integrem análises e visualizações de dados diretamente em seus documentos, com o suporte adicional para a criação de sites e livros.

A ferramenta visa facilitar a comunicação de resultados científicos, análises de dados e conteúdo educativo, de maneira mais eficaz e acessível.

Podem consultar mais informações no website do quarto.

3.1.1 O que é o YAML ?

No contexto do Quarto (e R Markdown), um arquivo YAML é usado no início de um documento para definir várias configurações do documento, como título, autor, data, tipo de saída (HTML, PDF, Word, etc.), parâmetros para análises dinâmicas, entre outros. A sintaxe do YAML é desenhada para ser clara e intuitiva, facilitando a configuração do documento e a especificação de metadados. Um cabeçalho YAML é delimitado por três traços (—) em cada extremo no início do script.

3.1.1.1 Exemplo de YAML

Figura 3.1: Exemplo de YAML

Neste exemplo na Figura 3.1, o documento é configurado com um título, autor, data e será gerado como um documento HTML com uma tabela de conteúdos flutuante. A estrutura e as opções dentro do YAML podem variar significativamente dependendo das necessidades específicas do documento e das funcionalidades suportadas pela ferramenta de autoria utilizada.

A função “render”, como na Figura 3.2, refere-se ao processo de transformação de um documento fonte (escrito, por exemplo, em Markdown, junto com código em R, Python, ou outra linguagem suportada) num documento de saída formatado, como um HTML, PDF, ou apresentação de slides. Este processo envolve a execução do código contido no documento, a inclusão dos resultados dessa execução (como visualizações de dados, tabelas, ou texto gerado dinamicamente) no documento final, e a aplicação de formatação e estilos especificados.

Figura 3.2: Render no YAML

3.1.2 Execução do código

Existem uma grande variedade de opções disponíveis para personalizar a saída de código nos documentos. Todas essas opções podem ser especificadas no YAML e aplicam-se a todo o documento (Figura 3.3) ou em cada chunk de codigo (Figura 3.4).

As opções disponíveis para personalizar a saída incluem:

Opção Descrição
eval Avalia o bloco de código (se false, apenas ecoa o código na saída).
echo Inclui o código fonte na saída.
output Inclui os resultados da execução do código na saída (true, false, ou asis para indicar que a saída é markdown bruto e não deve ter nenhum markdown padrão do Quarto).
warning Inclui avisos na saída.
error Inclui erros na saída (note que isso implica que erros na execução do código não interromperão o processamento do documento).
include Uma opção geral para prevenir qualquer saída (código ou resultados) de ser incluída (por exemplo, include: false suprime toda a saída do resultados ou código).
Figura 3.3: Exemplo da configuração da excecução no YAML

Podemos especificar opções especificas para cada bloco ou chunk de codigo, para isso podemos usar o |# no início para especificar algo que é só aplicavel para aquele bloco.

Figura 3.4: Exemplo da configuração da excecução no chunk

3.1.3 Formato do documento

No YAML podemos definir o formato de saída do documento com a opção format: como visível na Figura 3.5

html: Gera um documento HTML. É ideal para web e suporta elementos interativos, como gráficos dinâmicos.

pdf: Cria um documento PDF, útil para publicações científicas, relatórios formais e qualquer conteúdo que exija um layout fixo.

docx: Produz um documento do Microsoft Word, conveniente para colaborações onde os colaboradores preferem usar processadores de texto padrão.

Figura 3.5: Formatos de saída dos documentos

3.2 Elementos de formatação de Quarto

É possível formatar os nossos documentos Quarto de forma simples. Aqui estão alguns conceitos básicos , focando em títulos, texto em negrito e itálico:

3.2.1 Títulos

Os títulos no Quarto são criados usando o símbolo # antes do texto do título. O número de símbolos # indica o nível do título, com # sendo o nível mais alto (título principal) e ###### o nível mais baixo (título de sexto nível).

3.2.2 Negrito

Para tornar um texto em negrito no Quarto, deve envolver o texto com dois asteriscos ** ou dois underlines __. Ambos os métodos produzem o mesmo resultado. Por exemplo:

3.2.3 Itálico

Para formatar um texto em itálico, você deve envolver o texto com um asterisco * ou um underline _. Assim como no caso do negrito, ambos os métodos são equivalentes.

3.2.4 Negrito e Itálico

Se desejar combinar negrito e itálico em um único texto, você pode usar três asteriscos *** ou três underlines ___ ao redor do texto. Por exemplo:

Exemplos:

Este é o quarto curso de R

Nulla mattis diam vitae bibendum consequat. Etiam vitae eros tristique, porta sapien a, aliquet mauris. Praesent ultricies mi nulla, et dignissim nulla mattis at. Fusce rhoncus leo quis odio euismod, hendrerit facilisis risus tincidunt. Aenean at lectus justo. Cras fringilla lacus nisl, ac convallis odio tincidunt vel. Integer vel egestas nisi. Curabitur vitae imperdiet justo.

3.2.5 Outras formatações

3.2.5.1 Citação

”In God we trust. All others must bring data.” W. Edwards Deming.

3.2.5.2 Criar listas

Sem ordem

  • item 1
  • item 2
  • item 3

Com ordem

  1. item 1
  2. item 2
  3. item 3

3.2.5.3 Notas de Rodapé

Os estudantes de Data Science for healthcare são os melhores. 12

3.2.6 Criar um quadro

As quadros em quarto podem ser definidas de várias formas mas são divididas entre cabeçalho e conteúdo por um linebreak que é definido pelo caracter “-”. As colunas são separadas por “|” pelo menos no centro podendo ser omitidos na primeira e úttima posição. O RStudio por default assume logo a formatação pedida no formato visual.

Em que o default é “-” mas com as opções de alinhamento semelhantes aos processadores de texto: (este alinhamento é definido por coluna) - “:—-” Alinhamento à esquerda - “—-:” Alinhamento à direita - “:—-:” Alinhamento ao centro

Tabela 3.1: Tipos de hospitais e estadia média
Tipo Número Estadia Média
Hospitais 5000 10
Cuidados de Saúde Primários 20000 1
Cuidados de Longa Duração 2000 100

Exemplo de tabela com referência Tabela 3.1

A definição do espaçamento das colunas pode ser definido no Quarto em 3 posições:

  1. No YMAL - com o parâmetro tbl-colwidths;

  2. Em código que define a tabela; EX:Tabela “: Isto é um quadro {tbl-colwidths=”[75,15,10]“}”;

  3. Pelo número relativo de caracteres de “-”.

Tabela 3.2: 5.ª Edição
dia doentes
1 150
2 160

Mais uma vez podemos fazer referência à tabela Tabela 3.2

3.4 Imagens

É possível adicionar hiperlinks com texto figure 1 , como por exemplo na ?fig-lisboa.

Podemos adicionar o url da imagem que queremos mostrar, como na Figura 3.6.

Figura 3.6: Escola Nacional de Saúde Pública

Podemos definir a formatação das imagens e realizar referências cruzadas.

(a) European Map
(b) Portugal
Figura 3.7: Mapas da Europa e Portugal

Veja Figura 3.7 para exemplos. Em particular, Figura 3.7 (b) ou Figura 3.7 (a).

3.5 Flowcharts

Mermaid é uma ferramenta popular que permite a criação de diagramas e fluxogramas diretamente no Quarto através de uma sintaxe simples. Pode geralmente incorporar Mermaid em documentos Quarto usando blocos de código HTML ou integrando através de plugins ou extensões específicas, dependendo do seu ambiente de desenvolvimento.

flowchart TD

  A[Population] --> B(Study population)

  B --> C{Salt substitute}

  C --> D[Exposed]

  C --> E[Not exposed]

flowchart TD

  A[Population] --> B(Study population)

  B --> C{Salt substitute}

  C --> D[Exposed]

  C --> E[Not exposed]

3.6 Tabset

Os tabsets no Quarto são uma funcionalidade útil para organizar conteúdo em abas dentro de um documento HTML, permitindo aos leitores alternar entre diferentes seções de conteúdo sem a necessidade de rolar pela página. Isso é especialmente útil para apresentar diferentes análises, visualizações de dados ou subseções de informações de maneira compacta e organizada. O uso de tabsets pode tornar os documentos mais interativos e acessíveis, melhorando a experiência do usuário.

Para criar tabsets em documentos Quarto, você utiliza a sintaxe especial no cabeçalho das seções que deseja agrupar em abas. Isso é feito adicionando uma opção de metadados no cabeçalho da seção que especifica que as seções devem ser tratadas como abas.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus neque ex, vehicula dictum risus fermentum, feugiat faucibus neque. Etiam purus quam, lacinia vel porta in, malesuada ac nisl. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae

Logotipo do curso

3.7 Equações

No Quarto pode incluir equações matemáticas em seus documentos utilizando a sintaxe do LaTeX. As equações podem ser inseridas tanto no formato inline (dentro de um parágrafo) quanto em bloco (como uma equação destacada no texto).

3.7.1 Equações Inline

Para escrever uma equação inline, ou seja, uma equação que aparece dentro de um parágrafo ou texto, você usa o símbolo do dólar $ para envolver a equação. Por exemplo: \(Y=ax+2\)

3.7.2 Equações em Bloco

Se você quiser que a equação seja exibida em seu próprio parágrafo, destacada do texto ao redor para maior ênfase, você pode usar dois símbolos de dólar $$ antes e depois da equação Equação 3.1.

\[ E(log(Y_t)) = \beta_0 + \beta_{1-11} \sum_{m=1}^{m=12} MONTH_t + \beta_{12} TIME + \beta_{13} INT_t + \beta_{14} TIME*INT_t + log(POP_t) + \epsilon_t \tag{3.1}\]

3.8 Anotações ao Código

As anotações ao código no Quarto permitem que os autores adicionem explicações ou comentários específicos a partes do código dentro de um documento, melhorando significativamente a legibilidade e a compreensão do código. Essas anotações são particularmente úteis em documentos educativos ou tutoriais, onde explicar o raciocínio por trás de um trecho de código ou destacar certas partes do código pode ajudar os leitores a entender melhor o material.

# O resultado de x será mostrado abaixo
1a <- 2
2b <- 2
3x <- a+b
4x
1
Definir a,
2
Definir b,
3
Definir x como a soma de a mais b.
4
Mostrar x ao utilizador
[1] 4

3.9 Codigo inline

O código inline no Quarto permite incorporar o resultado de expressões de código diretamente no texto de um documento. Isso é particularmente útil para inserir valores dinâmicos que resultam de cálculos ou funções dentro do texto, garantindo que o documento reflita os resultados mais recentes cada vez que é renderizado.

Essa funcionalidade é amplamente usada em relatórios de análise de dados, documentos científicos, ou qualquer outro tipo de documento onde a integração de resultados de código diretamente no fluxo do texto é necessária para melhorar a clareza ou a precisão do conteúdo apresentado.

Para incluir código “inline” em um documento Quarto, você utiliza a sintaxe de acentos graves (backticks) com a letra r logo no início, seguida pela expressão de código que deseja executar.

# Z e a media de idades
media_idade  <- 43
y <- 10*2 
a <- 50  
b <- 12
c <- 8 

d <- a+b+c 

O resultado de X é 4 dias.

O número total de doente é 20.

O número de B é 12.

O número de cirurgias desta semana é 70.

A média de idades e 43.

Vantagens do Código “Inline”

Atualização Automática: Quando os dados ou as análises mudam, o texto que inclui código “inline” é automaticamente atualizado para refletir os novos resultados após a re-renderização do documento.

Precisão: Elimina a necessidade de atualizar manualmente os números ou resultados no texto, reduzindo o risco de erros ou discrepâncias.

Integração de Dados: Facilita a narrativa baseada em dados, permitindo uma integração fluida de resultados de análise diretamente no texto.

3.9.0.1 Inserir videos/conteúdo web

Como o Quarto funciona com suporte a múltiplas linguagens é possível colocar vários tipos de conteúdo.

Desde vídeos a iframe de HTMl permitindo embutir dentro do documento sites web.

Atenção

A leitura em iframe é limitada no Firefox por segurança.

3.10 Criar Anotações

Existem 4 formas de fazer anotações em R:

  1. Notas “{.callout-note}”
Nota

Os dados estão atualizados até ao dia 2024-09-15

  1. Avisos “{.callout-warning}”
Aviso

Não foi possível confirmar dados de 2024-09-15

  1. Importante “{.callout-caution}”
Cuidado

Os dados estão atualizados até ao dia 2024-09-15

É possível melhorar a aparência destas anotações adicionando títulos:

“{.callout-note title=”Nota sobre dados”}”

Nota sobre dados

Os dados estão atualizados até ao dia 2024-09-15

Também é possível remover o ícone e tornar a nota menos proeminente.

“{.callout-note icon=false apperance=”mininal”}”

Nota sobre dados

Os dados estão atualizados até ao dia 2024-09-15

3.11 Criar referências

Criar referências em documentos Quarto permite que você gerencie citações e bibliografias de forma eficiente, utilizando uma abordagem semelhante à encontrada em outras plataformas de composição de documentos científicos, como LaTeX. No Quarto, as referências são geralmente gerenciadas através de arquivos bibliográficos externos (como arquivos .bib em formato BibTeX) ou diretamente dentro do documento usando uma sintaxe específica. Aqui estão os passos básicos para criar referências em documentos Quarto:

  1. Criar um Arquivo BibTeX

Crie um arquivo .bib contendo todas as suas referências. Cada entrada em um arquivo BibTeX representa uma referência e tem um tipo específico (como @article, @book , etc.) e uma série de campos (como author, title, year, etc.) que fornecem detalhes sobre a referência.

  1. Referenciar o Arquivo BibTeX no Documento Quarto

No cabeçalho YAML do seu documento Quarto, adicione uma referência ao seu arquivo .bib usando a chave bibliography.

  1. Citar Referências no Texto

Utilize a sintaxe de citação para referenciar uma obra no seu texto. No Quarto, isso geralmente é feito com colchetes e o identificador da referência do BibTeX.

Exemplo de bibliografia na Data Science Wickham, Çetinkaya-Rundel, e Grolemund (2023), Knuth (1984), Guo e Chen (2023) .

  1. Gerar a Bibliografia

Quando você renderiza seu documento, o Quarto automaticamente processa as citações e gera uma bibliografia no final do documento, formatada de acordo com o estilo de citação especificado no cabeçalho YAML (usando a chave csl para o arquivo de estilo de citação, se necessário).

3.11.1 Referências

Guo, Chonghui, and Jingfeng Chen. 2023. “Big Data Analytics in Healthcare.” In Knowledge Technology and Systems: Toward Establishing Knowledge Systems Science, 27–70. Springer.
Knuth, Donald E. 1984. “Literate Programming.” Comput. J. 27 (2): 97–111. https://doi.org/10.1093/comjnl/27.2.97.
Wickham, Hadley. 2024. “R in Production.” In. New York, USA: 2024 New York R Conference.
Wickham, Hadley, Mine Çetinkaya-Rundel, and Garrett Grolemund. 2023. R for Data Science. " O’Reilly Media, Inc.".

  1. Isto é uma nota de rodapé.↩︎

  2. Readers Digest↩︎