> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/overleaf-learn-latex-pt/base-de-conhecimento/166-writing-markdown-in-latex-documents.md).

# Escrever Markdown em documentos LaTeX

## Introdução

Para usar markdown em um documento LaTeX, você precisa carregar o [`markdown` pacote](https://www.ctan.org/pkg/markdown) no preâmbulo do seu documento:

```latex
\usepackage[settings]{markdown}
```

onde `[settings]` é um *opcional* conjunto de parâmetros usado para configurar ou ativar recursos específicos do pacote. Consulte o `markdown` pacote [documentação](https://anorien.csc.warwick.ac.uk/mirrors/CTAN/macros/generic/markdown/markdown.html) para uma [descrição dos parâmetros do pacote (opções)](https://anorien.csc.warwick.ac.uk/mirrors/CTAN/macros/generic/markdown/markdown.html#options).

Este artigo fará uma breve revisão de ambos *linha* markdown — escrito dentro do seu documento — e da importação de *external* markdown contido em um arquivo de texto.

* **Nota informativa**: Em geral, o uso de markdown dentro de um documento LaTeX deve ser tratado como uma opção complementar e conveniente para redigir alguns elementos do conteúdo do seu documento, e não como uma sintaxe alternativa para substituir completamente o próprio LaTeX.

## Usando arquivos markdown externos

Use o comando

```latex
\markdownInput{filename}
```

para incluir o arquivo markdown `filename`.

O exemplo a seguir insere um arquivo chamado `example.md`. Use o link abaixo das listagens de código para abri-las como um projeto Overleaf:

**`main.tex`**

```latex
\documentclass{article}
\title{Using the markdown package}
\usepackage[smartEllipses]{markdown}
\begin{document}

\markdownInput{example.md}

\end{document}
```

**`example.md`**

```latex
%% example.md

# Sou um arquivo markdown.

E posso fazer *ênfase*.
## Com subtítulos

> Citações em bloco são
> escritas assim.
>
> Elas podem abranger vários parágrafos,
> se quiser.

Use 3 hífens para um travessão. Use 2 hífens para
intervalos (por ex., "está tudo nos capítulos 12--14").
Três pontos ... serão convertidos em reticências
(desde que você inclua a opção smartEllipses
no preâmbulo). Unicode é suportado.
```

[Abra estes arquivos como um projeto Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name\[]=main.tex\&snip\[]=%5Cdocumentclass%7Barticle%7D%0A%5Ctitle%7BUsing+the+markdown+package%7D%0A%5Cusepackage%5BsmartEllipses%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5CmarkdownInput%7Bexample.md%7D%0A%0A%5Cend%7Bdocument%7D\&snip_name\[]=example.md\&snip\[]=%25%25+example.md%0A%0A%23+I%27m+a+markdown+file.%0A%0AAnd+I+can+do+%2Aemphasis%2A.%0A%23%23+With+sub-headers%0A%0A%3E+Block+quotes+are%0A%3E+written+like+so.%0A%3E%0A%3E+They+can+span+multiple+paragraphs%2C%0A%3E+if+you+like.%0A%0AUse+3+dashes+for+an+em-dash.+Use+2+dashes+for+%0Aranges+%28ex.%2C+%22it%27s+all+in+chapters+12--14%22%29.+%0AThree+dots+...+will+be+converted+to+an+ellipsis+%0A%28provided+you+include+the+smartEllipses+option+%0Ain+your+preamble%29.+Unicode+is+supported.\&main_document=main.tex)

Este exemplo produz a seguinte saída:

![Gráfico mostrando a saída do pacote markdown](/files/f903d8985afa67efbefc5dfb52139b96087809b8)

## Usando markdown embutido

Use a `markdown` ambiente:

```latex
\begin{markdown}
...seu markdown
vai aqui...
\end{markdown}
```

para escrever markdown embutido, como demonstrado pelo próximo exemplo:

```latex
\documentclass{article}
\usepackage[hashEnumerators,smartEllipses]{markdown}
\begin{document}

Usando markdown embutido:

\begin{markdown}
Um cabeçalho h1
============

Os parágrafos são separados por uma linha em branco.

2º parágrafo. *Itálico*, **negrito** e `monoespaçado`. Listas com itens
ficam assim:

* este
* aquele
* o outro

> Citações em bloco são
> escritas assim.
>
> Elas podem abranger vários parágrafos,
> se quiser.

Um cabeçalho h2
------------

Aqui está uma lista numerada (use a opção `hashEnumerators` se quiser usar cerquilhas):

#. primeiro item
#. segundo item
#. terceiro item

\end{markdown}
\end{document}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+markdown\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BhashEnumerators%2CsmartEllipses%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%0AUsing+inline+markdown%3A%0A%0A%5Cbegin%7Bmarkdown%7D%0AAn+h1+header%0A%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0AParagraphs+are+separated+by+a+blank+line.+%0A%0A2nd+paragraph.+%2AItalic%2A%2C+%2A%2Abold%2A%2A%2C+and+%60monospace%60.+Itemized+lists%0Alook+like%3A%0A%0A%2A+this+one%0A%2A+that+one%0A%2A+the+other+one%0A%0A%3E+Block+quotes+are%0A%3E+written+like+so.%0A%3E%0A%3E+They+can+span+multiple+paragraphs%2C%0A%3E+if+you+like.%0A%0AAn+h2+header%0A------------%0A%0AHere%27s+a+numbered+list+%28use+%60hashEnumerators%60+option+if+you+want+to+use+hashes%29%3A%0A%0A%23.+first+item%0A%23.+second+item%0A%23.+third+item%0A%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Exemplo de markdown embutido diagramado no Overleaf](/files/84573fe455a9c2eea27e1bf865ba972b1dc58ed4)

## Funcionalidades e opções do pacote markdown

Aqui exploraremos algumas das [funcionalidades e opções](https://anorien.csc.warwick.ac.uk/mirrors/CTAN/macros/generic/markdown/markdown.html) fornecidas pelo `markdown` pacote.

### Incluindo código em markdown

Há dois mecanismos para exibir trechos de código (blocos de código) dentro do markdown:

* indentando cada linha do bloco com pelo menos quatro espaços ou uma tabulação, ou
* usando os chamados [blocos de código delimitados](#using-fenced-code-blocks)

#### Usando indentação para exibir blocos de código

O exemplo a seguir usa 4, ou mais, caracteres de espaço no início de cada linha de código — algumas linhas usam 6, 8 ou 10 caracteres de espaço, dependendo do tamanho da indentação necessária:

```latex
\documentclass{article}
\usepackage{markdown}
\begin{document}
Aqui estão alguns trechos de código indentados por pelo menos 4 caracteres de espaço.
\vspace{6mm}

\begin{markdown}

Aqui está um fragmento de C:

    /* Deixe-me iterar ... */

    int i;
    for(i=0; i<10; i++)
    {
      faça-alguma-coisa(i)
    }

Aqui está um pouco de HTML:

    <html>
      <head>
        <title>Título da página</title>
      </head>
      <body>
        <h1>Este é um cabeçalho</h1>
          <p>Este é um parágrafo.</p>
      </body>
    </html>

\end{markdown}
\end{document}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+markdown+code+snippets\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0AHere+are+some+code+fragments+indented+by+at+least+4+space+characters.%0A%5Cvspace%7B6mm%7D%0A%0A%5Cbegin%7Bmarkdown%7D%0A%0AHere+is+a+fragment+of+C%3A%0A%0A++++%2F%2A+Let+me+iterate+...+%2A%2F%0A%0A++++int+i%3B%0A++++for%28i%3D0%3B+i%3C10%3B+i%2B%2B%29%0A++++%7B%0A++++++do-something%28i%29%0A++++%7D%0A%0AHere+is+some+HTML%3A%0A%0A++++%3Chtml%3E%0A++++++%3Chead%3E%0A++++++++%3Ctitle%3EPage+Title%3C%2Ftitle%3E%0A++++++%3C%2Fhead%3E%0A++++++%3Cbody%3E%0A++++++++%3Ch1%3EThis+is+a+Heading%3C%2Fh1%3E%0A++++++++++%3Cp%3EThis+is+a+paragraph.%3C%2Fp%3E%0A++++++%3C%2Fbody%3E%0A++++%3C%2Fhtml%3E%0A%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Exemplo de código diagramado via markdown](/files/a5f48e6a400e381974839775cd08c42c2c0afd1e)

#### Usando blocos de código delimitados

Um bloco de código delimitado é criado escrevendo-se ou

* três crases (` ``` `), ou
* três tios (`~~~`)

nas linhas antes e depois do bloco de código. Usando este método, você não precisa indentar nenhuma linha, mas precisa usar a opção `fencedCode` no preâmbulo:

```latex
\usepackage[fencedCode]{markdown}
```

Aqui está um exemplo criando blocos de código delimitados usando 3 crases (` ``` `):

````latex
\documentclass{article}
\usepackage[fencedCode]{markdown}
\begin{document}
\begin{markdown}

```
if (a > 3) {
    moveShip(5 * gravity, DOWN);
}
```

```
    <html>
      <head>
        <title>Título da página</title>
      </head>
      <body>
        <h1>Este é um cabeçalho</h1>
          <p>Este é um parágrafo.</p>
      </body>
    </html>
```
\end{markdown}
\end{document}
````

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+markdown+fenced+code+blocks\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BfencedCode%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bmarkdown%7D%0A%0A%60%60%60%0Aif+%28a+%3E+3%29+%7B%0A++++moveShip%285+%2A+gravity%2C+DOWN%29%3B%0A%7D%0A%60%60%60%0A%0A%60%60%60%0A++++%3Chtml%3E%0A++++++%3Chead%3E%0A++++++++%3Ctitle%3EPage+Title%3C%2Ftitle%3E%0A++++++%3C%2Fhead%3E%0A++++++%3Cbody%3E%0A++++++++%3Ch1%3EThis+is+a+Heading%3C%2Fh1%3E%0A++++++++++%3Cp%3EThis+is+a+paragraph.%3C%2Fp%3E%0A++++++%3C%2Fbody%3E%0A++++%3C%2Fhtml%3E%0A%60%60%60%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Usando blocos de código delimitados com o pacote markdown do LaTeX](/files/da1cf81661ba20ce342be16f15370819f5296293)

#### Realce de sintaxe

Blocos de código delimitados suportam realce de sintaxe ao ter o nome da linguagem escrito após o primeiro conjunto de crases (`` ` ``). Como exemplo, o bloco a seguir é identificado como Javascript escrevendo-se o primeiro conjunto de crases como ` ``` js `:

````latex
``` js
if (a > 3) {
    moveShip(5 * gravity, DOWN);
}
```
````

Para o LaTeX, o `minted` pacote pode ser usado para realce de sintaxe, como mostrado no próximo exemplo que contém algum Javascript (` ``` js `) e HTML (` ``` html `):

````latex
\documentclass{article}
\usepackage{minted}
\usepackage[fencedCode]{markdown}
\begin{document}
\begin{markdown}

``` js
if (a > 3) {
    moveShip(5 * gravity, DOWN);
}
```

``` html
    <html>
      <head>
        <title>Título da página</title>
      </head>
      <body>
        <h1>Este é um cabeçalho</h1>
          <p>Este é um parágrafo.</p>
      </body>
    </html>
```
\end{markdown}
\end{document}
````

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+markdown+fenced+code+blocks\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bminted%7D%0A%5Cusepackage%5BfencedCode%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bmarkdown%7D%0A%0A%60%60%60+js%0Aif+%28a+%3E+3%29+%7B%0A++++moveShip%285+%2A+gravity%2C+DOWN%29%3B%0A%7D%0A%60%60%60%0A%0A%60%60%60+html%0A++++%3Chtml%3E%0A++++++%3Chead%3E%0A++++++++%3Ctitle%3EPage+Title%3C%2Ftitle%3E%0A++++++%3C%2Fhead%3E%0A++++++%3Cbody%3E%0A++++++++%3Ch1%3EThis+is+a+Heading%3C%2Fh1%3E%0A++++++++++%3Cp%3EThis+is+a+paragraph.%3C%2Fp%3E%0A++++++%3C%2Fbody%3E%0A++++%3C%2Fhtml%3E%0A%60%60%60%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Realce de sintaxe com minted e markdown](/files/89134f80f51cbefa1d111d80f7b36341d48b8564)

### Listas

Exemplos anteriores [demonstram a criação de listas não ordenadas](#using-inline-markdown) em markdown usando o `*` caractere. Listas ordenadas podem ser criadas usando o `#` caractere se a `hashEnumerators` opção tiver sido especificada:

```latex
\usepackage[hashEnumerators]{markdown}
```

Também é possível criar listas aninhadas, como demonstrado no próximo exemplo:

```latex
\documentclass{article}
\usepackage[hashEnumerators]{markdown}
\begin{document}
\begin{markdown}
Aqui está uma lista numerada que contém uma lista aninhada:

#. Primeiro, obtenha estes ingredientes:

      * cenouras
      * aipo
      * lentilhas

#. Ferva um pouco de água.

#. Coloque tudo na panela e siga este algoritmo:

        encontre colher de pau
        destampe a panela
        mexa
        tampe a panela
        equilibre a colher de pau precariamente no cabo da panela
        espere 10 minutos
        vá para a primeira etapa (ou desligue o queimador quando terminar)

    Não esbarre na colher de pau ou ela cairá.
\end{markdown}
\end{document}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Creating+a+nested+list+in+markdown\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BhashEnumerators%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bmarkdown%7D%0AHere+is+a+numbered+list+that+contains+a+nested+list%3A%0A%0A%23.+First%2C+get+these+ingredients%3A%0A%0A++++++%2A+carrots%0A++++++%2A+celery%0A++++++%2A+lentils%0A%0A%23.+Boil+some+water.%0A%0A%23.+Dump+everything+in+the+pot+and+follow+this+algorithm%3A%0A%0A++++++++find+wooden+spoon%0A++++++++uncover+pot%0A++++++++stir%0A++++++++cover+pot%0A++++++++balance+wooden+spoon+precariously+on+pot+handle%0A++++++++wait+10+minutes%0A++++++++goto+first+step+%28or+shut+off+burner+when+done%29%0A%0A++++Do+not+bump+wooden+spoon+or+it+will+fall.%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Criando listas numeradas usando o pacote markdown do LaTeX](/files/823e8b358a352d609f39184c21328a622d3a12ab)

### Incluindo LaTeX dentro do markdown

Se você ativar a opção `hybrid` você pode misturar código LaTeX em Markdown!

```latex
\documentclass{article}
\usepackage[hybrid]{markdown}
\begin{document}

\begin{markdown}
Equações matemáticas em linha podem ser criadas assim: $\omega = d\phi / dt$.
A matemática em destaque pode ser escrita como:

\begin{equation}
I = \int \rho R^{2} dV
\end{equation}

\end{markdown}
\end{document}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+LaTeX+code+in+markdown\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bhybrid%5D%7Bmarkdown%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Bmarkdown%7D%0AInline+math+equations+can+be+created+like+this%3A+%24%5Comega+%3D+d%5Cphi+%2F+dt%24.+%0ADisplay+math+can+be+written+as%3A%0A%0A%5Cbegin%7Bequation%7D%0AI+%3D+%5Cint+%5Crho+R%5E%7B2%7D+dV%0A%5Cend%7Bequation%7D%0A%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Usando código LaTeX em markdown](/files/47f1cbb6812e95b72286b32743665f30a2669b17)

### Incluindo imagens

* **Nota**: O próximo exemplo usa um arquivo gráfico (`example-image.pdf`) fornecido pelo `mwe` pacote. Esses ficheiros gráficos são distribuídos pelo TeX Live e, portanto, armazenados nos servidores do Overleaf, tornando-os disponíveis como marcadores de posição de imagem, como no exemplo abaixo.

As imagens podem ser incluídas em markdown escrevendo marcação no seguinte formato:

```latex
![alt-text](nome-do-arquivo "legenda da imagem")
```

Esperamos que os nomes dos parâmetros `alt-text`, `nome-do-arquivo` e `"legenda da imagem"` descrevam o que fazem. Aqui está um exemplo para demonstrá-los:

```latex
\documentclass{article}
\usepackage[hybrid]{markdown}
% O pacote mwe fornece imagens de exemplo. Carregá-lo é
% não essencial, porque essas imagens estão no caminho de busca do LaTeX.
% Aqui, carregamo-lo por clareza neste exemplo.
\usepackage{mwe}
\begin{document}
\begin{markdown}
Este exemplo mostra como importar um arquivo gráfico. Aqui estamos usando uma
imagem de exemplo fornecida pelo pacote `mwe`.

% Use \setkeys{Gin} se precisar alterar o tamanho de exibição de uma imagem

\setkeys{Gin}{width=.5\linewidth}
![Este é um texto alternativo para descrever minha imagem.](example-image.jpg "Uma imagem de exemplo fornecida pelo pacote \texttt{mwe}.")
\end{markdown}
\end{document}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+images+in+markdown\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bhybrid%5D%7Bmarkdown%7D%0A%25+The+mwe+package+provides+example+images.+Loading+it+is%0A%25+not+essential+because+those+images+are+in+LaTeX%27s+search+path.+%0A%25+Here%2C+we+load+it+for+clarity+in+this+example.%0A%5Cusepackage%7Bmwe%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bmarkdown%7D%0AThis+example+shows+how+to+import+a+graphics+file.+Here+we+are+using+an%0Aexample+image+provided+by+the+%60mwe%60+package.%0A%0A%25+Use+%5Csetkeys%7BGin%7D+if+you+need+to+change+an+image%27s+display+size%0A%0A%5Csetkeys%7BGin%7D%7Bwidth%3D.5%5Clinewidth%7D%0A%21%5BThis+is+alt+text+to+describe+my+image.%5D%28example-image.jpg+%22An+example+image+provided+by+the+%5Ctexttt%7Bmwe%7D+package.%22%29%0A%5Cend%7Bmarkdown%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Mostrando como importar imagens em markdown](/files/6a9d2447f5a188187d42691c595e574b7d08c3cb)

#### Observação sobre a largura da imagem

Como a maioria dos pacotes, `markdown` carrega outros pacotes, incluindo [`keyval`](https://ctan.org/pkg/keyval?lang=en) e [`graphicx`](https://ctan.org/pkg/graphicx?lang=en), para fazer uso dos comandos e recursos que eles fornecem. Aqui, a largura da imagem é definida usando o `\setkeys` comando, que é fornecido por `keyvals`. `Gin` é uma "família" de chaves definida pelo `graphicx` pacote.

* **Nota**: Como um comando LaTeX, aqui `\setkeys`é usado *dentro* o `markdown` do ambiente, a `hybrid` opção do pacote markdown é necessária.

## Leitura adicional

O Overleaf publicou outros artigos sobre o uso do markdown:

* [Como escrever em Markdown no Overleaf](/latex/overleaf-learn-latex-pt/artigos-aprofundados/30-how-to-write-in-markdown-on-overleaf.md)
* [Markdown para LaTeX com estilo](/latex/overleaf-learn-latex-pt/artigos-aprofundados/32-markdown-into-latex-with-style.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/overleaf-learn-latex-pt/base-de-conhecimento/166-writing-markdown-in-latex-documents.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
