> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-pro.ayaka.space/latex/it/concetti-di-base-di-latex/04-lists.md).

# Elenchi

## Tre modi per inserire elenchi in Overleaf

Overleaf offre 3 modi per creare elenchi usando LaTeX:

1. Usa **Inserisci elenco puntato** (![Image of the menu icon for insert a bulleted list in Overleaf](/files/17f50501aee9751a5b4676380f7b8c474a2fe7c8)) oppure **Inserisci elenco numerato** (![Image of the menu icon for insert a numbered list in Overleaf](/files/cd01abeb2fc71ffe31291d9e75f484da20b5fc7e)) nella barra degli strumenti dell'editor per inserire elenchi in **Editor visuale** o **Editor di codice**.
2. [Incolla un elenco formattato in **Editor visuale**](/latex/it/base-di-conoscenza/075-how-to-paste-formatted-content-into-overleaf.md#pasteformattedlist).
3. Scrivi il tuo codice LaTeX usando **Editor di codice**.

Le opzioni 1 e 2 sono progettate per generare automaticamente il codice LaTeX necessario per comporre gli elenchi. Tuttavia, per chi desidera scrivere il proprio codice LaTeX, l'opzione 3 potrebbe essere la scelta preferita. Offre la massima flessibilità ed è il focus principale di questo articolo.

## Introduzione

Questo articolo fornisce un'introduzione alla composizione tipografica e alla personalizzazione di vari tipi di elenco in LaTeX:

* il `itemize` ambiente per creare un elenco puntato (non ordinato)
* il `enumerate` ambiente per creare un elenco numerato (ordinato)
* il `descrizione` ambiente per creare un elenco di descrizioni

La composizione degli elenchi è un argomento ampio perché gli elenchi LaTeX sono *estremamente* configurabili, consentendo la creazione di un'enorme varietà di tipi e strutture di elenco. Esamineremo e dimostreremo alcuni metodi che puoi usare per [configurare e personalizzare i tuoi elenchi](#customizing-lists).

## Esempi di elenchi di base

### L'ambiente itemize per elenchi puntati (non ordinati)

Gli elenchi non ordinati (puntati) sono prodotti dall' `itemize` ambiente, in cui ogni voce dell'elenco inizia usando il `\item` comando, che genera anche il simbolo del punto elenco.

```latex
Gli elenchi sono facili da creare:
\begin{itemize}
  \item Le voci dell'elenco iniziano con il comando \verb|\item|.
  \item Le singole voci sono indicate con un punto nero, il cosiddetto punto elenco.
  \item Il testo delle voci può essere di qualsiasi lunghezza.
\end{itemize}
```

[Apri questo esempio in 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)

Questo esempio produce il seguente output:

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

### L'ambiente enumerate per elenchi numerati (ordinati)

Gli elenchi numerati (ordinati) hanno la stessa sintassi ma usano l' `enumerate` ambiente: ogni voce deve essere preceduta dalla sequenza di controllo `\item`, che genererà automaticamente i numeri per etichettare la voce. Questi numeri iniziano da 1 a ogni utilizzo dell' `enumerate` ambiente—nota che questo comportamento predefinito di numerazione di LaTeX può essere modificato/controllato tramite il [`enumitem` pacchetto](https://ctan.org/pkg/enumitem).

```latex
Gli elenchi numerati (ordinati) sono facili da creare:
\begin{enumerate}
  \item Le voci vengono numerate automaticamente.
  \item I numeri iniziano da 1 a ogni utilizzo dell'ambiente \texttt{enumerate}.
  \item Un'altra voce dell'elenco
\end{enumerate}
```

[Apri questo esempio in 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)

Questo esempio produce il seguente output:

![List2OLV2.png](/files/957d763a14fa0c29c9c4bda8c788d742e0e9ad07)

### L'ambiente description

L'esempio seguente dimostra i `descrizione` ambiente. L'etichetta (facoltativa) per ogni voce è racchiusa tra parentesi quadre dopo il `\item` comando:

```latex
\item[testo etichetta] Il testo della tua descrizione va qui...
```

Usiamo anche il `blindtext` pacchetto per generare del testo inglese fittizio nella terza voce. Per ottenere l'inglese dobbiamo usare il `babel` pacchetto con l'opzione di lingua `[english]`:

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

Ecco l'esempio:

```latex
\documentclass{article}
\usepackage[english]{babel} % Per ottenere testo in inglese con il pacchetto blindtext
\usepackage{blindtext}
\begin{document}

\begin{description}
   \item Questa è una voce \textit{senza} etichetta.
   \item[Qualcosa di breve] Una descrizione breve di una sola riga.
   \item[Qualcosa di lungo] Una descrizione molto più lunga. \blindtext[1]
\end{description}
\end{document}
```

[Apri questo esempio in 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)

Questo esempio produce il seguente output:

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

## Cambiare l'etichetta delle singole voci

Come mostrato nell' `descrizione` esempio dell' `\item` comando accetta un parametro opzionale, tra parentesi quadre. Puoi usare questa funzionalità all'interno di `itemize` e `enumerate` ambienti per cambiare l'etichetta predefinita delle singole voci del tuo elenco:

```latex
\item[testo etichetta] Il testo della tua voce va qui...
```

La `testo etichetta` sarà usato per generare l'etichetta di questa voce.

```latex
Cambia le etichette usando \verb|\item[label text]| in un ambiente \texttt{itemize}
\begin{itemize}
  \item Questo è il mio primo punto
  \item Un altro punto che voglio sottolineare
  \item[!] Un punto per esclamare qualcosa!
  \item[$\blacksquare$] Metti il punto in modo chiaro e netto.
  \item[NOTA] Questa voce non ha un punto elenco
  \item[] Un'etichetta vuota?
\end{itemize}

\vspace{10pt}

Cambia le etichette usando \verb|\item[label text]| in un ambiente \texttt{enumerate}
\begin{enumerate}
  \item Questo è il mio primo punto
  \item Un altro punto che voglio sottolineare
  \item[!] Un punto per esclamare qualcosa!
  \item[$\blacksquare$] Metti il punto in modo chiaro e netto.
  \item[NOTA] Questa voce non ha un punto elenco
  \item[] Un'etichetta vuota?
\end{enumerate}
```

[Apri questo esempio in 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)

Questo esempio produce il seguente output:

![ChangeBullets.png](/files/074e2216405944168e031e1fc824496f456dc146)

## Elenchi annidati

In LaTeX puoi inserire un elenco dentro un altro elenco. I tipi di elenco sopra possono essere inclusi l'uno nell'altro, anche mescolati o dello stesso tipo, fino a una profondità di 4 livelli.

```latex
\begin{enumerate}
   \item Le etichette sono costituite da numeri sequenziali
   \begin{itemize}
     \item Le singole voci sono indicate con un punto nero, il cosiddetto punto elenco
     \item Il testo delle voci può essere di qualsiasi lunghezza
     \begin{description}
     \item[Nota:] Vorrei descrivere qualcosa qui
     \item[Avvertenza!] E dare qui un avvertimento
     \end{description}
   \end{itemize}
   \item I numeri iniziano da 1 a ogni utilizzo dell'ambiente \texttt{enumerate}
\end{enumerate}
```

[Apri questo esempio in 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)

Questo esempio produce il seguente output:

![List3bOLV2.png](/files/9264702f59908e41348eee8bb95cba0d07f1b152)

### Elenchi annidati: stile delle etichette

Lo stile delle etichette delle voci annidate cambia in base alla profondità nell'elenco. Per gli elenchi annidati `itemize` il tipo di bullet cambia; per `enumerate` gli elenchi il formato dei numeri cambia con l'aumentare della profondità della voce. Entrambi sono limitati a una profondità di 4 livelli.

#### Elenchi enumerate annidati: formato dei numeri

```latex
\begin{enumerate}
   \item Voce di primo livello
   \item Voce di primo livello
   \begin{enumerate}
     \item Voce di secondo livello
     \item Voce di secondo livello
     \begin{enumerate}
       \item Voce di terzo livello
       \item Voce di terzo livello
       \begin{enumerate}
         \item Voce di quarto livello
         \item Voce di quarto livello
       \end{enumerate}
     \end{enumerate}
   \end{enumerate}
 \end{enumerate}
```

[Apri questo esempio in 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)

Questo esempio produce il seguente output:

![List4OLV2.png](/files/7df41d8c36510fd6970f06422cd62066b922bb2d)

#### Elenchi itemize annidati: stile del punto elenco

Lo stile del punto elenco cambia a seconda della profondità degli elenchi annidati:

```latex
\begin{itemize}
   \item Voce di primo livello
   \item Voce di primo livello
   \begin{itemize}
     \item Voce di secondo livello
     \item Voce di secondo livello
     \begin{itemize}
       \item Voce di terzo livello
       \item Voce di terzo livello
       \begin{itemize}
         \item Voce di quarto livello
         \item Voce di quarto livello
       \end{itemize}
     \end{itemize}
   \end{itemize}
 \end{itemize}
```

[Apri questo esempio in 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)

Questo esempio produce il seguente output:

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

## Personalizzare gli elenchi

Gli elenchi di LaTeX sono *altamente* configurabili, offrendo ampio margine per creare molti diversi tipi di elenco personalizzato. Puoi apportare modifiche dirette ai tipi di elenco standard di LaTeX oppure, *preferibilmente*, usare il versatile [pacchetto enumitem](https://ctan.org/pkg/enumitem) per farlo al posto tuo.

CTAN ospita numerosi [pacchetti relativi agli elenchi](https://ctan.org/topic/list) che potrebbe valere la pena esaminare se hai particolari esigenze di personalizzazione. Inoltre, tex.stackexchange offre una grande quantità di [domande relative agli elenchi](https://tex.stackexchange.com/questions/tagged/lists) con risposte che forniscono utili spunti e ottimi esempi!

Inizieremo con alcuni esempi che modificano le etichette degli elenchi, poi passeremo alla personalizzazione del layout degli elenchi.

### Personalizzare gli elenchi: cambiare le etichette

Per prima cosa, mostriamo come cambiare l'etichettatura degli elenchi senza usare il [pacchetto enumitem](https://ctan.org/pkg/enumitem).

#### Comandi standard di generazione delle etichette

Gli elenchi personalizzati possono essere creati usando il [enumitem](https://ctan.org/pkg/enumitem) pacchetto oppure modificando direttamente gli elenchi standard. Qui forniremo un riassunto di alcuni comandi standard di LaTeX, variabili contatore e parametri degli elenchi di cui potresti dover essere a conoscenza.

La seguente tabella mostra i comandi LaTeX usati per la generazione delle etichette a ciascun livello degli `itemize` e `enumerate` ambienti elenco:

|             |                                         |                                       |
| ----------- | --------------------------------------- | ------------------------------------- |
| **Livello** | **`enumerate`** comandi delle etichette | **`itemize`** comandi delle etichette |
| Livello 1   | `\labelenumi`                           | `\labelitemi`                         |
| Livello 2   | `\labelenumii`                          | `\labelitemii`                        |
| Livello 3   | `\labelenumiii`                         | `\labelitemiii`                       |
| Livello 4   | `\labelenumiv`                          | `\labelitemiv`                        |

#### Variabili contatore per enumerate

La `enumerate` l'ambiente elenco utilizza anche quattro *contatore* variabili che tengono traccia del valore corrente dell'etichetta per ciascun livello:

|             |                                     |
| ----------- | ----------------------------------- |
| **Livello** | **`enumerate`** variabile contatore |
| Livello 1   | `enumi`                             |
| Livello 2   | `enumii`                            |
| Livello 3   | `enumiii`                           |
| Livello 4   | `enumiv`                            |

#### Esempi: personalizzazione delle etichette degli elenchi enumerate

Puoi configurare l'etichettatura standard di LaTeX usando `\renewcommand` per ridefinire i comandi che generano le etichette e, per l' `enumerate` ambiente, puoi anche usare la variabile contatore appropriata.

Ecco alcuni esempi che lo fanno senza usare il `enumitem` pacchetto.

**Esempio pratico**

```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 Uno
\item Due
\item Tre
\begin{enumerate}
    \item Tre punto uno
    \begin{enumerate}
    \item Tre punto uno, punto uno
        \begin{enumerate}
        \item Tre punto uno, punto uno, punto uno
        \item Tre punto uno, punto uno, punto due
        \end{enumerate}
    \end{enumerate}
\end{enumerate}
\item Quattro
\item Cinque
\end{enumerate}

\end{document}
```

[Apri questo esempio in 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)

Questo esempio produce il seguente output:

![List9OLV2.png](/files/601aaa511535352103ad44abe8a633a42d3c9ee5)

**Stampare le variabili contatore**

Nell'esempio precedente, il comando `\arabic` è stato usato per comporre il valore corrente di varie etichette *variabili contatore*. Nota che «numeri arabi» e l'uso del comando `\arabic`, si riferisce alle cifre da 0 a 9: vedi questo [articolo sui numeri arabi su Wikipedia](https://en.wikipedia.org/wiki/Arabic_numerals) per ulteriori informazioni.

In generale, un *variabile contatore* può essere stampato in vari formati usando uno dei seguenti 5 comandi:

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

Ad esempio:

```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}| produce \arabic{foo}
\item \verb|\roman{foo}| produce \roman{foo}
\item \verb|\Roman{foo}| produce \Roman{foo}
\item \verb|\Alph{foo}| produce \Alph{foo}
\item \verb|\alph{foo}| produce \alph{foo}
\end{itemize}

\end{document}
```

[Apri questo esempio in 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)

Questo esempio produce il seguente output:

![List8OLV2.png](/files/ba841bd0147e385d96b37dd07d8a956262f153c3)

**Esempio non pratico (divertente)**

Questo esempio compone emoji usando un font OpenType a colori, quindi *funzionerà solo in LuaLaTeX*. Vedi l'articolo di Overleaf [Una panoramica delle tecnologie che supportano l'uso di font emoji a colori in LaTeX](/latex/it/articoli-approfonditi/10-an-overview-of-technologies-supporting-the-use-of-colour-emoji-fonts-in-latex.md) per maggiori informazioni sulla composizione delle emoji.

Anche se questo è solo un esempio divertente, che usa LuaLaTeX, dimostra la personalizzazione di tutti e quattro i comandi di generazione delle etichette e l'uso delle variabili contatore delle etichette per creare un'etichettatura insolita... Fai clic sul link “Open in Overleaf” per vedere il codice 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 Un'anatra
\item Più anatre
\item Un turbinio di anatre
\begin{enumerate}
    \item Anatre e uova
    \begin{enumerate}
    \item Vedo...
    \item Anatre e pre-anatre
       \begin{enumerate}
       \item Aww...
       \item Così carino!
       \end{enumerate}
    \end{enumerate}
\end{enumerate}
\item Tornando alle anatre
\item Di nuovo
\end{enumerate}
```

[Per vedere il ***codice completo***, apri questo esempio LuaLaTeX in 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)

Questo esempio produce il seguente output

![Ducklist.png](/files/ddc5ed14d9317a90ca961e37fcb3d2ed2e2a9ea0)

### Personalizzare gli elenchi: cambiare il layout

Oltre a personalizzare le etichette, è possibile modificare la spaziatura e il layout degli elenchi, ma prima dobbiamo conoscere i vari parametri di LaTeX che determinano la composizione tipografica e il layout degli elenchi.

#### Parametri degli elenchi LaTeX

Puoi usare il [pacchetto layouts](https://ctan.org/pkg/layouts?lang=en) per generare un diagramma che mostra i parametri degli elenchi LaTeX:

```latex
\documentclass{article}
\usepackage{layouts}
\begin{document}
\begin{figure}
\listdiagram
\caption{I parametri \LaTeX{} che definiscono la composizione tipografica e il layout degli elenchi.}
\end{figure}
\end{document}
```

[Apri questo esempio in 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)

Questo esempio produce il seguente output:

![](/files/21ec2f1c9ec04f8f79ab1c5d6190f80c74007431)

Il significato di questi parametri è descritto in [la sezione sugli elenchi del manuale di riferimento non ufficiale di LaTeX2e](https://tug.org/texinfohtml/latex2e.html#list) quindi non lo riprodurremo qui.

#### Creare un elenco personalizzato usando l'ambiente list

LaTeX fornisce il generico `elenco` ambiente che fornisce una struttura per creare il tuo tipo o i tuoi tipi di elenco. Usando le informazioni contenute nel diagramma sopra, l'esempio seguente è una versione leggermente modificata di uno contenuto nel [sezione sugli elenchi](https://tug.org/texinfohtml/latex2e.html#list) del [manuale di riferimento non ufficiale di LaTeX2e](https://tug.org/texinfohtml/latex2e.html)

```latex
\documentclass{article}
\begin{document}
\newcounter{boxlblcounter}
\newcommand{\makeboxlabel}[1]{\fbox{#1.}\hfill}% \hfill riempie la casella dell'etichetta
\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}{Ciao, ecco un testo senza significato. Ciao, ecco un testo senza significato. Ciao, ecco un testo senza significato.}

\noindent\randomtext

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

[Apri questo esempio in 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)

Questo esempio produce il seguente output:

![Listenvironmemt2.png](/files/88db3eacc9cb529d4a6dce6ee4a2f445fd4628ff)

### Usare il pacchetto enumitem per modificare e creare elenchi

La [`enumitem` pacchetto](https://ctan.org/pkg/enumitem?lang=en) è il metodo consigliato per modificare gli elenchi standard di LaTeX o per creare i tuoi formati di elenco personalizzati. `enumitem` offre una *ricchezza* di funzionalità, quindi non possiamo coprirle tutte, ma possiamo fornire alcuni esempi di base per aiutarti a iniziare. Chiunque desideri esplorare più a fondo questo pacchetto versatile è *fortemente* invitato a consultare tex.stackexchange per [domande, risposte (ed esempi) relativi a `enumitem` pacchetto](https://tex.stackexchange.com/questions/tagged/enumitem), e a leggere il [documentazione del pacchetto](http://mirrors.ctan.org/macros/latex/contrib/enumitem/enumitem.pdf).

#### opzione shortlabels del pacchetto enumitem

La `enumitem` fornisce un parametro di configurazione opzionale chiamato `shortlabels` che usi tramite

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

La `shortlabels` l'opzione imita il comportamento del `enumerate` pacchetto, fornendo un metodo conciso per definire lo schema di numerazione degli ambienti enumerate. Vedi il [`enumerate` documentazione del pacchetto](https://ctan.org/pkg/enumerate?lang=en) per ulteriori informazioni.

#### Modificare un elenco standard

Con riferimento al [diagramma dei parametri LaTeX](#latex-list-parameters) possiamo usare `enumitem` per personalizzare facilmente un elenco standard LaTeX, come `itemize`:

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

\begin{document}

\newcommand{\randomtext}{Ciao, ecco un testo senza significato. Ciao, ecco un testo senza significato.}

\section*{Utilizzo delle impostazioni predefinite di LaTeX per \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*{Utilizzo di un \texttt{itemize} personalizzato tramite \texttt{enumitem}}

\subsection*{Nota l'effetto delle impostazioni del margine sinistro e destro}

\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}
```

[Apri questo `enumitem` esempio su 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)

Questo esempio produce il seguente output:

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

#### Creare un nuovo elenco con enumitem

Per creare un nuovo tipo di elenco con `enumitem` usi il `\newlist` comando che richiede 3 argomenti:

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

* **`nome`**: il nome del tuo elenco, da usare come ambiente:

  ```
  \begin{name}
  ...
  \end{name}
  ```
* **`tipo di elenco`** deve essere uno dei tipi di elenco standard di LaTeX:
* `enumerate`
* `itemize`
* `descrizione`
* **`profondità massima`**: la massima profondità di annidamento di questo elenco. **NOTA** per gli elenchi che superano il limite predefinito di annidamento di 4 di LaTeX, devi anche impartire il comando `\setlistdepth{*integer*}` dove `*intero*` è la massima profondità di annidamento che intendi usare. Vedi l' [Elenchi per avvocati](#lists-for-lawyers-nesting-lists-to-an-arbitrary-depth) esempio per una dimostrazione di ciò.

Dopo aver creato il nuovo elenco, puoi configurarlo con il `\setlist` comando.

**Usare \setlist per configurare un elenco personalizzato creato con enumitem**

In questo esempio creeremo un nuovo elenco chiamato `myitems` basato su `enumerate`. Imposteremo [`**profondità massima**`](#maxdepth) a 3:

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

Un requisito minimo è usare il `\setlist` comando per definire le etichette di questo elenco personalizzato. Un modo per farlo, per gli elenchi basati su enumerate, è usare le variabili contatore create dal `enumitem` pacchetto—quelle variabili contatore usano il `**nome**` della tua lista: `myitems` nel nostro esempio.

Ecco come usiamo le variabili contatore corrispondenti nella nostra configurazione delle etichette:

* `myitems**i**` per le voci di livello 1
* `myitems**ii**` per le voci di livello 2
* `myitems**iii**` per le voci di livello 3

Se avessimo più di 3 livelli, le corrispondenti variabili contatore si chiamerebbero `myitems**iv**` (livello 4), `myitems**v**` (livello 5) e così via, continuando a usare i numeri romani minuscoli.

Oltre alle etichette, imposteremo anche alcuni valori per `leftmargin` e `rightmargin` (vedi il [diagramma dei parametri LaTeX](#latex-list-parameters)).

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

\newcommand{\randomtext}{Ciao, ecco un testo senza significato. Ciao, ecco un testo senza significato.}

\newcommand{\shortrandomtext}{Hello, here is some text.}
% Crea un elenco personalizzato basato su enumerate
% Si chiama "myitems"
% Creeremo un elenco profondo 3 livelli
\newlist{myitems}{enumerate}{3}

% Configura il comportamento delle voci di livello 1
% NOTA: usiamo il contatore della lista "myitemsi"
\setlist[myitems, 1]
{label=\arabic{myitemsi}., %1., 2., 3., ...
leftmargin=\parindent,
rightmargin=10pt
}

% Configura il comportamento delle voci di livello 2
% NOTA: usiamo il contatore della lista "myitemsii"
\setlist[myitems, 2]
{label=\arabic{myitemsi}.\arabic{myitemsii}, %1.1, 1.2, 1.3...
leftmargin=15pt,
rightmargin=15pt}

% Configura il comportamento delle voci di livello 3
% NOTA: usiamo il contatore della lista "myitemsiii"
\setlist[myitems, 3]
% Usa un'etichetta del tipo 1.1:<kern>(a), 1.1:<kern>(b) ecc.
{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}
```

[Apri questo `enumitem` esempio su 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)

Questo esempio produce il seguente output:

![CustomItemizeList.png](/files/bb8baa1301672880b15379e7b54c6f1cccff8393)

#### Elenchi per avvocati: annidare elenchi a una profondità arbitraria

La `enumitem` package consente di creare elenchi che possono essere annidati a una profondità arbitraria, eliminando il limite di 4 di LaTeX. Chiunque prepari contratti con strutture di clausole complesse (annidate in profondità) potrebbe trarne vantaggio, anche se il codice annidato appare un po' intimidatorio...

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

\begin{document}

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

\section*{Elenco personalizzato annidato fino a 10 livelli di profondità!}

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

[Apri questo `enumitem` esempio su 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)

Questo esempio produce il seguente output:

![10levels.png](/files/47b756bc0a52d62a87aed67200426f52e131ff97)

#### Punti elenco personalizzati usando il pacchetto enumitem e MetaPost

I seguenti esempi funzionano solo con LuaLaTeX e sono pensati per dare un'idea di alcune possibilità—naturalmente, sostituisci MetaPost con la tua applicazione/strumento di disegno preferito!

Questi esempi usano il `luamplib` pacchetto e mostrano anche comandi espandibili, come `\the` e `\directlua`, che possono essere usati all'interno del codice MetaPost.

**Esempio 1: punti elenco con dimensionamento automatico**

Questo esempio produce punti elenco che si riducono di dimensione man mano che aumenta la profondità dell'elenco. Fai clic sul link “Open in Overleaf” per eseguire l'esempio e visualizzare il codice completo.

```latex
% Dichiara un nuovo elenco basato su itemize tramite enumitem
\newlist{myEnumerate}{itemize}{6}

% L'opzione nosep rimuove tutto lo spazio verticale
% label=\protect\mpbullet fa sì che tutti i punti elenco vengano
% disegnati da una macro che usa codice MetaPost. \protect
% è richiesto, come indicato nel manuale di enumitem

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

\begin{myEnumerate}
\item Livello 1
  \begin{myEnumerate}
   \item Livello 2
    \begin{myEnumerate}
     \item Livello 3
      \begin{myEnumerate}
       \item Livello 4
        \begin{myEnumerate}
         \item Livello 5
          \begin{myEnumerate}
           \item Livello 6
           \end{myEnumerate}
        \end{myEnumerate}
       \end{myEnumerate}
    \end{myEnumerate}
   \end{myEnumerate}
\end{myEnumerate}
```

[Per vedere il ***codice completo***, apri questo esempio LuaLaTeX in 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)

Questo esempio produce il seguente output:

![Autosize.png](/files/5d7631f211a7514cb33ace357cfea93f0832bd05)

**Esempio 2: punti elenco personalizzati fantasiosi**

Questo esempio è stato ispirato da un [esempio su tex.stackexchange](https://tex.stackexchange.com/a/313337) che Overleaf ha modificato per creare punti elenco personalizzati usando codice MetaPost. Fai clic sul link “Open in Overleaf” per eseguire l'esempio e vedere il codice completo.

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

\begin{itemize}
  \item Inizia a pensare a ciò che speriamo di ottenere
  \begin{todolist}
  \item[\mpdot] Identifica gli obiettivi
  \item[\mpyingyang] Bilancia l'impatto ambientale
  \item[\mpsquare{0}{5}{0}] Implementa i piani
    \begin{todolist}
    \item[\mpsquare{-0.5}{4}{0}] Piani della fase 1
    \item[\mpsquare{-0.5}{4}{-20}] Piani della fase 2
    \item[\mpsquare{-0.5}{4}{-40}] Piani della fase 3
    \item[\mpsquare{-0.5}{4}{-60}] Piani della fase 4
    \end{todolist}
  \end{todolist}
\end{itemize}
```

[Per vedere il ***codice completo***, apri questo esempio LuaLaTeX in 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)

Questo esempio produce il seguente output:

![CustomBullets2.png](/files/af688795bf4c1658ee70f48a0c6e6d8310e72c25)

## Altre funzionalità del pacchetto enumitem

Come notato, il `enumitem` package è estremamente versatile e offre numerose funzionalità per usare e personalizzare gli elenchi. Ad esempio, tra le funzionalità che non abbiamo trattato ci sono:

* riferimento alle voci dell'elenco: per esempio, vedi questa [domanda ed esempio su tex.stackexchane](https://tex.stackexchange.com/questions/524822/help-for-formatting-the-ref-of-nested-enumerate)
* controllare `enumerate` la numerazione degli elenchi:
  * impostare il numero iniziale del primo elemento
  * continuare la numerazione di diversi `enumerate` elenchi

E molti altri! Esplora [tex.stackexchange per trovare molti ottimi esempi](https://tex.stackexchange.com/questions/tagged/enumitem) di ciò che puoi fare tramite `enumitem`—e, naturalmente, [leggi la documentazione del pacchetto](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://ayakaleaf-pro.ayaka.space/latex/it/concetti-di-base-di-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.
