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

# Listes

## Trois façons d'insérer des listes dans Overleaf

Overleaf propose 3 façons de créer des listes avec LaTeX :

1. Utiliser **Insérer une liste à puces** (![Image of the menu icon for insert a bulleted list in Overleaf](/files/3cd9814567fdb3b86bd21b06a06895c63147ad53)) ou **Insérer une liste numérotée** (![Image of the menu icon for insert a numbered list in Overleaf](/files/9b52944adfbd62ec771c0c0498d42493df4e00b6)) dans la barre d'outils de l'éditeur pour insérer des listes dans **Éditeur visuel** ou **Éditeur de code**.
2. [Collez une liste formatée dans **Éditeur visuel**](/latex/fr/base-de-connaissances/075-how-to-paste-formatted-content-into-overleaf.md#pasteformattedlist).
3. Rédigez votre propre code LaTeX en utilisant **Éditeur de code**.

Les options 1 et 2 sont conçues pour générer automatiquement le code LaTeX nécessaire à la composition des listes. Cependant, pour ceux qui souhaitent écrire leur propre code LaTeX, l'option 3 peut être le choix privilégié. Elle offre la plus grande flexibilité et constitue l'objectif principal de cet article.

## Introduction

Cet article présente une introduction à la composition typographique et à la personnalisation de différents types de listes en LaTeX :

* le `itemize` environnement pour créer une liste à puces (non ordonnée)
* le `enumerate` environnement pour créer une liste numérotée (ordonnée)
* le `description` environnement pour créer une liste de descriptions

La composition des listes est un vaste sujet car les listes LaTeX sont *extrêmement* configurables, ce qui permet de créer une énorme variété de types et de structures de listes. Nous passerons en revue et montrerons quelques méthodes que vous pouvez utiliser pour [configurer et personnaliser vos listes](#customizing-lists).

## Exemples de listes de base

### L'environnement itemize pour les listes à puces (non ordonnées)

Les listes non ordonnées (à puces) sont produites par l' `itemize` environnement, où chaque entrée de liste commence en utilisant la `\item` commande, qui génère également le symbole de puce.

```latex
Les listes sont faciles à créer :
\begin{itemize}
  \item Les entrées de liste commencent par la commande \verb|\item|.
  \item Les entrées individuelles sont indiquées par un point noir, appelé puce.
  \item Le texte des entrées peut être de n'importe quelle longueur.
\end{itemize}
```

[Ouvrez cet exemple dans 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)

Cet exemple produit le résultat suivant :

![List1bOLV2.png](/files/41f6c0e2f91c0dbb67f86785ee13d89133b143b2)

### L'environnement enumerate pour les listes numérotées (ordonnées)

Les listes numérotées (ordonnées) ont la même syntaxe, mais utilisent l' `enumerate` environnement : chaque entrée doit être précédée de la séquence de contrôle `\item`, qui générera automatiquement des nombres pour étiqueter l'élément. Ces nombres commencent à 1 à chaque utilisation de l' `enumerate` environnement — notez que ce comportement de numérotation par défaut de LaTeX peut être modifié/contrôlé via le [`enumitem` package](https://ctan.org/pkg/enumitem).

```latex
Les listes numérotées (ordonnées) sont faciles à créer :
\begin{enumerate}
  \item Les éléments sont numérotés automatiquement.
  \item Les nombres commencent à 1 à chaque utilisation de l'environnement \texttt{enumerate}.
  \item Une autre entrée dans la liste
\end{enumerate}
```

[Ouvrez cet exemple dans 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)

Cet exemple produit le résultat suivant :

![List2OLV2.png](/files/1efe09f20adaabf04e4c3d651940f0eb2ceb98c7)

### L'environnement description

L’exemple suivant montre les `description` environnement. L'étiquette (facultative) de chaque entrée est placée entre crochets après la `\item` commande :

```latex
\item[label text] Le texte de votre description va ici...
```

Nous utilisons également le `blindtext` package pour générer du faux texte en anglais dans la troisième entrée. Pour obtenir de l'anglais, nous devons utiliser le `paquets babel` package avec l'option de langue `[english]`:

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

Voici l'exemple :

```latex
\documentclass{article}
\usepackage[english]{babel} % Pour obtenir du texte en anglais avec le package blindtext
\usepackage{blindtext}
\begin{document}

\begin{description}
   \item Ceci est une entrée \textit{sans} étiquette.
   \item[Something short] Une courte description en une ligne.
   \item[Something long] Une description beaucoup plus longue. \blindtext[1]
\end{description}
\end{document}
```

[Ouvrez cet exemple dans 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)

Cet exemple produit le résultat suivant :

![Descriptionlist2.png](/files/047545054dc2be3fad847488955841e8dbe2b493)

## Modifier l'étiquette des entrées individuelles

Comme indiqué dans l' `description` exemple d'environnement, la `\item` commande prend un paramètre facultatif, entre crochets. Vous pouvez utiliser cette fonctionnalité dans les `itemize` et `enumerate` environnements pour modifier l'étiquette par défaut des entrées individuelles de votre liste :

```latex
\item[label text] Le texte de votre entrée va ici...
```

Le `texte de l'étiquette` sera utilisé pour produire l'étiquette de cette entrée.

```latex
Modifiez les étiquettes à l'aide de \verb|\item[label text]| dans un environnement \texttt{itemize}
\begin{itemize}
  \item C'est mon premier point
  \item Un autre point que je veux souligner
  \item[!] Un point pour s'exclamer !
  \item[$\blacksquare$] Exprimez le point de façon claire et nette.
  \item[NOTE] Cette entrée n'a pas de puce
  \item[] Une étiquette vide ?
\end{itemize}

\vspace{10pt}

Modifiez les étiquettes à l'aide de \verb|\item[label text]| dans un environnement \texttt{enumerate}
\begin{enumerate}
  \item C'est mon premier point
  \item Un autre point que je veux souligner
  \item[!] Un point pour s'exclamer !
  \item[$\blacksquare$] Exprimez le point de façon claire et nette.
  \item[NOTE] Cette entrée n'a pas de puce
  \item[] Une étiquette vide ?
\end{enumerate}
```

[Ouvrez cet exemple dans 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)

Cet exemple produit le résultat suivant :

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

## Listes imbriquées

En LaTeX, vous pouvez insérer une liste dans une autre liste. Les types de listes ci-dessus peuvent être inclus les uns dans les autres, mélangés ou d'un seul type, jusqu'à une profondeur de 4 niveaux.

```latex
\begin{enumerate}
   \item Les étiquettes se composent de nombres séquentiels
   \begin{itemize}
     \item Les entrées individuelles sont indiquées par un point noir, appelé puce
     \item Le texte des entrées peut être de n'importe quelle longueur
     \begin{description}
     \item[Note :] J'aimerais décrire quelque chose ici
     \item[Attention !] Et donner un avertissement ici
     \end{description}
   \end{itemize}
   \item Les nombres commencent à 1 à chaque utilisation de l'environnement \texttt{enumerate}
\end{enumerate}
```

[Ouvrez cet exemple dans 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)

Cet exemple produit le résultat suivant :

![List3bOLV2.png](/files/e8cb661322207038edeba347279bf63ebedca6fb)

### Listes imbriquées : style des étiquettes

Le style des étiquettes des entrées de listes imbriquées change selon la profondeur dans la liste. Pour les `itemize` listes, le type de puce change ; pour les `enumerate` listes, le format des nombres change avec l'augmentation de la profondeur de l'entrée. Les deux sont limités à une profondeur de 4 niveaux.

#### Listes enumerate imbriquées : format des nombres

```latex
\begin{enumerate}
   \item Élément de premier niveau
   \item Élément de premier niveau
   \begin{enumerate}
     \item Élément de deuxième niveau
     \item Élément de deuxième niveau
     \begin{enumerate}
       \item Élément de troisième niveau
       \item Élément de troisième niveau
       \begin{enumerate}
         \item Élément de quatrième niveau
         \item Élément de quatrième niveau
       \end{enumerate}
     \end{enumerate}
   \end{enumerate}
 \end{enumerate}
```

[Ouvrez cet exemple dans 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)

Cet exemple produit le résultat suivant :

![List4OLV2.png](/files/0cbb5fa35b2908a50ebaddd634bc8b6b6b055bae)

#### Listes itemize imbriquées : style des puces

Le style des puces change selon la profondeur des listes imbriquées :

```latex
\begin{itemize}
   \item Élément de premier niveau
   \item Élément de premier niveau
   \begin{itemize}
     \item Élément de deuxième niveau
     \item Élément de deuxième niveau
     \begin{itemize}
       \item Élément de troisième niveau
       \item Élément de troisième niveau
       \begin{itemize}
         \item Élément de quatrième niveau
         \item Élément de quatrième niveau
       \end{itemize}
     \end{itemize}
   \end{itemize}
 \end{itemize}
```

[Ouvrez cet exemple dans 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)

Cet exemple produit le résultat suivant :

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

## Personnaliser les listes

Les listes LaTeX sont *très* configurables, offrant de nombreuses possibilités pour créer de nombreux types de listes personnalisées. Vous pouvez soit apporter des modifications directes aux types de listes standard de LaTeX, soit, *de préférence*, utiliser le très polyvalent [package enumitem](https://ctan.org/pkg/enumitem) pour le faire à votre place.

CTAN héberge un certain nombre de [packages liés aux listes](https://ctan.org/topic/list) qui méritent peut-être d'être examinés si vous avez des besoins de personnalisation particuliers. De plus, tex.stackexchange offre une multitude de [questions relatives aux listes](https://tex.stackexchange.com/questions/tagged/lists) avec des réponses qui apportent des éclairages utiles et de superbes exemples !

Nous commencerons par quelques exemples qui modifient les étiquettes des listes, puis nous passerons à la personnalisation de leur mise en page.

### Personnalisation des listes : modification des étiquettes

Tout d'abord, nous montrons comment modifier l'étiquetage des listes sans utiliser le [package enumitem](https://ctan.org/pkg/enumitem).

#### Commandes standard de génération d'étiquettes

Des listes personnalisées peuvent être produites en utilisant le [enumitem](https://ctan.org/pkg/enumitem) package ou en modifiant directement les listes standard. Ici, nous donnerons un résumé de certaines commandes LaTeX standard, variables de compteur et paramètres de liste dont vous pourriez avoir besoin.

Le tableau suivant montre les commandes LaTeX utilisées pour la génération des étiquettes à chaque niveau des `itemize` et `enumerate` environnements de liste :

|            |                                        |                                      |
| ---------- | -------------------------------------- | ------------------------------------ |
| **Niveau** | **`enumerate`** commandes d'étiquetage | **`itemize`** commandes d'étiquetage |
| Niveau 1   | `\labelenumi`                          | `\labelitemi`                        |
| Niveau 2   | `\labelenumii`                         | `\labelitemii`                       |
| Niveau 3   | `\labelenumiii`                        | `\labelitemiii`                      |
| Niveau 4   | `\labelenumiv`                         | `\labelitemiv`                       |

#### Variables de compteur pour enumerate

Le `enumerate` l'environnement de liste utilise également quatre *compteur* variables qui gardent la trace de la valeur actuelle de l'étiquette pour chaque niveau :

|            |                                      |
| ---------- | ------------------------------------ |
| **Niveau** | **`enumerate`** variable de compteur |
| Niveau 1   | `enumi`                              |
| Niveau 2   | `enumii`                             |
| Niveau 3   | `enumiii`                            |
| Niveau 4   | `enumiv`                             |

#### Exemples : personnalisation des étiquettes des listes enumerate

Vous pouvez configurer l'étiquetage standard de LaTeX en utilisant `\renewcommand` pour redéfinir les commandes générant les étiquettes et, pour l' `enumerate` environnement, vous pouvez également utiliser la variable de compteur appropriée.

Voici quelques exemples qui le font sans utiliser le `enumitem` package.

**Exemple pratique**

```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 Un
\item Deux
\item Trois
\begin{enumerate}
    \item Trois point un
    \begin{enumerate}
    \item Trois point un, point un
        \begin{enumerate}
        \item Trois point un, point un, point un
        \item Trois point un, point un, point deux
        \end{enumerate}
    \end{enumerate}
\end{enumerate}
\item Quatre
\item Cinq
\end{enumerate}

\end{document}
```

[Ouvrez cet exemple dans 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)

Cet exemple produit le résultat suivant :

![List9OLV2.png](/files/ab879ce1b721e72a3ed9b1a24c2edabb8b6386ad)

**Afficher les variables de compteur**

Dans l'exemple précédent, la commande `\arabic` a été utilisée pour composer la valeur actuelle de diverses *variables de compteur d'étiquettes*. Notez que « chiffres arabes » et l'utilisation de la commande `\arabic`, fait référence aux chiffres de 0 à 9 : voyez cet [article sur les chiffres arabes sur Wikipédia](https://en.wikipedia.org/wiki/Arabic_numerals) pour plus d'informations.

En général, une *variable de compteur* peut être affichée dans divers formats en utilisant l'une des 5 commandes suivantes :

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

Par exemple :

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

\end{document}
```

[Ouvrez cet exemple dans 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)

Cet exemple produit le résultat suivant :

![List8OLV2.png](/files/8e30a0a2df2c54a27d955a4aad096d77ace2979c)

**Exemple non pratique (amusant)**

Cet exemple compose des emoji à l'aide d'une police couleur OpenType, il ne fonctionnera donc *qu'avec LuaLaTeX*. Voir l'article Overleaf [Aperçu des technologies prenant en charge l'utilisation de polices emoji en couleur dans LaTeX](/latex/fr/articles-approfondis/10-an-overview-of-technologies-supporting-the-use-of-colour-emoji-fonts-in-latex.md) pour plus d'informations sur la composition des emoji.

Bien qu'il ne s'agisse que d'un exemple amusant utilisant LuaLaTeX, il montre comment personnaliser les quatre commandes de génération d'étiquettes et utiliser les variables de compteur d'étiquettes pour créer un étiquetage inhabituel... Cliquez sur le lien « Open in Overleaf » pour voir le code complet.

```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 canard
\item Plus de canards
\item Une volée de canards
\begin{enumerate}
    \item Des canards et des œufs
    \begin{enumerate}
    \item Est-ce que je vois...
    \item Des canards et des pré-canards
       \begin{enumerate}
       \item Oooh...
       \item Si mignon !
       \end{enumerate}
    \end{enumerate}
\end{enumerate}
\item Retour aux canards
\item À nouveau
\end{enumerate}
```

[Pour voir le ***code complet***, ouvrez cet exemple LuaLaTeX dans 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)

Cet exemple produit le résultat suivant

![Ducklist.png](/files/12ae061b3c3ec92dabaa2e006bbc9a7375bcd053)

### Personnalisation des listes : modification de la mise en page

En plus de personnaliser les étiquettes, il est possible de modifier l'espacement et la mise en page des listes, mais nous devons d'abord connaître les différents paramètres LaTeX qui déterminent la composition et la mise en page des listes.

#### Paramètres des listes LaTeX

Vous pouvez utiliser le [package layouts](https://ctan.org/pkg/layouts?lang=en) pour générer un schéma affichant les paramètres des listes LaTeX :

```latex
\documentclass{article}
\usepackage{layouts}
\begin{document}
\begin{figure}
\listdiagram
\caption{Les paramètres \LaTeX{} qui définissent la composition et la mise en page des listes.}
\end{figure}
\end{document}
```

[Ouvrez cet exemple dans 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)

Cet exemple produit le résultat suivant :

![](/files/0eb9aa214ae5e3c35716d4b0b65c2cc5687f2328)

La signification de ces paramètres est décrite dans [la section consacrée aux listes du manuel de référence non officiel de LaTeX2e](https://tug.org/texinfohtml/latex2e.html#list) donc nous ne la reproduirons pas ici.

#### Créer une liste personnalisée à l'aide de l'environnement list

LaTeX fournit le générique `list` environnement qui fournit un cadre pour créer votre ou vos propres types de listes. En utilisant les informations contenues dans le schéma ci-dessus, l'exemple suivant est une version légèrement modifiée de celui contenu dans la [section consacrée aux listes](https://tug.org/texinfohtml/latex2e.html#list) du [manuel de référence officieux de LaTeX2e](https://tug.org/texinfohtml/latex2e.html)

```latex
\documentclass{article}
\begin{document}
\newcounter{boxlblcounter}
\newcommand{\makeboxlabel}[1]{\fbox{#1.}\hfill}% \hfill fills the label box
\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}{Hello, here is some text without a meaning. Hello, here is some text without a meaning. Hello, here is some text without a meaning.}

\noindent\randomtext

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

[Ouvrez cet exemple dans 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)

Cet exemple produit le résultat suivant :

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

### Utiliser le package enumitem pour modifier et créer des listes

Le [`enumitem` package](https://ctan.org/pkg/enumitem?lang=en) est la méthode recommandée pour modifier les listes LaTeX standard ou créer vos propres formats de listes personnalisés. `enumitem` offre une *grande richesse* de fonctionnalités, donc nous ne pouvons pas toutes les couvrir, mais nous pouvons fournir quelques exemples de base pour vous aider à démarrer. Toute personne souhaitant explorer plus en profondeur ce package polyvalent est *fortement* encouragée à parcourir tex.stackexchange pour [des questions, des réponses (et des exemples) liés à `enumitem` package](https://tex.stackexchange.com/questions/tagged/enumitem), et à lire le [documentation du paquet](http://mirrors.ctan.org/macros/latex/contrib/enumitem/enumitem.pdf).

#### l'option shortlabels du package enumitem

Le `enumitem` fournit un paramètre de configuration facultatif appelé `shortlabels` que vous utilisez via

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

Le `shortlabels` option imite le comportement du `enumerate` package, en fournissant une méthode concise pour définir le schéma de numérotation des environnements enumerate. Voir le [`enumerate` documentation du paquet](https://ctan.org/pkg/enumerate?lang=en) pour plus d’informations.

#### Modifier une liste standard

En référence au [schéma des paramètres LaTeX](#latex-list-parameters) nous pouvons utiliser `enumitem` pour personnaliser facilement une liste LaTeX standard, telle que `itemize`:

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

\begin{document}

\newcommand{\randomtext}{Hello, here is some text without a meaning. Hello, here is some text without a meaning.}

\section*{Utilisation des paramètres par défaut de LaTeX pour \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*{Utilisation d'un \texttt{itemize} personnalisé via \texttt{enumitem}}

\subsection*{Notez l'effet des paramètres de marge gauche et droite}

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

[Ouvrez cet `enumitem` exemple dans 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)

Cet exemple produit le résultat suivant :

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

#### Créer une nouvelle liste avec enumitem

Pour créer un nouveau type de liste avec `enumitem` vous utilisez la `\newlist` commande qui nécessite 3 arguments :

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

* **`nom`** : le nom de votre liste, à utiliser comme environnement :

  ```
  \begin{name}
  ...
  \end{name}
  ```
* **`type de liste`** cela doit être l'un des types de liste LaTeX standard :
* `enumerate`
* `itemize`
* `description`
* **`profondeur maximale`** : la profondeur maximale d'imbrication de cette liste. **REMARQUE** pour les listes qui dépassent la limite d'imbrication par défaut de 4 de LaTeX, vous devez également exécuter la commande `\setlistdepth{*integer*}` où `*entier*` est la profondeur maximale d'imbrication que vous avez l'intention d'utiliser. Voir le [Listes pour avocats](#lists-for-lawyers-nesting-lists-to-an-arbitrary-depth) exemple pour une démonstration de cela.

Une fois la nouvelle liste créée, vous pouvez la configurer avec le `\setlist` commande.

**Utiliser \setlist pour configurer une liste personnalisée créée avec enumitem**

Dans cet exemple, nous allons créer une nouvelle liste appelée `myitems` qui est basé sur `enumerate`. Nous allons définir [`**profondeur maximale**`](#maxdepth) à 3 :

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

Une exigence minimale est d'utiliser la `\setlist` commande pour définir les étiquettes de cette liste personnalisée. Une façon de le faire, pour les listes basées sur enumerate, consiste à utiliser les variables de compteur créées par le `enumitem` package — ces variables de compteur utilisent le `**nom**` de votre liste : `myitems` dans notre exemple.

Voici comment nous utilisons les variables de compteur correspondantes dans notre configuration d'étiquette :

* `myitems**i**` pour les entrées de niveau 1
* `myitems**ii**` pour les entrées de niveau 2
* `myitems**iii**` pour les entrées de niveau 3

Si nous avions plus de 3 niveaux, les variables de compteur correspondantes s'appelleraient `myitems**iv**` (niveau 4), `myitems**v**` (niveau 5) et ainsi de suite, en continuant à utiliser des chiffres romains en minuscules.

En plus des étiquettes, nous définirons également certaines valeurs pour `leftmargin` et `rightmargin` (voir le [schéma des paramètres LaTeX](#latex-list-parameters)).

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

\newcommand{\randomtext}{Hello, here is some text without a meaning. Hello, here is some text without a meaning.}

\newcommand{\shortrandomtext}{Bonjour, voici un peu de texte.}
% Créer une liste personnalisée basée sur enumerate
% Elle s'appelle « myitems »
% Nous allons créer une liste de 3 niveaux de profondeur
\newlist{myitems}{enumerate}{3}

% Configurer le comportement des entrées de niveau 1
% REMARQUE : nous utilisons le compteur de liste « myitemsi »
\setlist[myitems, 1]
{label=\arabic{myitemsi}., %1., 2., 3., ...
leftmargin=\parindent,
rightmargin=10pt
}

% Configurer le comportement des entrées de niveau 2
% REMARQUE : nous utilisons le compteur de liste « myitemsii »
\setlist[myitems, 2]
{label=\arabic{myitemsi}.\arabic{myitemsii}, %1.1, 1.2, 1.3...
leftmargin=15pt,
rightmargin=15pt}

% Configurer le comportement des entrées de niveau 3
% REMARQUE : nous utilisons le compteur de liste « myitemsiii »
\setlist[myitems, 3]
% Utiliser une étiquette 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}
```

[Ouvrez cet `enumitem` exemple dans 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)

Cet exemple produit le résultat suivant :

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

#### Listes pour les juristes : imbriquer des listes à une profondeur arbitraire

Le `enumitem` package vous permet de créer des listes qui peuvent être imbriquées à une profondeur arbitraire, supprimant la limite de 4 de LaTeX. Toute personne préparant des contrats avec des structures de clauses complexes (profondément imbriquées) pourrait en tirer profit, même si le code imbriqué a l'air un peu intimidant...

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

\begin{document}

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

\section*{Liste personnalisée imbriquée sur 10 niveaux de profondeur !}

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

[Ouvrez cet `enumitem` exemple dans 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)

Cet exemple produit le résultat suivant :

![10levels.png](/files/b080168094baf312a39e14256738c003030ffc96)

#### Puces personnalisées à l'aide du package enumitem et de MetaPost

Les exemples suivants ne fonctionnent qu'avec LuaLaTeX et sont conçus pour donner une idée de certaines possibilités — bien sûr, remplacez MetaPost par l'application/l'outil de dessin de votre choix !

Ces exemples utilisent le `luamplib` package et montrent également que des commandes développables, telles que `\the` et `\directlua`, peuvent être utilisées dans le code MetaPost.

**Exemple 1 : puces à dimensionnement automatique**

Cet exemple produit des puces qui réduisent leur taille à mesure que la profondeur de la liste augmente. Cliquez sur le lien « Ouvrir dans Overleaf » pour exécuter l'exemple et afficher le code complet.

```latex
% Déclarer une nouvelle liste basée sur itemize via enumitem
\newlist{myEnumerate}{itemize}{6}

% L'option nosep supprime tout espacement vertical
% le label=\protect\mpbullet fait en sorte que toutes les puces soient
% dessinées par une macro qui utilise du code MetaPost. \protect
% est nécessaire comme indiqué dans le manuel d'enumitem

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

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

[Pour voir le ***code complet***, ouvrez cet exemple LuaLaTeX dans 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)

Cet exemple produit le résultat suivant :

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

**Exemple 2 : puces personnalisées originales**

Cet exemple s'inspire d'un [exemple sur tex.stackexchange](https://tex.stackexchange.com/a/313337) qu'Overleaf a modifié pour créer des puces personnalisées à l'aide de code MetaPost. Cliquez sur le lien « Ouvrir dans Overleaf » pour exécuter l'exemple et afficher le code complet.

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

\begin{itemize}
  \item Commencer à réfléchir à ce que nous espérons accomplir
  \begin{todolist}
  \item[\mpdot] Identifier les objectifs
  \item[\mpyingyang] Équilibrer l'impact environnemental
  \item[\mpsquare{0}{5}{0}] Mettre en œuvre les plans
    \begin{todolist}
    \item[\mpsquare{-0.5}{4}{0}] Plans de la phase 1
    \item[\mpsquare{-0.5}{4}{-20}] Plans de la phase 2
    \item[\mpsquare{-0.5}{4}{-40}] Plans de la phase 3
    \item[\mpsquare{-0.5}{4}{-60}] Plans de la phase 4
    \end{todolist}
  \end{todolist}
\end{itemize}
```

[Pour voir le ***code complet***, ouvrez cet exemple LuaLaTeX dans 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)

Cet exemple produit le résultat suivant :

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

## Autres fonctionnalités du package enumitem

Comme indiqué, le `enumitem` package est extrêmement polyvalent et offre de nombreuses fonctionnalités pour utiliser et personnaliser les listes. Par exemple, les fonctionnalités que nous n'avons pas abordées comprennent :

* la référence aux entrées de liste : par exemple, voir cette [question et cet exemple sur tex.stackexchange](https://tex.stackexchange.com/questions/524822/help-for-formatting-the-ref-of-nested-enumerate)
* le contrôle de `enumerate` la numérotation des listes :
  * définir le numéro de départ du premier élément
  * poursuivre la numérotation de différentes `enumerate` listes

Et bien d'autres encore ! Parcourez [tex.stackexchange pour trouver de nombreux excellents exemples](https://tex.stackexchange.com/questions/tagged/enumitem) de ce que vous pouvez faire via `enumitem`— et, bien sûr, [lisez la documentation du package](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/fr/bases-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.
