Sintaxe

A sintaxe de Markdown é simples. Exponho abaixo as notações mais comuns da linguagem. Testem em seus documentos.

Objetivos de aprendizado

  • Aprender a utilizar cabeçalhos para divisões no texto;
  • Aplicar formatação de texto (negrito, itálico, listas);
  • Inserir e executar blocos de código;
  • Entender a diferença entre texto e código no documento;
  • Incluir tabelas e gráficos gerados pelo código R;
  • Incorporar elementos visuais adicionais, como imagens e links.

Formatação

Sintaxe Resultado
*itálico* é _itálico_
**negrito** é __negrito__
itálico é itálico negrito é negrito
***itálico e negrito***
itálico e negrito
Sobrescrito^2^ / Subescrito~2~
Sobrescrito2 / Subescrito2
~~Riscado~~
riscado
`verbatim`
verbatim
Traço --
Traço –
Travessão ---
Travessão —
Régua horizontal

***

Régua horizontal


Cabeçalho

Sintaxe Resultado
# Cabeçalho 1

Cabeçalho 1

## Cabeçalho 2

Cabeçalho 2

### Cabeçalho 3

Cabeçalho 3

#### Cab. 4

Cab. 4

##### Cab. 5
Cab. 5
###### Cab. 6
Cab. 6

Listas

Sintaxe Resultado
* Lista não ordenada
    + sub-item 1
    + sub-item 2
        - sub-sub-item 1
  • Lista não ordenada
    • sub-item 1
    • sub-item 2
      • sub-sub-item 1
*   item 2

    Item 2 continua - basta
inserir 4 espaços
  • item 2

    Item 2 continua - basta inserir 4 espaços

1. Lista ordenada
2. item 2
    i) sub-item 1
         A.  sub-sub-item 1
  1. Lista ordenada
  2. item 2
    1. sub-item 1
      1. sub-sub-item 1
(@)  Uma lista cuja numeração

continua após

(@)  uma interrupção
  1. Uma lista cuja numeração

continua após

  1. uma interrupção
termo
: definição
termo
definição

Expressões matematicas

Expressões matemáticas podem ser inserir utilizando um cifrão, $, antes e depois da expressão. Já equações matemáticas devem ser inseridas com um par de cifrões, $$, antes e depois da equação. Logo, temos a expressão $x = y $ que será compilada em:

x=y

Já a equação matemática $$math-equation$$ é compilada para

mathequation

Citação em blocos

Citações podem ser feitas em blocos por meio do acento circunflexo, >. Basta inserir o > no início de uma linha e, em seguida, inserir text.

> Bloco de citação

O comando acima seria compilado e se tornaria o exibido abaixo:

Bloco de citação

Outra opção é inserir o texto dentro de três crases:

Este texto será apresentado com um destaque visual.

Compilando o texto acima, teríamos:

Este texto será apresentado com um destaque visual.

Podemos também fazer uso de quatro espaços para destacar o texto:

    Com quatro espaços, eu destaco o texto também.

Compilando o texto acima, teríamos:

Com quatro espaços, eu destaco o texto também.

Quebra de linha para criar parágrafos

Podemos criar parágrafos com uma linha vazia entre sentenças:

Este é um parágrafo.
Este parágrafo é composto de algumas sentenças.
Se eu quiser "quebrar" o parágrafo, isto é, ter dois parágrafos bem separados visualmente, eu deixo uma linha vazia entre os parágrafos.

Aqui eu inicio outro parágrafo.
E posso continuar escrevendo normalmente.

Caso processado, este texto ficaria assim:

Este é um parágrafo. Este parágrafo é composto de algumas sentenças. Se eu quiser “quebrar” o parágrafo, isto é, ter dois parágrafos bem separados visualmente, eu deixo uma linha vazia entre os parágrafos.

Aqui eu inicio outro parágrafo. E posso continuar escrevendo normalmente.

Se você não quiser um novo parágrafo mas apenas quebrar a linha, você deve usar dois espaços em branco () ao fim de uma linha. Isso quebra a linha, e inicia a nova sentença na linha imediatamente inferior, porém sem adicionar um espaço considerável entre as linhas. Veja:

Este é um parágrafo.
Este parágrafo é composto de algumas sentenças.
Posso quebrar a linha utilizando dois espaços ao fim da linha.  
Desta maneira, esta linha que você lê neste momento está separada das linhas superiores, porém ainda em um mesmo bloco de texto.  

Compilando o trecho acima, temos:

Este é um parágrafo. Este parágrafo é composto de algumas sentenças. Posso quebrar a linha utilizando dois espaços ao fim da linha.
Desta maneira, esta linha que você lê neste momento está separada das linhas superiores, porém ainda em um mesmo bloco de texto.

Quebra de página

Um comando útil para inserir conteúdo em uma nova página é o comando \newpage, que quebra a página. Originalmente, ele funcionava apenas para produtos PDF, mas já há algum tempo, ele pode ser utilizado também em produtos DOCX.

Para utilizá-lo, basta inserir o comando onde você deseja que seja criada uma nova página a partir daquele ponto. Então, o conteúdo após esse comando iniciará na nova página. Vejam:

## Um cabeçalho qualquer


Aqui eu já escrevi bastante e penso que o próximo conteúdo deva aparecer em uma nova página.
Para isso, eu insiro o comando de *nova página* abaixo.  

\newpage

## Esse cabeçalho aparecerá em uma nova página

Já estando em uma nova página, podemos continuar a inserir mais conteúdo.  

Blocos de código

Para fazer um bloco de código, devemos inserir três crases (“`”) seguidas pelo nome da linguagem que vamos utilizar (e.g., R, Python, Julia etc) em letras minúsculas, colocando o nome entre chaves (“{}”).

Um código em R:

```{r}
print("Olá, como vai?")
```

Um código em Python:

```{python}
print("OI")
```

As linguagens em blocos de códigos são processadas pelo pacote knitr (, , ). Atualmente, as linguagens que têm suporte para serem utilizadas em blocos de código são:

 [1] "awk"       "bash"      "coffee"    "gawk"      "groovy"    "haskell"  
 [7] "lein"      "mysql"     "node"      "octave"    "perl"      "php"      
[13] "psql"      "Rscript"   "ruby"      "sas"       "scala"     "sed"      
[19] "sh"        "stata"     "zsh"       "asis"      "asy"       "block"    
[25] "block2"    "bslib"     "c"         "cat"       "cc"        "comment"  
[31] "css"       "ditaa"     "dot"       "embed"     "eviews"    "exec"     
[37] "fortran"   "fortran95" "go"        "highlight" "js"        "julia"    
[43] "python"    "R"         "Rcpp"      "sass"      "scss"      "sql"      
[49] "stan"      "targets"   "tikz"      "verbatim"  "ojs"       "mermaid"  

Para mais exemplos, veja a seção “Other Languages” do livro Rmarkdown Cookbook ().

Códigos R em linha (“inline codes”)

Códigos R em linha, isto é, pedaços de códigos mesclados diretamente ao texto, não inclusos em “code chuncks”, podem ser feitos utilizando a notação `{r} códigoVaiAqui`. Inserimos o pedaço de código após a letra `{r} códigoVaiAqui`, e antes da crase. O resultado será exposto como um texto normal, e não será distinto do texto circundante. Uma das implicações disso é permitir confiança na transmissão de informações se mantivermos uma base de dados atualizada.

Tomando o conjunto de dados iris como exemplo, podemos informar quantas linhas há neste conjunto de dados utilizando a notação:

`r nrow(iris)`

Ou então, podemos deixar escrito em nosso arquivo comandos específicos de cálculos de determinadas viaráveis para que os valores estejam sempre de acordo com nosso conjunto de dados. Isso é uma estratégia para nos poupar tempo em casos de repetitivos comandos feitos sempre que atualizamos nossos dados. Se deixamos o esqueleto pronto dos cálculos a serem realizados constantemente, não precisamos mais nos preocupar com isso. Vejam:

  • Há dados para `r length(unique(iris$Species))` espécies
  • Os dados possuem `r nrow(iris)` linhas e `r ncol(iris)` colunas.

Ao compilarmos este texto, teríamos o seguinte resultado:

+ Há dados para 3 espécies

+ Os dados possuem 150 linhas e 5 colunas.

Tabelas

Tabelas podem ser inclusas de diversas maneiras em documentos com Rmarkdown.

Inserção por meio de código Markdown

A maneira mais comum de incluir tabelas é usar código Markdown. Por exemplo, o código abaixo cria uma tabela:

| Var1 | Var2 | Nome | 
|---------|:-----|------:|
| 10      | 9   |  Joana |
| 15     | 7  |   João |
| 20       | 4    |  Jaci |

: Demonstração de sintaxe de tabela em *Markdown*

Neste caso, a barra reta “|” separa colunas e também valores de cada coluna. A utilização de três sinais de menos ao mínimo-” indica a separação entre os nomes de variáveis/colunas e os valores atribuídos a cada coluna/variável:

Demonstração de sintaxe de tabela em Markdown
Var1 Var2 Nome
10 9 Joana
15 7 João
20 4 Jaci

Mais exemplos

Exemplo 1:

| Cabeçalho 1 | Cabeçalho 2 |
|-------------|-------------|
| Linha 1 Col 1 | Linha 1 Col 2 |
| Linha 2 Col 1 | Linha 2 Col 2 |
Cabeçalho 1 Cabeçalho 2
Linha 1 Col 1 Linha 1 Col 2
Linha 2 Col 1 Linha 2 Col 2

Alinhamento de texto

Podemos alinhar o texto, contido em cada variável, para a esquerda, centro ou direita, por meio da utilização do sinal de dois pontos “:” à esquerda, em ambos os lados, ou à direita dos sinais de menos, em cada variável. Veja o exemplo abaixo:

Var1 Var2 Nome
10 9 Joana
15 7 João
20 4 Jaci

Nele alinhamos a variavel Var1 à esquerda, Var2 ao centro, e a variável Nome à direita.

Inserção via código em R

Outra maneira de criar tabelas é através da importação de arquivos por meio de códigos em R. Tomemos por exemplo os comandos necessários para importar uma tabela de extensão CSV e dados separados por tabulação (“\t”) contendo informação sopre municípios do Brasil: https://raw.githubusercontent.com/LABOTAM/IntroR/main/dados/municipiosbrasil.csv.

dad <- read.table("https://raw.githubusercontent.com/LABOTAM/IntroR/main/dados/municipiosbrasil.csv", sep = "\t", header = TRUE)
head(dad, 6)
  Country Province Regiao            Municipio Latitude Longitude
1  Brasil     Acre  Norte          Mâncio Lima   -7.614   -72.896
2  Brasil     Acre  Norte      Rodrigues Alves   -7.742   -72.647
3  Brasil     Acre  Norte      Cruzeiro do Sul   -7.631    -72.67
4  Brasil     Acre  Norte         Porto Walter   -8.269   -72.744
5  Brasil     Acre  Norte Marechal Thaumaturgo   -8.941   -72.792
6  Brasil     Acre  Norte               Jordão   -9.434   -71.884

Para deixar a tabela mais elegante visualmente, uma dica é utilizar a função knitr::kable():

knitr::kable(head(dad, 6))
Country Province Regiao Municipio Latitude Longitude
Brasil Acre Norte Mâncio Lima -7.614 -72.896
Brasil Acre Norte Rodrigues Alves -7.742 -72.647
Brasil Acre Norte Cruzeiro do Sul -7.631 -72.67
Brasil Acre Norte Porto Walter -8.269 -72.744
Brasil Acre Norte Marechal Thaumaturgo -8.941 -72.792
Brasil Acre Norte Jordão -9.434 -71.884

Figuras

A maneira mais simples de inserir uma figura é usando a notação abaixo:

![Legenda da figura](endereco-da-figura)

A figura pode estar gravada em seu computador, ou pode estar alojada na rede em algum sítio digital. O necessário é que o endereço esteja correto. Por exemplo, a figura “capa.png” está dentro de uma pasta “figuras/” dentro deste projeto. Vou colocá-la abaixo da seguinte maneira:

![Capa deste livro](figuras/capa.png)

Capa deste livro

As figuras inseridas podem ser de diversos formatos: jpeg, png, tiff etc. Porém, quanto menor o tamanho da figura, menor será o tempo de compilação do arquivo. É importante então se atentar para este detalhe.

Outra maneira de inserir figuras é por meio de funções dentro de blocos de código. Vamos incluir uma imagem usando a função knitr::include_graphics():

knitr::include_graphics("figuras/capa.png")


  1. As tabelas escritas em Markdown contendo código e sintaxe da linguagem foram abertamente inspiradas nesta página, que ensina sobre a sintaxe de Markdown no livro sobre o Quarto.↩︎