Que sont les environnements #

Les environnements ont été mis en place avec ils effectuent une action sur la totalité d’un bloc délimité dans le document plutôt que d’agir en un point donné de votre document.

1.  Environnement sans paramètre#

Un environnement simple pourrait changer la police utilisée pour une partie du texte. En voici un exemple de définition avec la commande dédiée, \newenvironment :

\newenvironment{chassefixe}%
  {% Code exécuté au début de l'environnement
   \ttfamily}%
  {% Code exécuté en fin d'environnement
  }

L’environnement chassefixe ainsi défini peut ensuite être utilisé de la manière suivante :

\documentclass{article}
  \usepackage{lmodern}
  \pagestyle{empty}

\newenvironment{chassefixe}%
  {\ttfamily}%
  {}

\begin{document}
Voici un exemple%
\begin{chassefixe}
de texte à chasse fixe.
\end{chassefixe}
\end{document}

Certains environnements s’avèrent autrement plus complexes tel document. Simple d’usage, il n’en appelle pas moins des codes peu évidents. De fait, la plupart des environnements sont plus élaborés que chassefixe et beaucoup plus simples que document.

Un environnement place son contenu dans un groupe de sorte que les commandes utilisées à l’intérieur de l’environnement « ne s’en échappent pas ». Ainsi, l’environnement chassefixe, ci-dessus, restreint son effet à son propre contenu (ce qui figure entre \begin{chassefixe} et \end{chassefixe}), ce qui correspond exactement à notre besoin.

Astuce

Certains environnements simples ne nous font pas gagner beaucoup de temps en matière de saisie. De fait, notre environnement chassefixe pourrait être remplacé par :

Voici un exemple {\ttfamily de texte à chasse fixe.}

Cependant, ces environnements :

  • peuvent rendre votre code plus lisible ;

  • permettent de mieux gérer la mise en forme de votre document. Ainsi, modifier la définition de votre environnement modifiera la mise en forme de tous les environnements présents dans votre document.

2.  Environnement avec paramètres#

permet également d’utiliser des paramètres avec les environnements. Voici un exemple d’environnement demandant un paramètre :

\newenvironment{blocfonte}[1]%
  {#1\selectfont}%
  {}

Cet environnement s’utilise alors ainsi (et produit ici le même résultat que l’environnement chassefixe vu plus haut) :

Voici un exemple%
\begin{blocfonte}{\ttfamily}
de texte à chasse fixe.
\end{blocfonte}

3.  Les paramètres optionnels#

Les environnements peuvent également avoir des paramètres optionnels, à l’image des commandes. Voici un exemple :

\newenvironment{textespecial}[1][\itshape]%
  {#1}%
  {}

En temps normal, cet environnement compose son contenu en italique mais, dès qu’un paramètre lui est transmis, il modifie la mise en forme (ici, une nouvelle fois pour restituer la mise en forme obtenue avec chassefixe) :

Voici un exemple%
\begin{textespecial}{\ttfamily}
de texte à chasse fixe.
\end{textespecial}

4.  Pour aller plus loin#

Pour plus de détails sur les possibilités de la commande \newenvironment, vous pouvez consulter la question « Que font \newenvironment et \renewenvironment ? ».