> 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/nocoes-basicas-de-latex/04-lists.md).

# Listas

## Três formas de inserir listas no Overleaf

O Overleaf fornece 3 formas de criar listas usando LaTeX:

1. Use **Inserir lista com marcadores** (![Image of the menu icon for insert a bulleted list in Overleaf](/files/b3238065fc49b7d9e41280f36a5b3819aafed4d8)) ou **Inserir lista numerada** (![Image of the menu icon for insert a numbered list in Overleaf](/files/d17b2016ae8fa6dfbf3bb239bcdb55bf0c15ca67)) na barra de ferramentas do editor para inserir listas em **Editor Visual** ou **Editor de Código**.
2. [Cole uma lista formatada em **Editor Visual**](/latex/overleaf-learn-latex-pt/base-de-conhecimento/075-how-to-paste-formatted-content-into-overleaf.md#pasteformattedlist).
3. Escreva o seu próprio código LaTeX usando **Editor de Código**.

As opções 1 e 2 foram concebidas para gerar automaticamente o código LaTeX necessário para compor listas. No entanto, para quem quiser escrever o seu próprio código LaTeX, a opção 3 pode ser a escolha preferida. Oferece a maior flexibilidade e é o foco principal deste artigo.

## Introdução

Este artigo fornece uma introdução à composição tipográfica e à personalização de vários tipos de listas em LaTeX:

* o `itemize` ambiente para criar uma lista com marcadores (não ordenada)
* o `enumerate` ambiente para criar uma lista numerada (ordenada)
* o `descrição` ambiente para criar uma lista de descrições

A composição tipográfica de listas é um tema vasto porque as listas em LaTeX são *extremamente* configuráveis, permitindo criar uma enorme variedade de tipos e estruturas de listas. Vamos analisar e demonstrar alguns métodos que pode usar para [configurar e personalizar as suas listas](#customizing-lists).

## Exemplos de listas básicas

### O ambiente itemize para listas com marcadores (não ordenadas)

As listas não ordenadas (com marcadores) são produzidas pelo `itemize` ambiente, em que cada entrada da lista começa usando o `\item` comando, que também gera o símbolo de marcador.

```latex
As listas são fáceis de criar:
\begin{itemize}
  \item As entradas da lista começam com o comando \verb|\item|.
  \item As entradas individuais são indicadas com um ponto preto, o chamado marcador.
  \item O texto nas entradas pode ter qualquer comprimento.
\end{itemize}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+unordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0ALists+are+easy+to+create%3A%0A%5Cbegin%7Bitemize%7D%0A++%5Citem+List+entries+start+with+the+%5Cverb%7C%5Citem%7C+command.%0A++%5Citem+Individual+entries+are+indicated+with+a+black+dot%2C+a+so-called+bullet.%0A++%5Citem+The+text+in+the+entries+may+be+of+any+length.%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![List1bOLV2.png](/files/b18653c726f32ef2c8840fd5142c190ebdb8ddd0)

### O ambiente enumerate para listas numeradas (ordenadas)

As listas numeradas (ordenadas) têm a mesma sintaxe, mas usam o `enumerate` ambiente: cada entrada deve ser precedida pela sequência de controlo `\item`, que irá gerar automaticamente números para identificar o item. Esses números começam em 1 com cada utilização do `enumerate` ambiente — note que este comportamento de numeração predefinido do LaTeX pode ser alterado/controlado através do [`enumitem` pacote](https://ctan.org/pkg/enumitem).

```latex
As listas numeradas (ordenadas) são fáceis de criar:
\begin{enumerate}
  \item Os itens são numerados automaticamente.
  \item Os números começam em 1 com cada utilização do ambiente \texttt{enumerate}.
  \item Outra entrada na lista
\end{enumerate}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+ordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0ANumbered+%28ordered%29+lists+are+easy+to+create%3A%0A%5Cbegin%7Benumerate%7D%0A++%5Citem+Items+are+numbered+automatically.%0A++%5Citem+The+numbers+start+at+1+with+each+use+of+the+%5Ctexttt%7Benumerate%7D+environment.%0A++%5Citem+Another+entry+in+the+list%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![List2OLV2.png](/files/2b961d6e2ae6243bb408893d9306c3a9d02c00fc)

### O ambiente description

O exemplo seguinte demonstra os `descrição` ambiente. O rótulo (opcional) de cada entrada é colocado entre parênteses retos após o `\item` comando:

```latex
\item[texto do rótulo] O texto da sua descrição vai aqui...
```

Também usamos o `blindtext` pacote para gerar algum texto inglês fictício na terceira entrada. Para obter inglês, precisamos usar o `babel` pacote com a opção de idioma `[english]`:

```latex
\usepackage[english]{babel}
```

Aqui está o exemplo:

```latex
\documentclass{article}
\usepackage[english]{babel} % Para obter texto em inglês com o pacote blindtext
\usepackage{blindtext}
\begin{document}

\begin{description}
   \item Esta é uma entrada \textit{sem} rótulo.
   \item[Algo curto] Uma descrição curta numa linha.
   \item[Algo longo] Uma descrição muito mais longa. \blindtext[1]
\end{description}
\end{document}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+description+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Benglish%5D%7Bbabel%7D+%25+To+obtain+English+text+with+the+blindtext+package%0A%5Cusepackage%7Bblindtext%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Bdescription%7D%0A+++%5Citem+This+is+an+entry+%5Ctextit%7Bwithout%7D+a+label.%0A+++%5Citem%5BSomething+short%5D+A+short+one-line+description.%0A+++%5Citem%5BSomething+long%5D+A+much+longer+description.+%5Cblindtext%5B1%5D%0A%5Cend%7Bdescription%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Descriptionlist2.png](/files/b7b93251235bebbfbf75699b7b527bc73c5b19b2)

## Alterar o rótulo de entradas individuais

Como mostrado no `descrição` exemplo do ambiente, o `\item` comando recebe um parâmetro opcional, entre parênteses retos. Pode usar esta funcionalidade dentro de `itemize` e `enumerate` ambientes para alterar o rótulo predefinido de entradas individuais na sua lista:

```latex
\item[texto do rótulo] O texto da sua entrada vai aqui...
```

O `texto do rótulo` será usado para produzir o rótulo desta entrada.

```latex
Altere os rótulos usando \verb|\item[texto do rótulo]| num ambiente \texttt{itemize}
\begin{itemize}
  \item Este é o meu primeiro ponto
  \item Outro ponto que quero destacar
  \item[!] Um ponto para exclamarmos algo!
  \item[$\blacksquare$] Faça o ponto de forma justa e clara.
  \item[NOTE] Esta entrada não tem marcador
  \item[] Um rótulo em branco?
\end{itemize}

\vspace{10pt}

Altere os rótulos usando \verb|\item[texto do rótulo]| num ambiente \texttt{enumerate}
\begin{enumerate}
  \item Este é o meu primeiro ponto
  \item Outro ponto que quero destacar
  \item[!] Um ponto para exclamarmos algo!
  \item[$\blacksquare$] Faça o ponto de forma justa e clara.
  \item[NOTE] Esta entrada não tem marcador
  \item[] Um rótulo em branco?
\end{enumerate}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Changing+list+labels\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamssymb%7D%25+to+access+%24%5Cblacksquare%24%0A%5Cbegin%7Bdocument%7D%0AChange+the+labels+using+%5Cverb%7C%5Citem%5Blabel+text%5D%7C+in+an+%5Ctexttt%7Bitemize%7D+environment%0A%5Cbegin%7Bitemize%7D%0A++%5Citem+This+is+my+first+point%0A++%5Citem+Another+point+I+want+to+make+%0A++%5Citem%5B%21%5D+A+point+to+exclaim+something%21%0A++%5Citem%5B%24%5Cblacksquare%24%5D+Make+the+point+fair+and+square.%0A++%5Citem%5BNOTE%5D+This+entry+has+no+bullet%0A++%5Citem%5B%5D+A+blank+label%3F%0A%5Cend%7Bitemize%7D%0A%0A%5Cvspace%7B10pt%7D%0A%0AChange+the+labels+using+%5Cverb%7C%5Citem%5Blabel+text%5D%7C+in+an+%5Ctexttt%7Benumerate%7D+environment%0A%5Cbegin%7Benumerate%7D%0A++%5Citem+This+is+my+first+point%0A++%5Citem+Another+point+I+want+to+make+%0A++%5Citem%5B%21%5D+A+point+to+exclaim+something%21%0A++%5Citem%5B%24%5Cblacksquare%24%5D+Make+the+point+fair+and+square.%0A++%5Citem%5BNOTE%5D+This+entry+has+no+bullet%0A++%5Citem%5B%5D+A+blank+label%3F%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![ChangeBullets.png](/files/be4b32e3982399e026be8c47d3c74403bdb662a6)

## Listas aninhadas

No LaTeX, pode inserir uma lista dentro de outra lista. Os tipos de lista acima podem ser incluídos uns dentro dos outros, misturados ou do mesmo tipo, até uma profundidade de 4 níveis.

```latex
\begin{enumerate}
   \item Os rótulos consistem em números sequenciais
   \begin{itemize}
     \item As entradas individuais são indicadas com um ponto preto, o chamado marcador
     \item O texto nas entradas pode ter qualquer comprimento
     \begin{description}
     \item[Note:] Gostaria de descrever algo aqui
     \item[Caveat!] E dar um aviso aqui
     \end{description}
   \end{itemize}
   \item Os números começam em 1 com cada utilização do ambiente \texttt{enumerate}
\end{enumerate}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+nested+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Benumerate%7D%0A+++%5Citem+The+labels+consists+of+sequential+numbers%0A+++%5Cbegin%7Bitemize%7D%0A+++++%5Citem+The+individual+entries+are+indicated+with+a+black+dot%2C+a+so-called+bullet%0A+++++%5Citem+The+text+in+the+entries+may+be+of+any+length%0A+++++%5Cbegin%7Bdescription%7D%0A+++++%5Citem%5BNote%3A%5D+I+would+like+to+describe+something+here%0A+++++%5Citem%5BCaveat%21%5D+And+give+a+warning+here%0A+++++%5Cend%7Bdescription%7D%0A+++%5Cend%7Bitemize%7D%0A+++%5Citem+The+numbers+starts+at+1+with+each+use+of+the+%5Ctexttt%7Benumerate%7D+environment%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![List3bOLV2.png](/files/9efeb5ae9cd71d723100068563018c1d1dee6d04)

### Listas aninhadas: estilo dos rótulos

O estilo do rótulo das entradas de listas aninhadas muda de acordo com a sua profundidade na lista. Para listas aninhadas `itemize` o tipo de marcador muda; para `enumerate` listas, o formato dos números muda com o aumento da profundidade da entrada. Ambos estão limitados a uma profundidade de 4 níveis.

#### Listas enumerate aninhadas: formato dos números

```latex
\begin{enumerate}
   \item Item de primeiro nível
   \item Item de primeiro nível
   \begin{enumerate}
     \item Item de segundo nível
     \item Item de segundo nível
     \begin{enumerate}
       \item Item de terceiro nível
       \item Item de terceiro nível
       \begin{enumerate}
         \item Item de quarto nível
         \item Item de quarto nível
       \end{enumerate}
     \end{enumerate}
   \end{enumerate}
 \end{enumerate}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+nested+ordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Benumerate%7D%0A+++%5Citem+First+level+item%0A+++%5Citem+First+level+item%0A+++%5Cbegin%7Benumerate%7D%0A+++++%5Citem+Second+level+item%0A+++++%5Citem+Second+level+item%0A+++++%5Cbegin%7Benumerate%7D%0A+++++++%5Citem+Third+level+item%0A+++++++%5Citem+Third+level+item%0A+++++++%5Cbegin%7Benumerate%7D%0A+++++++++%5Citem+Fourth+level+item%0A+++++++++%5Citem+Fourth+level+item%0A+++++++%5Cend%7Benumerate%7D%0A+++++%5Cend%7Benumerate%7D%0A+++%5Cend%7Benumerate%7D%0A+%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![List4OLV2.png](/files/9c199be61ee134a5159adc14c2739c7aae77c9ba)

#### Listas itemize aninhadas: estilo dos marcadores

O estilo do marcador muda consoante a profundidade das listas aninhadas:

```latex
\begin{itemize}
   \item Item de primeiro nível
   \item Item de primeiro nível
   \begin{itemize}
     \item Item de segundo nível
     \item Item de segundo nível
     \begin{itemize}
       \item Item de terceiro nível
       \item Item de terceiro nível
       \begin{itemize}
         \item Item de quarto nível
         \item Item de quarto nível
       \end{itemize}
     \end{itemize}
   \end{itemize}
 \end{itemize}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Basic+nested+ordered+list+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bitemize%7D%0A+++%5Citem+First+level+item%0A+++%5Citem+First+level+item%0A+++%5Cbegin%7Bitemize%7D%0A+++++%5Citem+Second+level+item%0A+++++%5Citem+Second+level+item%0A+++++%5Cbegin%7Bitemize%7D%0A+++++++%5Citem+Third+level+item%0A+++++++%5Citem+Third+level+item%0A+++++++%5Cbegin%7Bitemize%7D%0A+++++++++%5Citem+Fourth+level+item%0A+++++++++%5Citem+Fourth+level+item%0A+++++++%5Cend%7Bitemize%7D%0A+++++%5Cend%7Bitemize%7D%0A+++%5Cend%7Bitemize%7D%0A+%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![List5OLV2.png](/files/e02bc9d76572b46d7c699ae7172b5c1939d8a06e)

## Personalizar listas

As listas do LaTeX são *muito* configuráveis, oferecendo bastante margem para criar muitos tipos diferentes de listas personalizadas. Pode fazer modificações diretas aos tipos de lista padrão do LaTeX ou, *de preferência*, usar o muito versátil [pacote enumitem](https://ctan.org/pkg/enumitem) para o fazer por si.

O CTAN aloja vários [pacotes relacionados com listas](https://ctan.org/topic/list) que poderá valer a pena investigar se tiver requisitos específicos de personalização. Além disso, o tex.stackexchange fornece uma riqueza de [perguntas relacionadas com listas](https://tex.stackexchange.com/questions/tagged/lists) com respostas que fornecem perspetivas úteis e ótimos exemplos!

Começaremos com alguns exemplos que modificam os rótulos das listas e depois passaremos à personalização dos esquemas das listas.

### Personalizar listas: alterar rótulos

Primeiro, mostramos como alterar a rotulagem das listas sem usar o [pacote enumitem](https://ctan.org/pkg/enumitem).

#### Comandos padrão de geração de rótulos

As listas personalizadas podem ser produzidas usando o [enumitem](https://ctan.org/pkg/enumitem) pacote ou a modificação direta das listas padrão. Aqui, daremos um resumo de alguns comandos padrão do LaTeX, variáveis de contador e parâmetros de lista dos quais poderá precisar de ter conhecimento.

A tabela seguinte mostra os comandos do LaTeX usados para geração de rótulos em cada nível dos `itemize` e `enumerate` ambientes de lista:

|           |                                    |                                  |
| --------- | ---------------------------------- | -------------------------------- |
| **Nível** | **`enumerate`** comandos de rótulo | **`itemize`** comandos de rótulo |
| Nível 1   | `\labelenumi`                      | `\labelitemi`                    |
| Nível 2   | `\labelenumii`                     | `\labelitemii`                   |
| Nível 3   | `\labelenumiii`                    | `\labelitemiii`                  |
| Nível 4   | `\labelenumiv`                     | `\labelitemiv`                   |

#### Variáveis de contador para enumerate

O `enumerate` ambiente de lista também usa quatro *contador* variáveis que acompanham o valor atual do rótulo em cada nível:

|           |                                      |
| --------- | ------------------------------------ |
| **Nível** | **`enumerate`** variável de contador |
| Nível 1   | `enumi`                              |
| Nível 2   | `enumii`                             |
| Nível 3   | `enumiii`                            |
| Nível 4   | `enumiv`                             |

#### Exemplos: personalizar rótulos de listas enumerate

Pode configurar a rotulagem padrão do LaTeX usando `\renewcommand` para redefinir os comandos geradores de rótulos e, para o `enumerate` ambiente, também pode usar a variável de contador apropriada.

Aqui estão alguns exemplos que fazem isso sem usar o `enumitem` pacote.

**Exemplo prático**

```latex
\documentclass{article}
\begin{document}
\renewcommand{\labelenumii}{\arabic{enumi}.\arabic{enumii}}
\renewcommand{\labelenumiii}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}}
\renewcommand{\labelenumiv}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.\arabic{enumiv}}

\begin{enumerate}
\item Um
\item Dois
\item Três
\begin{enumerate}
    \item Três ponto um
    \begin{enumerate}
    \item Três ponto um, ponto um
        \begin{enumerate}
        \item Três ponto um, ponto um, ponto um
        \item Três ponto um, ponto um, ponto dois
        \end{enumerate}
    \end{enumerate}
\end{enumerate}
\item Quatro
\item Cinco
\end{enumerate}

\end{document}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Configuring+list+layout\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Crenewcommand%7B%5Clabelenumii%7D%7B%5Carabic%7Benumi%7D.%5Carabic%7Benumii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiii%7D%7B%5Carabic%7Benumi%7D.%5Carabic%7Benumii%7D.%5Carabic%7Benumiii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiv%7D%7B%5Carabic%7Benumi%7D.%5Carabic%7Benumii%7D.%5Carabic%7Benumiii%7D.%5Carabic%7Benumiv%7D%7D%0A%0A%5Cbegin%7Benumerate%7D%0A%5Citem+One%0A%5Citem+Two%0A%5Citem+Three%0A%5Cbegin%7Benumerate%7D%0A++++%5Citem+Three+point+one%0A++++%5Cbegin%7Benumerate%7D%0A++++%5Citem+Three+point+one%2C+point+one%0A++++++++%5Cbegin%7Benumerate%7D%0A++++++++%5Citem+Three+point+one%2C+point+one%2C+point+one%0A++++++++%5Citem+Three+point+one%2C+point+one%2C+point+two%0A++++++++%5Cend%7Benumerate%7D%0A++++%5Cend%7Benumerate%7D%0A%5Cend%7Benumerate%7D%0A%5Citem+Four%0A%5Citem+Five%0A%5Cend%7Benumerate%7D%0A%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![List9OLV2.png](/files/40df6200cafc3a97ec7b9f0b7014a55b4c855fff)

**Imprimir variáveis de contador**

No exemplo anterior, o comando `\arabic` foi usado para compor tipograficamente o valor atual de vários *variáveis de contador*. Note que “numerais arábicos”, e o uso do comando `\arabic`, refere-se aos dígitos de 0 a 9: veja este [artigo sobre numerais arábicos na Wikipédia](https://en.wikipedia.org/wiki/Arabic_numerals) para mais contexto.

Em geral, um *variável de contador* pode ser impresso em vários formatos usando um dos 5 comandos seguintes:

* `\arabic{*counter variable*}`
* `\roman{*counter variable*}`
* `\Roman{*counter variable*}`
* `\Alph{*counter variable*}`
* `\alph{*counter variable*}`

Por exemplo:

```latex
\documentclass{article}
\begin{document}
\begin{verbatim}
\newcounter{foo}
\setcounter{foo}{5}
\end{verbatim}
\newcounter{foo}
\setcounter{foo}{5}

\begin{itemize}
\item \verb|\arabic{foo}| produz \arabic{foo}
\item \verb|\roman{foo}| produz \roman{foo}
\item \verb|\Roman{foo}| produz \Roman{foo}
\item \verb|\Alph{foo}| produz \Alph{foo}
\item \verb|\alph{foo}| produz \alph{foo}
\end{itemize}

\end{document}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Configuring+list+layout\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bverbatim%7D%0A%5Cnewcounter%7Bfoo%7D%0A%5Csetcounter%7Bfoo%7D%7B5%7D++++%0A%5Cend%7Bverbatim%7D%0A%5Cnewcounter%7Bfoo%7D%0A%5Csetcounter%7Bfoo%7D%7B5%7D+%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+%5Cverb%7C%5Carabic%7Bfoo%7D%7C+produces+%5Carabic%7Bfoo%7D%0A%5Citem+%5Cverb%7C%5Croman%7Bfoo%7D%7C+produces+%5Croman%7Bfoo%7D+%0A%5Citem+%5Cverb%7C%5CRoman%7Bfoo%7D%7C+produces+%5CRoman%7Bfoo%7D%0A%5Citem+%5Cverb%7C%5CAlph%7Bfoo%7D%7C+produces+%5CAlph%7Bfoo%7D%0A%5Citem+%5Cverb%7C%5Calph%7Bfoo%7D%7C+produces+%5Calph%7Bfoo%7D%0A%5Cend%7Bitemize%7D%0A%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![List8OLV2.png](/files/13f2bb33bf829cbe79b7f32f9e84d65dc2640892)

**Exemplo não prático (divertido)**

Este exemplo compõe emojis usando uma fonte OpenType a cores, por isso vai *só funcionar em LuaLaTeX*. Veja o artigo do Overleaf [Uma visão geral das tecnologias que suportam o uso de fontes emoji a cores em LaTeX](/latex/overleaf-learn-latex-pt/artigos-aprofundados/10-an-overview-of-technologies-supporting-the-use-of-colour-emoji-fonts-in-latex.md) para mais informações sobre a composição tipográfica de emojis.

Embora este seja apenas um exemplo divertido, usando LuaLaTeX, demonstra a personalização de todos os quatro comandos de geração de rótulos e o uso das variáveis de contador de rótulo, para criar uma rotulagem invulgar... Clique na ligação “Open in Overleaf” para ver o código completo.

```latex
\renewcommand{\labelenumi}{\duck{enumi}}
\renewcommand{\labelenumii}{\duck{enumi}.\duckegg{enumii}}
\renewcommand{\labelenumiii}{\duck{enumi}.\duckegg{enumii}.\duckegg{enumiii}}
\renewcommand{\labelenumiv}{\duck{enumi}.\duckegg{enumii}.\duckegg{enumiii}.\duckchick{enumiv}}

\begin{enumerate}
\item Um pato
\item Mais patos
\item Um enxame de patos
\begin{enumerate}
    \item Patos e ovos
    \begin{enumerate}
    \item Estou a ver...
    \item Patos e pré-patos
       \begin{enumerate}
       \item Ohh...
       \item Tão fofos!
       \end{enumerate}
    \end{enumerate}
\end{enumerate}
\item De volta aos patos
\item De novo
\end{enumerate}
```

[Para ver o ***código completo***, abra este exemplo em LuaLaTeX no Overleaf.](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Fun+example+of+configuring+a+list\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bfontspec%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewfontfamily%5Cemojifont%5BRenderer%3DHarfbuzz%2CSizeFeatures%3D%7BSize%3D6%7D%5D%7BNotoColorEmoji.ttf%7D%0A%0A%5Cnewcount%5Cduckcount%0A%5Cnewcount%5Ceggcount%0A%5Cnewcount%5Cchickcount%0A%0A%5Cdef%5Cduck%231%7B%25%0A%5Cduckcount%3D%5Cvalue%7B%231%7D%25%0A%5Cloop%7B%5Cemojifont%5CUchar%221F986%7D%25%0A%5Cadvance%5Cduckcount+by+-1%0A%5Cunless%5Cifnum%5Cduckcount%3D0+%0A%5Crepeat%7D%0A%0A%5Cdef%5Cduckegg%231%7B%25%0A%5Ceggcount%3D%5Cvalue%7B%231%7D%25%0A%5Cloop%7B%5Cemojifont%5CUchar%221F95A%7D%25%0A%5Cadvance%5Ceggcount+by+-1%0A%5Cunless%5Cifnum%5Ceggcount%3D0+%0A%5Crepeat%7D%0A%0A%5Cdef%5Cduckchick%231%7B%25%0A%5Cchickcount%3D%5Cvalue%7B%231%7D%25%0A%5Cloop%7B%5Cemojifont%5CUchar%221F424%7D%25%0A%5Cadvance%5Cchickcount+by+-1%0A%5Cunless%5Cifnum%5Cchickcount%3D0+%0A%5Crepeat%7D%0A%5Crenewcommand%7B%5Clabelenumi%7D%7B%5Cduck%7Benumi%7D%7D%0A%5Crenewcommand%7B%5Clabelenumii%7D%7B%5Cduck%7Benumi%7D.%5Cduckegg%7Benumii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiii%7D%7B%5Cduck%7Benumi%7D.%5Cduckegg%7Benumii%7D.%5Cduckegg%7Benumiii%7D%7D%0A%5Crenewcommand%7B%5Clabelenumiv%7D%7B%5Cduck%7Benumi%7D.%5Cduckegg%7Benumii%7D.%5Cduckegg%7Benumiii%7D.%5Cduckchick%7Benumiv%7D%7D+%0A%0A%5Cbegin%7Benumerate%7D%0A%5Citem+A+duck%0A%5Citem+More+ducks%0A%5Citem+A+flurry+of+ducks%0A%5Cbegin%7Benumerate%7D%0A++++%5Citem+Ducks+and+eggs%0A++++%5Cbegin%7Benumerate%7D%0A++++%5Citem+Do+I+see...+%0A++++%5Citem+Ducks+and+pre-ducks+%0A+++++++%5Cbegin%7Benumerate%7D%0A+++++++%5Citem+Awww...%0A+++++++%5Citem+So+cute%21%0A+++++++%5Cend%7Benumerate%7D%0A++++%5Cend%7Benumerate%7D%0A%5Cend%7Benumerate%7D%0A%5Citem+Back+to+ducks%0A%5Citem+Again%0A%5Cend%7Benumerate%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz o seguinte resultado

![Ducklist.png](/files/7cff7a85d848abc44f511a46e8dbb30af29bd87b)

### Personalizar listas: alterar o esquema

Além de personalizar rótulos, é possível modificar o espaçamento e o esquema das listas, mas primeiro precisamos de conhecer os vários parâmetros do LaTeX que determinam a composição tipográfica e o esquema das listas.

#### Parâmetros de lista do LaTeX

Você pode usar o [pacote layouts](https://ctan.org/pkg/layouts?lang=en) para gerar um diagrama que mostra os parâmetros de lista do LaTeX:

```latex
\documentclass{article}
\usepackage{layouts}
\begin{document}
\begin{figure}
\listdiagram
\caption{Os parâmetros do \LaTeX{} que definem a composição tipográfica e o esquema das listas.}
\end{figure}
\end{document}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+layout+package+to+view+list+structures\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Blayouts%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bfigure%7D%0A%5Clistdiagram%0A%5Ccaption%7BThe+%5CLaTeX%7B%7D+parameters+which+define+typesetting+and+layout+of+lists.%7D+%0A%5Cend%7Bfigure%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![](/files/711b0aade76a1d2830f69001e9704bb7f55de576)

O significado destes parâmetros é descrito em [a secção de listas do manual de referência não oficial do LaTeX2e](https://tug.org/texinfohtml/latex2e.html#list) por isso não o reproduziremos aqui.

#### Criar uma lista personalizada usando o ambiente list

O LaTeX fornece o genérico `lista` ambiente, que fornece uma estrutura para criar o(s) seu(s) próprio(s) tipo(s) de lista. Usando a informação contida no diagrama acima, o exemplo seguinte é uma versão ligeiramente modificada de um exemplo contido no [secção de listas](https://tug.org/texinfohtml/latex2e.html#list) do [manual de referência não oficial do LaTeX2e](https://tug.org/texinfohtml/latex2e.html)

```latex
\documentclass{article}
\begin{document}
\newcounter{boxlblcounter}
\newcommand{\makeboxlabel}[1]{\fbox{#1.}\hfill}% \hfill preenche a caixa do rótulo
\newenvironment{boxlabel}
  {\begin{list}
    {\arabic{boxlblcounter}}
    {\usecounter{boxlblcounter}
     \setlength{\labelwidth}{3em}
     \setlength{\labelsep}{0em}
     \setlength{\itemsep}{2pt}
     \setlength{\leftmargin}{1.5cm}
     \setlength{\rightmargin}{2cm}
     \setlength{\itemindent}{0em}
     \let\makelabel=\makeboxlabel
    }
  }
{\end{list}}

\newcommand{\randomtext}{Olá, aqui está algum texto sem significado. Olá, aqui está algum texto sem significado. Olá, aqui está algum texto sem significado.}

\noindent\randomtext

\begin{boxlabel}
\item \randomtext
\item \randomtext
\item \randomtext
\end{boxlabel}
\end{document}
```

[Abra este exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+list+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewcounter%7Bboxlblcounter%7D++%0A%5Cnewcommand%7B%5Cmakeboxlabel%7D%5B1%5D%7B%5Cfbox%7B%231.%7D%5Chfill%7D%25+%5Chfill+fills+the+label+box%0A%5Cnewenvironment%7Bboxlabel%7D%0A++%7B%5Cbegin%7Blist%7D%0A++++%7B%5Carabic%7Bboxlblcounter%7D%7D%0A++++%7B%5Cusecounter%7Bboxlblcounter%7D%0A+++++%5Csetlength%7B%5Clabelwidth%7D%7B3em%7D%0A+++++%5Csetlength%7B%5Clabelsep%7D%7B0em%7D%0A+++++%5Csetlength%7B%5Citemsep%7D%7B2pt%7D%0A+++++%5Csetlength%7B%5Cleftmargin%7D%7B1.5cm%7D%0A+++++%5Csetlength%7B%5Crightmargin%7D%7B2cm%7D%0A+++++%5Csetlength%7B%5Citemindent%7D%7B0em%7D+%0A+++++%5Clet%5Cmakelabel%3D%5Cmakeboxlabel%0A++++%7D%0A++%7D%0A%7B%5Cend%7Blist%7D%7D%0A%0A%5Cnewcommand%7B%5Crandomtext%7D%7BHello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.%7D%0A%0A%5Cnoindent%5Crandomtext%0A%0A%5Cbegin%7Bboxlabel%7D%0A%5Citem+%5Crandomtext%0A%5Citem+%5Crandomtext%0A%5Citem+%5Crandomtext%0A%5Cend%7Bboxlabel%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Listenvironmemt2.png](/files/bd2c5a8c26b270599a2c5380816b2c41b6139f5c)

### Usar o pacote enumitem para modificar e criar listas

O [`enumitem` pacote](https://ctan.org/pkg/enumitem?lang=en) é o método recomendado para modificar listas padrão do LaTeX ou criar os seus próprios formatos de lista personalizados. `enumitem` fornece uma *riqueza* de funcionalidades, por isso não podemos cobri-las todas, mas podemos fornecer alguns exemplos básicos para ajudar a começar. Quem quiser explorar este pacote versátil com mais profundidade é *fortemente* encorajado a procurar no tex.stackexchange por [perguntas, respostas (e exemplos) relacionadas com o `enumitem` pacote](https://tex.stackexchange.com/questions/tagged/enumitem), e a ler o [documentação do pacote](http://mirrors.ctan.org/macros/latex/contrib/enumitem/enumitem.pdf).

#### opção shortlabels do pacote enumitem

O `enumitem` fornece um parâmetro de configuração opcional chamado `shortlabels` que usa através de

```latex
\usepackage[shortlabels]{enumitem}
```

O `shortlabels` opção imita o comportamento do `enumerate` pacote, fornecendo um método conciso para definir o esquema de numeração dos ambientes enumerate. Veja o [`enumerate` documentação do pacote](https://ctan.org/pkg/enumerate?lang=en) para mais informações.

#### Modificar uma lista padrão

Com referência ao [diagrama dos parâmetros do LaTeX](#latex-list-parameters) podemos usar `enumitem` para personalizar facilmente uma lista padrão do LaTeX, como `itemize`:

```latex
\documentclass{article}
\usepackage{enumitem}

\begin{document}

\newcommand{\randomtext}{Olá, aqui está algum texto sem significado. Olá, aqui está algum texto sem significado.}

\section*{Usando as definições predefinidas do LaTeX para \texttt{itemize}}

\randomtext

\begin{itemize}
\item \randomtext
   \begin{itemize}
      \item \randomtext
        \begin{itemize}
        \item \randomtext
        \end{itemize}
   \item \randomtext
   \end{itemize}
\item \randomtext
\end{itemize}

\section*{Usando um \texttt{itemize} personalizado através de \texttt{enumitem}}

\subsection*{Note o efeito das definições das margens esquerda e direita}

\randomtext

\begin{itemize}[leftmargin=30pt, rightmargin=2cm]
\item \randomtext
   \begin{itemize}
      \item \randomtext
        \begin{itemize}
        \item \randomtext
        \end{itemize}
   \item \randomtext
   \end{itemize}
\item \randomtext
\end{itemize}

\end{document}
```

[Abra este `enumitem` exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Modifying+a+LaTeX+list+with+enumitem\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewcommand%7B%5Crandomtext%7D%7BHello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.%7D%0A%0A%5Csection%2A%7BUsing+LaTeX%27s+default+settings+for+%5Ctexttt%7Bitemize%7D%7D%0A%0A%5Crandomtext%0A%0A%5Cbegin%7Bitemize%7D%0A%5Citem+%5Crandomtext%0A+++%5Cbegin%7Bitemize%7D%0A++++++%5Citem+%5Crandomtext%0A++++++++%5Cbegin%7Bitemize%7D%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Cend%7Bitemize%7D%0A+++%5Citem+%5Crandomtext%0A+++%5Cend%7Bitemize%7D%0A%5Citem+%5Crandomtext%0A%5Cend%7Bitemize%7D%0A%0A%5Csection%2A%7BUsing+a+custom+%5Ctexttt%7Bitemize%7D+via+%5Ctexttt%7Benumitem%7D%7D%0A%0A%5Csubsection%2A%7BNote+the+effect+of+left+and+right+margin+settings%7D%0A%0A%5Crandomtext%0A%0A%5Cbegin%7Bitemize%7D%5Bleftmargin%3D30pt%2C+rightmargin%3D2cm%5D%0A%5Citem+%5Crandomtext%0A+++%5Cbegin%7Bitemize%7D%0A++++++%5Citem+%5Crandomtext%0A++++++++%5Cbegin%7Bitemize%7D%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Cend%7Bitemize%7D%0A+++%5Citem+%5Crandomtext%0A+++%5Cend%7Bitemize%7D%0A%5Citem+%5Crandomtext%0A%5Cend%7Bitemize%7D%0A%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Tweakitemize2.png](/files/a6842b06e871f1ce12f8d5ef14bc99da9fab2d8e)

#### Criar uma nova lista com enumitem

Para criar um novo tipo de lista com `enumitem` usa o `\newlist` comando, que requer 3 argumentos:

```latex
\newlist{name}{list-type}{max-depth}
```

* **`nome`**: o nome da sua lista, a ser usado como ambiente:

  ```
  \begin{name}
  ...
  \end{name}
  ```
* **`tipo de lista`** este tem de ser um dos tipos de lista padrão do LaTeX:
* `enumerate`
* `itemize`
* `descrição`
* **`profundidade máxima`**: a profundidade máxima a que esta lista será aninhada. **NOTA** para listas que excedam o limite predefinido de aninhamento do LaTeX de 4, também tem de emitir o comando `\setlistdepth{*integer*}` onde `*inteiro*` é a profundidade máxima de aninhamento que pretende usar. Veja o [Listas para advogados](#lists-for-lawyers-nesting-lists-to-an-arbitrary-depth) exemplo para uma demonstração disso.

Depois de criar a nova lista, pode configurá-la com o `\setlist` comando.

**Usar \setlist para configurar uma lista personalizada criada com enumitem**

Neste exemplo, criaremos uma nova lista chamada `myitems` que se baseia em `enumerate`. Vamos definir [`**profundidade máxima**`](#maxdepth) para 3:

```latex
\newlist{myitems}{enumerate}{3}
```

Um requisito mínimo é usar o `\setlist` comando para definir rótulos para esta lista personalizada. Uma forma de o fazer, para listas baseadas em enumerate, é usar as variáveis de contador criadas pelo `enumitem` pacote — essas variáveis de contador usam o `**nome**` da sua lista: `myitems` no nosso exemplo.

Eis como usamos as variáveis de contador correspondentes na nossa configuração de rótulos:

* `myitems**i**` para os itens do nível 1
* `myitems**ii**` para os itens do nível 2
* `myitems**iii**` para os itens do nível 3

Se tivéssemos mais de 3 níveis, as variáveis de contador correspondentes chamar-se-iam `myitems**iv**` (nível 4), `myitems**v**` (nível 5) e assim por diante, continuando a usar algarismos romanos minúsculos.

Além dos rótulos, também definiremos alguns valores para `leftmargin` e `rightmargin` (veja o [diagrama dos parâmetros do LaTeX](#latex-list-parameters)).

```latex
\documentclass{article}
\usepackage{enumitem}
\begin{document}

\newcommand{\randomtext}{Olá, aqui está algum texto sem significado. Olá, aqui está algum texto sem significado.}

\newcommand{\shortrandomtext}{Olá, aqui está algum texto.}
% Criar uma lista personalizada baseada em enumerate
% Chama-se "myitems"
% Vamos criar uma lista com 3 níveis de profundidade
\newlist{myitems}{enumerate}{3}

% Configurar o comportamento dos itens do nível 1
% NOTA: usamos o contador de lista "myitemsi"
\setlist[myitems, 1]
{label=\arabic{myitemsi}., %1., 2., 3., ...
leftmargin=\parindent,
rightmargin=10pt
}

% Configurar o comportamento dos itens do nível 2
% NOTA: usamos o contador de lista "myitemsii"
\setlist[myitems, 2]
{label=\arabic{myitemsi}.\arabic{myitemsii}, %1.1, 1.2, 1.3...
leftmargin=15pt,
rightmargin=15pt}

% Configurar o comportamento dos itens do nível 3
% NOTA: usamos o contador de lista "myitemsiii"
\setlist[myitems, 3]
% Usar um rótulo de 1.1:<kern>(a), 1.1:<kern>(b) etc
{label=\arabic{myitemsi}.\arabic{myitemsii}:\kern1.5pt(\alph{myitemsiii}),
leftmargin=30pt,
rightmargin=30pt}

\randomtext
\begin{myitems}
\item \randomtext
    \begin{myitems}
    \item \randomtext
        \begin{myitems}
        \item \randomtext
        \item \randomtext
        \end{myitems}
    \item \shortrandomtext
    \item \shortrandomtext
    \end{myitems}
\item \randomtext
\end{myitems}
\end{document}
```

[Abra este `enumitem` exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Create+a+custom+list+with+enumitem\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewcommand%7B%5Crandomtext%7D%7BHello%2C+here+is+some+text+without+a+meaning.+Hello%2C+here+is+some+text+without+a+meaning.%7D%0A%0A%5Cnewcommand%7B%5Cshortrandomtext%7D%7BHello%2C+here+is+some+text.%7D%0A%25+Create+a+custom+list+based+on+enumerate%0A%25+It+is+called+%22myitems%22%0A%25+We%27ll+create+a+list+that+is+3+levels+deep%0A%5Cnewlist%7Bmyitems%7D%7Benumerate%7D%7B3%7D%0A%0A%25+Configure+the+behaviour+of+level+1+entries%0A%25+NOTE%3A+we+use+the+list+counter+%22myitemsi%22%0A%5Csetlist%5Bmyitems%2C+1%5D%0A%7Blabel%3D%5Carabic%7Bmyitemsi%7D.%2C+%251.%2C+2.%2C+3.%2C+...%0Aleftmargin%3D%5Cparindent%2C%0Arightmargin%3D10pt%0A%7D%0A%0A%25+Configure+the+behaviour+of+level+2+entries%0A%25+NOTE%3A+we+use+the+list+counter+%22myitemsii%22%0A%5Csetlist%5Bmyitems%2C+2%5D%0A%7Blabel%3D%5Carabic%7Bmyitemsi%7D.%5Carabic%7Bmyitemsii%7D%2C+%251.1%2C+1.2%2C+1.3...%0Aleftmargin%3D15pt%2C%0Arightmargin%3D15pt%7D%0A%0A%25+Configure+the+behaviour+of+level+3+entries%0A%25+NOTE%3A+we+use+the+list+counter+%22myitemsiii%22%0A%5Csetlist%5Bmyitems%2C+3%5D%0A%25+Use+a+label+of+1.1%3A%3Ckern%3E%28a%29%2C+1.1%3A%3Ckern%3E%28b%29+etc++%0A%7Blabel%3D%5Carabic%7Bmyitemsi%7D.%5Carabic%7Bmyitemsii%7D%3A%5Ckern1.5pt%28%5Calph%7Bmyitemsiii%7D%29%2C%0Aleftmargin%3D30pt%2C%0Arightmargin%3D30pt%7D%0A%0A%5Crandomtext%0A%5Cbegin%7Bmyitems%7D%0A%5Citem+%5Crandomtext%0A++++%5Cbegin%7Bmyitems%7D%0A++++%5Citem+%5Crandomtext%0A++++++++%5Cbegin%7Bmyitems%7D%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Citem+%5Crandomtext%0A++++++++%5Cend%7Bmyitems%7D%0A++++%5Citem+%5Cshortrandomtext%0A++++%5Citem+%5Cshortrandomtext%0A++++%5Cend%7Bmyitems%7D%0A%5Citem+%5Crandomtext%0A%5Cend%7Bmyitems%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![CustomItemizeList.png](/files/36f4516aafa48d16bb1fa901fd9651f0c2285375)

#### Listas para advogados: aninhar listas a uma profundidade arbitrária

O `enumitem` pacote permite criar listas que podem ser aninhadas a uma profundidade arbitrária, removendo o limite de 4 do LaTeX. Qualquer pessoa que prepare contratos com estruturas de cláusulas complexas (profundamente aninhadas) poderá beneficiar com isto, embora o código aninhado pareça um pouco intimidante...

```latex
\documentclass{article}
\usepackage{enumitem}

\begin{document}

\newlist{contract}{enumerate}{10}
\setlist[contract]{label*=\arabic*.}
\setlistdepth{10}

\section*{Lista personalizada aninhada a 10 níveis de profundidade!}

\begin{contract}
\item Nível 1
 \begin{contract}
 \item Nível 2
   \begin{contract}
   \item Nível 3
     \begin{contract}
     \item Nível 4
       \begin{contract}
       \item Nível 5
        \begin{contract}
        \item Nível 6
         \begin{contract}
         \item Nível 7
          \begin{contract}
          \item Nível 8
           \begin{contract}
           \item Nível 9
            \begin{contract}
            \item Nível 10
          \end{contract}
         \end{contract}
        \end{contract}
       \end{contract}
      \end{contract}
     \end{contract}
    \end{contract}
   \end{contract}
  \end{contract}
 \end{contract}
\end{document}
```

[Abra este `enumitem` exemplo no Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+the+enumitem+package+to+create+deeply+nested+lists\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewlist%7Bcontract%7D%7Benumerate%7D%7B10%7D%0A%5Csetlist%5Bcontract%5D%7Blabel%2A%3D%5Carabic%2A.%7D%0A%5Csetlistdepth%7B10%7D+%0A%0A%5Csection%2A%7BCustom+list+nested+to+10+levels+deep%21%7D%0A%0A%5Cbegin%7Bcontract%7D%0A%5Citem+Level+1%0A+%5Cbegin%7Bcontract%7D%0A+%5Citem+Level+2%0A+++%5Cbegin%7Bcontract%7D%0A+++%5Citem+Level+3%0A+++++%5Cbegin%7Bcontract%7D%0A+++++%5Citem+Level+4%0A+++++++%5Cbegin%7Bcontract%7D%0A+++++++%5Citem+Level+5%0A++++++++%5Cbegin%7Bcontract%7D%0A++++++++%5Citem+Level+6%0A+++++++++%5Cbegin%7Bcontract%7D%0A+++++++++%5Citem+Level+7%0A++++++++++%5Cbegin%7Bcontract%7D%0A++++++++++%5Citem+Level+8%0A+++++++++++%5Cbegin%7Bcontract%7D%0A+++++++++++%5Citem+Level+9%0A++++++++++++%5Cbegin%7Bcontract%7D%0A++++++++++++%5Citem+Level+10%0A++++++++++%5Cend%7Bcontract%7D%0A+++++++++%5Cend%7Bcontract%7D%0A++++++++%5Cend%7Bcontract%7D%0A+++++++%5Cend%7Bcontract%7D%0A++++++%5Cend%7Bcontract%7D%0A+++++%5Cend%7Bcontract%7D%0A++++%5Cend%7Bcontract%7D%0A+++%5Cend%7Bcontract%7D%0A++%5Cend%7Bcontract%7D%0A+%5Cend%7Bcontract%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![10levels.png](/files/55e3b2281176fc396bd7c894ddd3511ce6980c40)

#### Marcadores personalizados usando o pacote enumitem e MetaPost

Os exemplos seguintes só funcionam com LuaLaTeX e destinam-se a dar uma sugestão de algumas possibilidades — claro, substitua o MetaPost pela sua aplicação/ferramenta de desenho preferida!

Estes exemplos usam o `luamplib` pacote e também demonstram que comandos expansíveis, como `\the` e `\directlua`, podem ser usados dentro do código MetaPost.

**Exemplo 1: marcadores com tamanho automático**

Este exemplo produz marcadores que diminuem de tamanho à medida que a profundidade da lista aumenta. Clique na ligação “Open in Overleaf” para executar o exemplo e ver o código completo.

```latex
% Declarar uma nova lista baseada em itemize através de enumitem
\newlist{myEnumerate}{itemize}{6}

% A opção nosep remove todo o espaçamento vertical
% a opção label=\protect\mpbullet faz com que todos os marcadores sejam
% desenhados por uma macro que usa código MetaPost. \protect
% é necessário, como indicado no manual do enumitem

\setlist[myEnumerate]{nosep,label=\protect\mpbullet}
\setlistdepth{6}

\begin{myEnumerate}
\item Nível 1
  \begin{myEnumerate}
   \item Nível 2
    \begin{myEnumerate}
     \item Nível 3
      \begin{myEnumerate}
       \item Nível 4
        \begin{myEnumerate}
         \item Nível 5
          \begin{myEnumerate}
           \item Nível 6
           \end{myEnumerate}
        \end{myEnumerate}
       \end{myEnumerate}
    \end{myEnumerate}
   \end{myEnumerate}
\end{myEnumerate}
```

[Para ver o ***código completo***, abra este exemplo em LuaLaTeX no Overleaf.](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Using+MetaPost+with+the+enumitem+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bluamplib%7D%0A%5Cusepackage%7Benumitem%7D%0A%5Ceverymplib%7Bbeginfig%280%29%3B%7D%0A%5Ceveryendmplib%7Bendfig%3B%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0AThis+list+configuration+example+uses+MetaPost+code+that+contains+Lua+code+via+%5Cverb%7C%5Cdirectlua%7C.+Bullets+are+created+by+MetaPost+code%2C+size+is+calculated+from+the+depth+of+the+entry.%0A%0A%25+It+is+convenient+to+use+%5Clet%5Cmpdepth%5C%40listdepth%3A+makes+it+%0A%25+easier+to+use+in+MetaPost+code%0A%0A%5Ccatcode%60%40%3D11%0A%5Clet%5Cmpdepth%5C%40listdepth%0A%5Ccatcode%60%40%3D12%0A%0A%5Cnewcommand%7B%5Cmpbullet%7D%7B%25%0A%5Cbegin%7Bmplibcode%7D%25%0Adraw+%280%2C0%29..%280%2C-%5Cdirectlua%7Btex.print%28%5Cthe%5Cmpdepth%2F2%29%7D%29+withpen+pencircle+scaled+2pt+withcolor+white%3B%0Adrawdot%280%2C0%29+withpen+pencircle+scaled+%5Cdirectlua%7Btex.print%285%2Fmath.sqrt%28%5Cthe%5Cmpdepth%29%29%7Dbp%3B%0A%5Cend%7Bmplibcode%7D%7D%0A%25+Declare+a+new+itemize-based+list+via+enumitem%0A%5Cnewlist%7BmyEnumerate%7D%7Bitemize%7D%7B6%7D%0A%0A%25+The+nosep+option+removes+all+vertical+spacing%0A%25+the+label%3D%5Cprotect%5Cmpbullet+causes+all+bullets+to+be+%0A%25+drawn+by+a+macro+that+uses+MetaPost+code.+%5Cprotect%0A%25+is+required+as+noted+in+the+enumitem+manual+%0A%0A%5Csetlist%5BmyEnumerate%5D%7Bnosep%2Clabel%3D%5Cprotect%5Cmpbullet%7D%0A%5Csetlistdepth%7B6%7D%0A%0A%5Cbegin%7BmyEnumerate%7D%0A%5Citem+Level+1%0A++%5Cbegin%7BmyEnumerate%7D%0A+++%5Citem+Level+2%0A++++%5Cbegin%7BmyEnumerate%7D%0A+++++%5Citem+Level+3%0A++++++%5Cbegin%7BmyEnumerate%7D%0A+++++++%5Citem+Level+4%0A++++++++%5Cbegin%7BmyEnumerate%7D%0A+++++++++%5Citem+Level+5%0A++++++++++%5Cbegin%7BmyEnumerate%7D%0A+++++++++++%5Citem+Level+6%0A+++++++++++%5Cend%7BmyEnumerate%7D%0A++++++++%5Cend%7BmyEnumerate%7D%0A+++++++%5Cend%7BmyEnumerate%7D%0A++++%5Cend%7BmyEnumerate%7D%0A+++%5Cend%7BmyEnumerate%7D%0A%5Cend%7BmyEnumerate%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![Autosize.png](/files/a98257a8f280597e0f1cd9f934eb424bf72f6ebf)

**Exemplo 2: marcadores personalizados originais**

Este exemplo foi inspirado num [exemplo em tex.stackexchange](https://tex.stackexchange.com/a/313337) que o Overleaf modificou para criar marcadores personalizados usando código MetaPost. Clique na ligação “Open in Overleaf” para executar o exemplo e ver o código completo.

```latex
\newlist{todolist}{itemize}{2}

\begin{itemize}
  \item Comece a pensar no que esperamos alcançar
  \begin{todolist}
  \item[\mpdot] Identificar objetivos
  \item[\mpyingyang] Equilibrar o impacto ambiental
  \item[\mpsquare{0}{5}{0}] Implementar planos
    \begin{todolist}
    \item[\mpsquare{-0.5}{4}{0}] Planos da etapa 1
    \item[\mpsquare{-0.5}{4}{-20}] Planos da etapa 2
    \item[\mpsquare{-0.5}{4}{-40}] Planos da etapa 3
    \item[\mpsquare{-0.5}{4}{-60}] Planos da etapa 4
    \end{todolist}
  \end{todolist}
\end{itemize}
```

[Para ver o ***código completo***, abra este exemplo em LuaLaTeX no Overleaf.](https://www.overleaf.com/docs?engine=lualatex\&snip_name=Second+example+using+MetaPost+with+the+enumitem+package\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Benumitem%7D%0A%5Cusepackage%7Bluamplib%7D%0A%5Ceverymplib%7Bbeginfig%280%29%3B%7D%0A%5Ceveryendmplib%7Bendfig%3B%7D%0A%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cnewcommand%7B%5Cmpyingyang%7D%7B%25%0A%5Clower1.5pt%5Chbox%7B%5Cbegin%7Bmplibcode%7D%25%0Apath+p%3B%0Ap%3A%3D%28-1%2C0%29..%280%2C-1%29..%281%2C0%29%3B%0Afill+%28p%7Bup%7D..%7Bdown%7D%280%2C0%29%7Bdown%7D..%7Bup%7Dcycle%29+scaled+0.15cm%3B%0Adraw+%28p..%280%2C1%29..cycle%29+scaled+0.15cm+%3B%0A%5Cend%7Bmplibcode%7D%7D%25%0A%7D%25%0A%5Cnewcommand%7B%5Cmpdot%7D%7B%25%0A%5Clower1.5pt%5Chbox%7B%5Cbegin%7Bmplibcode%7D%25%0Adrawdot%280%2C0%29+withpen+pencircle+scaled+2bp%3B%0Adraw+fullcircle+scaled+0.2cm%3B%0Adraw+fullcircle+scaled+0.3cm%3B%0A%5Cend%7Bmplibcode%7D%7D%25%0A%7D%25%0A%5Cnewcommand%7B%5Cmpsquare%7D%5B3%5D%7B%25%0A%5Clower%231pt%5Chbox%7B%5Cbegin%7Bmplibcode%7D%25%0Adraw+unitsquare+rotated+%233+scaled+%232pt%3B%0A%5Cend%7Bmplibcode%7D%25%0A%7D%7D%25%0A%5Cnewlist%7Btodolist%7D%7Bitemize%7D%7B2%7D%0A%0A%5Cbegin%7Bitemize%7D%0A++%5Citem+Start+thinking+about+what+we+hope+to+achieve%0A++%5Cbegin%7Btodolist%7D%0A++%5Citem%5B%5Cmpdot%5D+Identify+objectives%0A++%5Citem%5B%5Cmpyingyang%5D+Balance+environmental+impact+%0A++%5Citem%5B%5Cmpsquare%7B0%7D%7B5%7D%7B0%7D%5D+Implement+plans%0A++++%5Cbegin%7Btodolist%7D%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B0%7D%5D+Stage+1+plans%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B-20%7D%5D+Stage+2+plans%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B-40%7D%5D+Stage+3+plans%0A++++%5Citem%5B%5Cmpsquare%7B-0.5%7D%7B4%7D%7B-60%7D%5D+Stage+4+plans%0A++++%5Cend%7Btodolist%7D%0A++%5Cend%7Btodolist%7D%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Este exemplo produz a seguinte saída:

![CustomBullets2.png](/files/2a1351d14504b6c7416dad22f8ea2245cd60fa5d)

## Outras funcionalidades do pacote enumitem

Como foi referido, o `enumitem` pacote é extremamente versátil e oferece inúmeras funcionalidades para utilizar e personalizar listas. Por exemplo, as funcionalidades que não abordámos incluem:

* referenciar itens da lista: por exemplo, veja esta [pergunta e exemplo no tex.stackexchane](https://tex.stackexchange.com/questions/524822/help-for-formatting-the-ref-of-nested-enumerate)
* controlar `enumerate` a numeração das listas:
  * definir o número inicial do primeiro item
  * continuar a numeração de diferentes `enumerate` listas

E muito mais! Consulte [o tex.stackexchange para encontrar muitos exemplos excelentes](https://tex.stackexchange.com/questions/tagged/enumitem) do que pode fazer através de `enumitem`—e, claro, [leia a documentação do pacote](https://ctan.org/pkg/enumitem).


---

# 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/nocoes-basicas-de-latex/04-lists.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.
