> 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/commandes/02-environments.md).

# Environnements

Les environnements LaTeX sont utilisés pour appliquer un ou plusieurs effets de composition typographique à une section du contenu de votre document. Cet article explique comment utiliser des environnements existants et en définir de nouveaux.

## Introduction

Un environnement commence par `\begin{name}` et se termine par `\end{name}`:

```
\begin{name}
Votre contenu ici...
...va ici...
\end{name}
```

où « `nom` » est le nom de l'environnement utilisé — comme dans l'exemple suivant utilisant « `center` » pour mettre en forme (centrer) un paragraphe de texte :

```latex
\documentclass{article}
\begin{document}
\begin{center}
Ceci est une démonstration de l'environnement \texttt{center}.
Ce paragraphe de texte sera \textit{centré} parce qu'il est
contenu dans un environnement spécial. Les environnements offrent
un moyen efficace de modifier des blocs de texte dans votre document.
\end{center}
\end{document}
```

[Ouvrez cet exemple dans Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Simple+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bcenter%7D%0AThis+is+a+demonstration+of+the+%5Ctexttt%7Bcenter%7D+environment.+%0AThis+paragraph+of+text+will+be+%5Ctextit%7Bcentred%7D+because+it+is+%0Acontained+within+a+special+environment.+Environments+provide+%0Aan+efficient+way+to+modify+blocks+of+text+within+your+document.%0A%5Cend%7Bcenter%7D%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![Image montrant l'alignement centré](/files/795be57bc58ad9a794fb56682d288fcc7cb47ca4)

## Environnements

L'exemple suivant utilise l'environnement  `tabular` pour composer un petit tableau. `tabular` prend un argument supplémentaire `{ c c c }` qui définit l'alignement des cellules — voir l' [article sur les tableaux](/latex/fr/figures-et-tableaux/01-tables.md) pour plus d'informations.

```latex
\documentclass{article}
\begin{document}
\begin{tabular}{ c c c }
  cellule1 & cellule2 & cellule3 \\
  cellule4 & cellule5 & cellule6 \\
  cellule7 & cellule8 & cellule9 \\
 \end{tabular}
\end{document}
```

[Ouvrez cet exemple dans Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Simple+tabular+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btabular%7D%7B+c+c+c+%7D+%0A++cell1+%26+cell2+%26+cell3+%5C%5C+%0A++cell4+%26+cell5+%26+cell6+%5C%5C+%0A++cell7+%26+cell8+%26+cell9+%5C%5C+%0A+%5Cend%7Btabular%7D%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![Exemple de l'environnement tabular](/files/b3af20b94b3947c6b4a25e025ec12177ab01be76)

Certains environnements acceptent des arguments facultatifs, généralement passés entre crochets (`[...]`).

## Définition d'un nouvel environnement

Pour définir un nouvel environnement, utilisez la `\newenvironment` commande qui a la forme générale suivante :

```
\newenvironment{name}[numarg][optarg_default]{begin_def}{end_def}
```

où :

* `nom` est le nom de cet argument défini par l'utilisateur ;
* `numarg` est le nombre d'arguments, de 1 à 9, acceptés par cet environnement. Si `[numarg]` est omis, alors l'environnement n'accepte aucun argument — comme l' [`boxed` environnement défini dans l'exemple suivant](#defining-simple-environments);
* `optarg_default` prend un argument facultatif et fournit une valeur par défaut — c'est-à-dire la valeur utilisée si aucune valeur d'argument facultatif n'est fournie ;
* `begin_def` est du code LaTeX exécuté au démarrage de l'environnement (ouverture), c'est-à-dire lorsque vous écrivez `\begin{name}`. Dans ce code, vous pouvez utiliser les arguments acceptés par l'environnement — notez que l'argument facultatif est #1 et que les autres arguments sont accessibles de #2 à #numarg ;
* `end_def` est du code LaTeX exécuté à la fin de l'environnement (fermeture) ; c'est-à-dire lorsque vous écrivez `\end{name}`. Vous ne pouvez utiliser aucun des arguments dans cette section du code.

### Définition d'environnements simples

Dans ce premier exemple, nous définissons l' `boxed` environnement qui ne prend aucun argument. Il dessine une boîte autour du texte contenu dans l'environnement :

```latex
\documentclass{article}
%Nous pouvons définir l'environnement dans le préambule
\newenvironment{boxed}
    {\begin{center}
    \begin{tabular}{|p{0.9\textwidth}|}
    \hline\\
    }
    {
    \\\\\hline
    \end{tabular}
    \end{center}
    }
%
\begin{document}
Nous pouvons maintenant utiliser l'environnement \texttt{boxed} dans notre document :

\begin{boxed}
Ce texte est formaté dans l'environnement \texttt{boxed}.
\end{boxed}

Ce texte est composé en dehors de l'environnement \texttt{boxed}.
\end{document}
```

[Ouvrez cet exemple dans Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Creating+a+new+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%25We+can+define+the+environment+in+the+preamble%0A%5Cnewenvironment%7Bboxed%7D%0A++++%7B%5Cbegin%7Bcenter%7D%0A++++%5Cbegin%7Btabular%7D%7B%7Cp%7B0.9%5Ctextwidth%7D%7C%7D%0A++++%5Chline%5C%5C%0A++++%7D%0A++++%7B+%0A++++%5C%5C%5C%5C%5Chline%0A++++%5Cend%7Btabular%7D+%0A++++%5Cend%7Bcenter%7D%0A++++%7D%0A%25%0A%5Cbegin%7Bdocument%7D%0ANow+we+can+use+the+%5Ctexttt%7Bboxed%7D+environment+in+our+document%3A%0A%0A%5Cbegin%7Bboxed%7D%0AThis+text+is+formatted+within+the+%5Ctexttt%7Bboxed%7D+environment.%0A%5Cend%7Bboxed%7D%0A%0AThis+text+is+typeset+outside+the+%5Ctexttt%7Bboxed%7D+environment.%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![Démonstration d'un environnement LaTeX personnalisé](/files/94df72fccca31c720418ca2a2b99392ec6993d92)

Si nous comparons notre définition de `boxed` avec la forme générale de `\newenvironment` nous pouvons voir :

* `nom` est `boxed`;
* ni `[numarg]` ou `[optarg_default]` ne sont fournis car cet environnement ne prend aucun argument ;
* `begin_def` est le code LaTeX — fourni entre une paire d'accolades `{...}`— qui est exécuté lorsque l'environnement *démarre* (s'ouvre) :

```latex
\begin{center}
    \begin{tabular}{|p{0.9\textwidth}|}
    \hline\\
```

* `end_def` est le code LaTeX — fourni entre une paire d'accolades `{...}`— qui est exécuté lorsque l'environnement *s'arrête* (se ferme) :

```latex
    \\\\\hline
    \end{tabular}
    \end{center}
```

Dans l'exemple, `begin_def` commence un `center` environnement et, à l'intérieur de celui-ci, un `tabular` environnement est ouvert pour tracer des lignes verticales et une ligne horizontale autour du texte que nous plaçons dans l'environnement. `end_def` trace une autre ligne horizontale puis ferme les `tabular` et `center` environnements.

### Définition d'environnements qui prennent des arguments

Améliorons l'exemple précédent pour faire ce qui suit :

* utiliser un argument facultatif pour composer un titre. Si aucun titre n'est fourni, utiliser la valeur par défaut `Ceci est une boîte`;
* utiliser un deuxième argument qui contient du contenu à composer avant le texte que nous fournissons dans l'environnement lui-même.

Nous avons donc 2 arguments :

* le premier (argument 1) est facultatif ;
* le second (argument 2) ne l'est pas.

Cela signifie `numarg`=2.

Nous pouvons utiliser la définition suivante de notre `boxed` environnement :

```latex
\newenvironment{boxed}[2][This is a box]
    {\begin{center}
    Argument 1 (\#1)=#1\\[1ex]
    \begin{tabular}{{{!}}p{0.9\textwidth}{{!}}}
    \hline\\
    Argument 2 (\#2)=#2\\[2ex]
    }
    {
    \\\\\hline
    \end{tabular}
    \end{center}
    }
```

Cette version améliorée diffère de l'originale de la manière suivante :

* \[numarg] est présent et vaut 2 ;
* \[optarg\_default] est également présent, rendant le premier argument facultatif avec une valeur par défaut `Ceci est une boîte`.

L'exemple suivant montre quelques utilisations de notre `boxed` environnement :

```latex
\documentclass{article}
% Notez que la valeur par défaut du premier
% argument est fournie par [Ceci est une boîte]
\newenvironment{boxed}[2][This is a box]
    {\begin{center}
    Argument 1 (\#1)=#1\\[1ex]
    \begin{tabular}{|p{0.9\textwidth}|}
    \hline\\
    Argument 2 (\#2)=#2\\[2ex]
    }
    {
    \\\\\hline
    \end{tabular}
    \end{center}
    }
\begin{document}
\textbf{Exemple 1} : Utiliser la valeur par défaut pour le premier argument :

\begin{boxed}{Un texte préliminaire}
Ce texte est \textit{à l'intérieur} de l'environnement.
\end{boxed}

Ce texte est \textit{à l'extérieur} de l'environnement.

\vskip12pt

\textbf{Exemple 2} : Fournir une valeur pour le premier argument :

\begin{boxed}[Ce n'est pas la valeur par défaut]{Encore un texte préliminaire}
Ce texte est toujours \textit{à l'intérieur} de l'environnement.
\end{boxed}

Ce texte est aussi \textit{à l'extérieur} de l'environnement.
\end{document}
```

[Ouvrez cet exemple dans Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Environment+with+an+optional+argument\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Note+the+default+value+for+the+first%0A%25+argument+is+provided+by+%5BThis+is+a+box%5D%0A%5Cnewenvironment%7Bboxed%7D%5B2%5D%5BThis+is+a+box%5D%0A++++%7B%5Cbegin%7Bcenter%7D%0A++++Argument+1+%28%5C%231%29%3D%231%5C%5C%5B1ex%5D%0A++++%5Cbegin%7Btabular%7D%7B%7Cp%7B0.9%5Ctextwidth%7D%7C%7D%0A++++%5Chline%5C%5C%0A++++Argument+2+%28%5C%232%29%3D%232%5C%5C%5B2ex%5D%0A++++%7D%0A++++%7B+%0A++++%5C%5C%5C%5C%5Chline%0A++++%5Cend%7Btabular%7D+%0A++++%5Cend%7Bcenter%7D%0A++++%7D%0A%5Cbegin%7Bdocument%7D%0A%5Ctextbf%7BExample+1%7D%3A+Use+the+default+value+for+the+first+argument%3A%0A+%0A%5Cbegin%7Bboxed%7D%7BSome+preliminary+text%7D%0AThis+text+is+%5Ctextit%7Binside%7D+the+environment.%0A%5Cend%7Bboxed%7D%0A%0AThis+text+is+%5Ctextit%7Boutside%7D+the+environment.%0A%0A%5Cvskip12pt%0A%0A%5Ctextbf%7BExample+2%7D%3A+Provide+a+value+for+the+first+argument%3A%0A+%0A%5Cbegin%7Bboxed%7D%5BThis+is+not+the+default+value%5D%7BSome+more+preliminary+text%7D%0AThis+text+is+still+%5Ctextit%7Binside%7D+the+environment.%0A%5Cend%7Bboxed%7D%0A%0AThis+text+is+also+%5Ctextit%7Boutside%7D+the+environment.%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![Environnement avec un paramètre facultatif](/files/6d37d16dbe52ec7d2bafe0f536085f7102d52ac3)

### Environnements numérotés

Les environnements numérotés peuvent être créés soit manuellement soit directement avec la commande `\newtheorem`, comme le montre l'exemple suivant :

```latex
\documentclass{article}
% Définissez notre environnement numéroté dans le préambule
\newcounter{example}[section]
\newenvironment{example}[1][]{\refstepcounter{example}\par\medskip
   \noindent \textbf{Exemple~\theexample. #1} \rmfamily}{\medskip}

% Un autre environnement numéroté défini avec \newtheorem
\usepackage{amsmath} % Pour la commande \newtheorem
\newtheorem{SampleEnv}{Exemple d'environnement}[section]
\begin{document}

\section{Environnements numérotés définis par l'utilisateur}

\begin{example}
Premier environnement numéroté défini par l'utilisateur (numéro \theexample).
\end{example}

\begin{example}
Deuxième environnement numéroté défini par l'utilisateur (numéro \theexample).
\end{example}

\section{Davantage d'environnements numérotés définis par l'utilisateur}
Notez que la numérotation de l'exemple a recommencé à 1 :

\begin{example}
Premier environnement numéroté défini par l'utilisateur (numéro \theexample).
\end{example}

\begin{SampleEnv}
Environnement défini par l'utilisateur créé avec la commande \verb|\newtheorem|.
\end{SampleEnv}
\end{document}
```

[Ouvrez cet exemple dans Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Creating+a+numbered+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Define+our+numbered+environment+within+the+preamble%0A%5Cnewcounter%7Bexample%7D%5Bsection%5D%0A%5Cnewenvironment%7Bexample%7D%5B1%5D%5B%5D%7B%5Crefstepcounter%7Bexample%7D%5Cpar%5Cmedskip%0A+++%5Cnoindent+%5Ctextbf%7BExample%7E%5Ctheexample.+%231%7D+%5Crmfamily%7D%7B%5Cmedskip%7D%0A%0A%25+Another+numbered+environment+defined+with+%5Cnewtheorem%0A%5Cusepackage%7Bamsmath%7D+%25+For+the+%5Cnewtheorem+command%0A%5Cnewtheorem%7BSampleEnv%7D%7BSample+Environment%7D%5Bsection%5D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Csection%7BUser-defined+numbered+environments%7D%0A%0A%5Cbegin%7Bexample%7D%0AFirst+user-defined+numbered+environment+%28number+%5Ctheexample%29.%0A%5Cend%7Bexample%7D%0A%0A%5Cbegin%7Bexample%7D%0ASecond+user-defined+numbered+environment+%28number+%5Ctheexample%29.%0A%5Cend%7Bexample%7D%0A%0A%5Csection%7BMore+user-defined+numbered+environments%7D%0ANote+how+the+example+numbering+has+restarted+at+1%3A%0A%0A%5Cbegin%7Bexample%7D%0AFirst+user-defined+numbered+environment+%28number+%5Ctheexample%29.%0A%5Cend%7Bexample%7D%0A%0A%5Cbegin%7BSampleEnv%7D%0AUser-defined+environment+created+with+the+%5Cverb%7C%5Cnewtheorem%7C+command.%0A%5Cend%7BSampleEnv%7D%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![Exemple montrant des environnements numérotés définis par l'utilisateur](/files/6b38c871b739a42ba2afa351164f5c7069559ff4)

#### Quelques remarques

* Dans l'environnement `example` défini manuellement, la commande `\newcounter{example}[section]` crée un compteur, également appelé `example`. Le `example` compteur est :
  * incrémenté de 1 en utilisant `\refstepcounter{example}` dans la définition de l'environnement ;
  * réinitialisé chaque fois qu'une nouvelle `\section{...}` est commencée ;
  * une variable dont la valeur actuelle peut être composée avec `\theexample`. Voir [l'article sur les compteurs](/latex/fr/mise-en-forme/10-counters.md) pour en savoir plus.
* La commande `\newtheorem` crée directement un environnement numéroté et prend trois paramètres :
  * le nom du nouvel environnement : `SampleEnv` dans notre exemple ;
  * le texte à afficher en gras au début de la ligne : `Exemple d'environnement` dans notre exemple ;
  * un paramètre facultatif qui détermine quand le compteur est réinitialisé ; et s'il est utilisé, le compteur est précédé de la valeur de ce compteur de réinitialisation : `section` dans notre exemple.

Le [`amsthm` package](https://ctan.org/pkg/amsthm?lang=en), ainsi que `amsmath`, fournissent des définitions supplémentaires utiles en complément de `\newtheorem`; voir [Les théorèmes et les preuves](/latex/fr/specifique-a-un-domaine/01-theorems-and-proofs.md) pour plus de détails.

## Redéfinition d'environnements existants

Les environnements peuvent être redéfinis à l'aide de `\renewenvironment` dont la syntaxe est la même que celle de `\newenvironment`— voir la section [Définition d'un nouvel environnement](#defining-a-new-environment) pour une explication des différents paramètres :

```
\newenvironment{name}[numarg][optarg_default]{begin_def}{end_def}
```

L'exemple suivant redéfinit l' `itemize` environnement — ceci n'est qu'un exemple pour illustrer le processus, il ne doit pas être considéré dans un vrai document. Le nouvel `itemize` environnement ne produit plus de liste à puces ; à la place, il centre et met en emphase (en italique) le texte qu'il contient (en utilisant la `\em` commande).

```latex
\documentclass{article}
% Redéfinissez l'environnement dans le préambule
\renewenvironment{itemize}
{\begin{center}\em}
{\end{center}}
\begin{document}

\begin{itemize}
Nous avons redéfini l'environnement \texttt{itemize} afin que tout texte
à l'intérieur soit centré et mis en emphase (en italique). Il ne crée plus
une liste à puces — ceci n'est qu'un exemple et n'est pas destiné à être utilisé
dans de vrais documents !
\end{itemize}
\end{document}
```

[Ouvrez cet exemple dans Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Redefining+an+existing+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%25+Redefine+the+environment+in+the+preamble%0A%5Crenewenvironment%7Bitemize%7D%0A%7B%5Cbegin%7Bcenter%7D%5Cem%7D%0A%7B%5Cend%7Bcenter%7D%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Bitemize%7D%0AWe+have+redefined+the+%5Ctexttt%7Bitemize%7D+environment+so+that+any+text+%0Awithin+it+is+centred+and+emphasised+%28italicized%29.+It+no+longer+creates%0Aa+bulleted+list---this+is+only+an+example+and+not+intended+for+use+%0Ain+real+documents%21%0A%5Cend%7Bitemize%7D%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![Exemple avec un environnement itemize redéfini](/files/9e09102d81f95fdc60df595564ef8ef8689f9ac7)

## Lectures complémentaires

Pour plus d'informations, voir :

* [Commandes](/latex/fr/commandes/01-commands.md)
* [Comprendre les paquets et les fichiers de classe](/latex/fr/fichiers-de-classe/01-understanding-packages-and-class-files.md)
* [Écrire votre propre paquet](/latex/fr/fichiers-de-classe/03-writing-your-own-package.md)
* [Écrire votre propre classe](/latex/fr/fichiers-de-classe/04-writing-your-own-class.md)
* [Longueurs en LaTeX](/latex/fr/mise-en-forme/01-lengths-in-latex.md)
* [Utiliser les couleurs dans LaTeX](/latex/fr/mise-en-forme/13-using-colors-in-latex.md)
* [Taille de la page et marges](/latex/fr/mise-en-forme/07-page-size-and-margins.md)
* [Liste des paquets et des fichiers de classe](/latex/fr/fichiers-de-classe/02-overleaf-and-tex-live.md)
* [L'introduction pas si courte à LaTeX2ε](http://www.ctan.org/tex-archive/info/lshort/)
* [LaTeX/Creating\_Packages sur WikiBooks](http://en.wikibooks.org/wiki/LaTeX/Creating_Packages)


---

# 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/commandes/02-environments.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.
