> 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/figures-et-tableaux/04-picture-environment.md).

# Dessiner des diagrammes directement en LaTeX

## Introduction

L’environnement intégré de LaTeX `image` peut être utilisé pour créer des diagrammes/figures — vous n’avez pas *besoin* à charger de packages externes pour l’utiliser, mais des packages tels que [`pict2e`](https://ctan.org/pkg/pict2e?lang=en) et [`image`](https://ctan.org/pkg/picture) ont été écrits pour enrichir ou améliorer ses fonctionnalités.

Cet article fournit une introduction concise à l’ `image` environnement picture et tous les exemples utilisent le [`pict2e` package](https://ctan.org/pkg/pict2e?lang=en). Une documentation plus complète ainsi qu’une gamme d’exemples utiles sont facilement disponibles dans les ressources suivantes :

* [manuel de référence officieux de LaTeX2e](https://latexref.xyz/picture.html)
* [Une introduction pas si courte à LaTeX2ε](https://tobi.oetiker.ch/lshort/lshort.pdf) (voir le chapitre 5)
* [Wikibooks](https://en.wikibooks.org/wiki/LaTeX/Picture)
* [questions étiquetées `picture-mode` sur tex.stackexchange](https://tex.stackexchange.com/questions/tagged/picture-mode)
* [`pict2e` documentation du paquet](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/pict2e/pict2e.pdf)

Lorsqu’on les compare à des outils graphiques puissants et sophistiqués tels que [TikZ/PGF](https://en.wikipedia.org/wiki/PGF/TikZ), [MetaPost](https://tug.org/metapost.html), [PSTricks](https://ctan.org/topic/pstricks?lang=en) ou [Asymptote](https://ctan.org/pkg/asymptote?lang=en) le `image` L’environnement picture peut sembler assez limité mais, de temps en temps, il peut suffire pour ce que vous avez à faire.

## Créer une nouvelle image

Créer une nouvelle image implique généralement les étapes suivantes :

1. définir la taille des unités de dessin que vous souhaitez utiliser ;
2. déclarer un `image` environnement qui définit la taille de l’image ;
3. dessiner les différents composants graphiques à l’aide des `\put`, `\multiput` ou `\qbezier` commandes.

### Définir la taille des unités de dessin

Pour créer une image, vous commencez normalement par régler les *unités de dessin* à l’aide de la commande `\unitlength`, qui doit être utilisée en dehors d’un `image` environnement. Par exemple, si vous écrivez

```latex
\setlength{\unitlength}{1cm}
```

les unités de dessin seraient interprétées comme des multiples de 1 cm. L’unité par défaut est 1 pt.

### Définir la taille de votre image

La forme générale de l’ `image` environnement est la suivante

```latex
\begin{picture}(width, height)(Xoffset, Yoffset)
 ...
\end{picture}
```

où

* `largeur` et `hauteur` sont des valeurs, en unités de `\unitlength`, qui définissent la taille de l’image. LaTeX utilise ces valeurs pour créer une boîte dont les dimensions sont
  * largeur de la boîte (image) = `largeur` × `\unitlength`
  * hauteur de la boîte (image) = `hauteur` × `\unitlength`
* `(Xoffset, Yoffset)` est une coordonnée facultative qui définit l’origine (coin inférieur gauche) de l’image, exprimée comme un *décalage* par rapport à l’emplacement par défaut. `Xoffset` et `Yoffset` sont également exprimés en unités déterminées par la valeur actuelle de `\unitlength`.

Notez que `Xoffset` et `Yoffset` n’affectent pas l’espace que LaTeX réserve ; c’est-à-dire les dimensions de la boîte.

#### Comprendre les dimensions de l’image

Nous allons créer deux images, toutes deux utilisant `\setlength{\unitlength}{1cm}` et chacune avec un `largeur` et `hauteur` de 3 unités.

La première image utilise l’origine par défaut de `(0,0)`:

```latex
\begin{picture}(3,3)
...
\end{picture}
```

la deuxième image décale l’origine de `(1,1)`:

```latex
\begin{picture}(3,3)(1,1)
...
\end{picture}
```

### Dessin de graphiques

Les graphiques sont créés à l’aide d’une séquence de `\put`, `\multiput`, ou `\qbezier` commandes qui produisent les « composants » individuels (ou « objets ») à partir desquels l’image ou l’illustration est construite :

* `\put(x, y){*component*}` dessine le `*component*` à l’emplacement `(x, y)`.
* `\multiput(x, y)(dx, dy){n}{*component*}` dessine le `*component*` `n` fois : en commençant à l’emplacement `(x, y)` et en le déplaçant de façon répétée de `(dx, dy)` pour redessiner le `*component*`.
* `\qbezier[n](x<sub>1</sub>, y<sub>1</sub>)(x, y)(x<sub>2</sub>, y<sub>2</sub>)`: dessine une [courbe de Bézier quadratique](https://en.wikipedia.org/wiki/B%C3%A9zier_curve#Quadratic_B%C3%A9zier_curves) où :
  * `n` un entier facultatif qui détermine le nombre de points utilisés pour tracer/produire la courbe
  * `(x<sub>1</sub>, y<sub>1</sub>)` est le point de départ de la courbe
  * `(x<sub>2</sub>, y<sub>2</sub>)` est le point d’arrivée de la courbe
  * `(x, y)` désigne le point de contrôle de la courbe de Bézier (quadratique)

A `*component*` est un élément graphique généralement produit à l’aide de primitives graphiques telles que `\line`, `\oval`, `\circle`, `\vector` et ainsi de suite — voir le [manuel de référence officieux de LaTeX2e](https://latexref.xyz/picture.html) ou [Une introduction pas si courte à LaTeX2ε](https://tobi.oetiker.ch/lshort/lshort.pdf) (chapitre 5) pour plus de détails sur les primitives disponibles.

**Remarque**: Le [`pict2e` package](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/pict2e/pict2e.pdf) étend l’original `image` environnement pour fournir plusieurs commandes de dessin de courbes de Bézier : `\bezier`, `\qbezier`, `\cbezier` et `\qbeziermax`.

### Comprendre le décalage et l’origine

Dans les exemples suivants, la commande `\put` est utilisée pour dessiner des points colorés indiquant des coordonnées clés (positions) dans le graphique. Les deux exemples utilisent la commande `\fbox` de LaTeX pour tracer une bordure autour de la boîte créée par LaTeX pour contenir notre image, montrant la *boîte englobante* du graphique.

**Exemple 1 : utilisation de l’origine par défaut**

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\usepackage[dvipsnames]{xcolor}
\begin{document}
\setlength{\unitlength}{1cm}
\setlength{\fboxsep}{0pt}

Voici mon image\fbox{%
\begin{picture}(3,3)
\put(0,0){{\color{blue}\circle*{0.25}}\hbox{\kern3pt \texttt{(0,0)}}}
\put(3,3){{\color{red}\circle*{0.25}}\hbox{\kern3pt \texttt{(3,3)}}}
\end{picture}}
\end{document}
```

[Ouvrez cet exemple dans Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=understanding+picture+dimensions+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cusepackage%5Bdvipsnames%5D%7Bxcolor%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Csetlength%7B%5Cfboxsep%7D%7B0pt%7D%0A%0AThis+is+my+picture%5Cfbox%7B%25%0A%5Cbegin%7Bpicture%7D%283%2C3%29%0A%5Cput%280%2C0%29%7B%7B%5Ccolor%7Bblue%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt+%5Ctexttt%7B%280%2C0%29%7D%7D%7D%0A%5Cput%283%2C3%29%7B%7B%5Ccolor%7Bred%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt+%5Ctexttt%7B%283%2C3%29%7D%7D%7D%0A%5Cend%7Bpicture%7D%7D%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![dimensions de l’environnement picture de LaTeX](/files/e047ad238bae43eda93bd5e1da0509a524ccbb3f)

Le `\fbox` La commande trace une bordure autour de la boîte englobante du graphique, montrant l’espace (zone) réservé par LaTeX :

* largeur de l’image = `largeur` × `\unitlength` = 3 × 1 cm = 3 cm.
* hauteur de l’image = `hauteur` × `\unitlength` = 3 × 1 cm = 3 cm.

Le premier exemple montre que l’origine, `(0,0)`, se trouve au point où la `\begin{picture}` commande a été exécutée, juste après le texte « Voici mon image ». De plus, le coin supérieur droit se trouve à la position `(3,3)`, la `(largeur,hauteur)` valeurs fournies à `\begin{picture}(3,3)`.

**Exemple 2 : décalage de l’origine de (1,1)**

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\usepackage[dvipsnames]{xcolor}
\begin{document}
\setlength{\unitlength}{1cm}
\setlength{\fboxsep}{0pt}

Voici mon image\fbox{%
\begin{picture}(3,3)(1,1)
\put(0,0){{\color{blue}\circle*{0.25}}\hbox{\kern3pt\texttt{(0,0)}}}
\put(1,1){{\color{orange}\circle*{0.25}}\hbox{\kern3pt\texttt{(1,1)}}}
\put(3,3){{\color{red}\circle*{0.25}}\hbox{\kern3pt\texttt{(3,3)}}}
\put(4,4){{\color{black}\circle*{0.25}}\hbox{\kern3pt\texttt{(4,4)}}}
\end{picture}}
\end{document}
```

[Ouvrez cet exemple dans Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=understanding+picture+dimensions+example+2\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cusepackage%5Bdvipsnames%5D%7Bxcolor%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Csetlength%7B%5Cfboxsep%7D%7B0pt%7D%0A%0AThis+is+my+picture%5Cfbox%7B%25%0A%5Cbegin%7Bpicture%7D%283%2C3%29%281%2C1%29%0A%5Cput%280%2C0%29%7B%7B%5Ccolor%7Bblue%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%280%2C0%29%7D%7D%7D%0A%5Cput%281%2C1%29%7B%7B%5Ccolor%7Borange%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%281%2C1%29%7D%7D%7D%0A%5Cput%283%2C3%29%7B%7B%5Ccolor%7Bred%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%283%2C3%29%7D%7D%7D%0A%5Cput%284%2C4%29%7B%7B%5Ccolor%7Bblack%7D%5Ccircle%2A%7B0.25%7D%7D%5Chbox%7B%5Ckern3pt%5Ctexttt%7B%284%2C4%29%7D%7D%7D%0A%5Cend%7Bpicture%7D%7D%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![dimensions de l’environnement picture de LaTeX](/files/4dabd2bfe2eb6d8170dcea4212a10031caa32ffc)

Le deuxième exemple montre les effets du décalage de l’origine et met en évidence quelques points clés :

* la bordure créée par `\fbox` montre que la boîte englobante du graphique, la largeur et la hauteur de la boîte créée par LaTeX, est *inchangée* par le décalage de l’origine : elle est toujours déterminée par les `(largeur,hauteur)` valeurs fournies à `\begin{picture}(3,3)(1,1)`
  * largeur de l’image = `largeur` × `\unitlength` = 3 × 1 cm = 3 cm
  * hauteur de l’image = `hauteur` × `\unitlength` = 3 × 1 cm = 3 cm
* les éléments de dessin ne sont pas limités (rognés) à la zone (dimensions de la boîte englobante) créée par LaTeX. Par exemple, le point bleu et la `(0,0)` coordonnée `\fbox`sont dessinés en dehors de la ligne de contour produite par
  * , qui indique la boîte englobante.
* l’origine, `(0,0)`, est *n’est plus* située juste après le texte « Voici mon image », à l’endroit où la commande `\begin{picture}` a été exécutée : l’origine est maintenant décalée d’une unité vers la gauche et d’une unité vers le bas
* le coin supérieur droit se trouve maintenant à la position `(4,4)`

## Exemples de l’environnement picture

### Exemples tirés du manuel de référence officieux de LaTeX2e

Le [manuel de référence officieux de LaTeX2e](https://latexref.xyz/picture.html) contient un certain nombre d’ `image` exemples de l’environnement, dont certains sont reproduits ici avec des liens qui les ouvrent dans Overleaf, ce qui vous permet de modifier et d’explorer le code.

#### Exemple 1 : la commande \vector

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\begin{picture}(6,6)      % la boîte picture fera 6 cm de large sur 6 cm de haut
  \put(0,0){\vector(2,1){4}}  % pour chaque 2 vers la droite, ce vecteur monte de 1
    \put(2,1){\makebox(0,0)[l]{\ premier segment}}
  \put(4,2){\vector(1,2){2}}
    \put(5,4){\makebox(0,0)[l]{\ deuxième segment}}
  \put(0,0){\vector(1,1){6}}
    \put(3,3){\makebox(0,0)[r]{somme\ }}
\end{picture}
\end{document}
```

[Ouvrez cet exemple dans Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cbegin%7Bpicture%7D%286%2C6%29++++++%25+picture+box+will+be+6cm+wide+by+6cm+tall%0A++%5Cput%280%2C0%29%7B%5Cvector%282%2C1%29%7B4%7D%7D++%25+for+every+2+over+this+vector+goes+1+up%0A++++%5Cput%282%2C1%29%7B%5Cmakebox%280%2C0%29%5Bl%5D%7B%5C+first+leg%7D%7D%0A++%5Cput%284%2C2%29%7B%5Cvector%281%2C2%29%7B2%7D%7D%0A++++%5Cput%285%2C4%29%7B%5Cmakebox%280%2C0%29%5Bl%5D%7B%5C+second+leg%7D%7D++%0A++%5Cput%280%2C0%29%7B%5Cvector%281%2C1%29%7B6%7D%7D%0A++++%5Cput%283%2C3%29%7B%5Cmakebox%280%2C0%29%5Br%5D%7Bsum%5C+%7D%7D++%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![exemple d’environnement picture](/files/3d078f86d0c6417012974b3d942a129256f9d7db)

#### Exemple 2 : les commandes \qbezier, \line, \vector, \thinlines et \thicklines

Notez comment `\qbezier` commande *n’est pas* utilisée dans `\put{...}` alors que d’autres commandes primitives, telles que `\line`, `\vector` *le sont* utilisée dans `\put{...}`.

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\begin{picture}(8,4)
  \thinlines % commence avec des lignes fines
  \put(0,0){\vector(1,0){8}}  % axe des x
  \put(0,0){\vector(0,1){4}}  % axe des y
  \put(2,0){\line(0,1){3}}    % côté gauche
  \put(4,0){\line(0,1){3.5}}  % côté droit
  \thicklines % utiliser des lignes plus épaisses pour les commandes \qbezier
  \qbezier(2,3)(2.5,2.9)(3,3.25)
  \qbezier(3,3.25)(3.5,3.6)(4,3.5)
  \thinlines % retour à l’utilisation de lignes fines
  \put(2,3){\line(4,1){2}}
  \put(4.5,2.5){\framebox{Règle trapézoïdale}}
\end{picture}
\end{document}
```

[Ouvrez cet exemple dans Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=qbezier+picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cbegin%7Bpicture%7D%288%2C4%29%0A++%5Cthinlines+%25+Start+with+thin+lines%0A++%5Cput%280%2C0%29%7B%5Cvector%281%2C0%29%7B8%7D%7D++%25+x+axis%0A++%5Cput%280%2C0%29%7B%5Cvector%280%2C1%29%7B4%7D%7D++%25+y+axis%0A++%5Cput%282%2C0%29%7B%5Cline%280%2C1%29%7B3%7D%7D++++%25+left+side%0A++%5Cput%284%2C0%29%7B%5Cline%280%2C1%29%7B3.5%7D%7D++%25+right+side%0A++%5Cthicklines+%25+Use+thicker+lines+for+the+%5Cqbezier+commands%0A++%5Cqbezier%282%2C3%29%282.5%2C2.9%29%283%2C3.25%29%0A++%5Cqbezier%283%2C3.25%29%283.5%2C3.6%29%284%2C3.5%29%0A++%5Cthinlines+%25+Back+to+using+thin+lines%0A++%5Cput%282%2C3%29%7B%5Cline%284%2C1%29%7B2%7D%7D%0A++%5Cput%284.5%2C2.5%29%7B%5Cframebox%7BTrapezoidal+Rule%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![Exemple de l’environnement picture de LaTeX](/files/ce708af159c304bea857142695194166756d1321)

#### Exemple 3 : les commandes \multiput et \linethickness

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\thicklines
\begin{picture}(10,10)
  \linethickness{0.05mm}
  \multiput(0,0)(1,0){10}{\line(0,1){10}}
  \multiput(0,0)(0,1){10}{\line(1,0){10}}
  \linethickness{0.5mm}
  \multiput(0,0)(5,0){3}{\line(0,1){10}}
  \multiput(0,0)(0,5){3}{\line(1,0){10}}
\end{picture}
\end{document}
```

[Ouvrez cet exemple dans Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=multiput+command+picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cthicklines%0A%5Cbegin%7Bpicture%7D%2810%2C10%29%0A++%5Clinethickness%7B0.05mm%7D%0A++%5Cmultiput%280%2C0%29%281%2C0%29%7B10%7D%7B%5Cline%280%2C1%29%7B10%7D%7D+%0A++%5Cmultiput%280%2C0%29%280%2C1%29%7B10%7D%7B%5Cline%281%2C0%29%7B10%7D%7D%0A++%5Clinethickness%7B0.5mm%7D%0A++%5Cmultiput%280%2C0%29%285%2C0%29%7B3%7D%7B%5Cline%280%2C1%29%7B10%7D%7D%0A++%5Cmultiput%280%2C0%29%280%2C5%29%7B3%7D%7B%5Cline%281%2C0%29%7B10%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![Exemple de la commande \multiput dans l’environnement picture de LaTeX](/files/22cbb7232d4195cdd6c0771d6bea1eb98266f703)

### Autres exemples

#### Une courbe de Bézier de base

L'exemple suivant utilise l'environnement  `\qbezier` commande pour tracer une courbe de Bézier :

```latex
\qbezier(1,1)(5,5)(9,0.5)
```

Notez ce qui suit :

* le `\qbezier` commande n’est pas utilisée dans un `\put` commande
* le point de départ de la courbe de Bézier est `(1,1)`
* le point d’arrivée de la courbe de Bézier est `(9,0.5)`
* le point de contrôle de la courbe de Bézier est `(5,5)`
* nous n’utilisons pas l’entier facultatif qui détermine le nombre de points utilisés pour tracer/produire la courbe de Bézier

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{0.8cm}
\begin{picture}(10,5)
\thicklines
\qbezier(1,1)(5,5)(9,0.5)
\put(2,1){{Courbe de Bézier}}
\end{picture}
\end{document}
```

[Ouvrez cet exemple dans Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=multiput+command+picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B0.8cm%7D%0A%5Cbegin%7Bpicture%7D%2810%2C5%29%0A%5Cthicklines%0A%5Cqbezier%281%2C1%29%285%2C5%29%289%2C0.5%29%0A%5Cput%282%2C1%29%7B%7BB%C3%A9zier+curve%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![Tracer une courbe de Bézier avec LaTeX](/files/cd6551d5f8445d3bd6c6313aee543492e45488db)

#### Ovales, lignes et cercles

L’exemple suivant montre les `\line`, `\circle` et `\oval` commandes et — notez comment elles *le sont* toutes utilisées dans le `\put{...}` commande :

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{1cm}
\thicklines
\begin{picture}(10,6)
\put(2,2.2){\line(1,0){6}}
\put(2,2.2){\circle{2}}
\put(6,2.2){\oval(4,2)[r]}
\end{picture}
\end{document}
```

[Ouvrez cet exemple dans Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=picture+environment+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B1cm%7D%0A%5Cthicklines%0A%5Cbegin%7Bpicture%7D%2810%2C6%29%0A%5Cput%282%2C2.2%29%7B%5Cline%281%2C0%29%7B6%7D%7D%0A%5Cput%282%2C2.2%29%7B%5Ccircle%7B2%7D%7D%0A%5Cput%286%2C2.2%29%7B%5Coval%284%2C2%29%5Br%5D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![exemple de l’environnement picture de LaTeX](/files/5acc287e8ebcc395c322d3c5f9c7f85c18c90a03)

Voici une description des commandes :

* `\put(2,2.2){\line(1,0){6}}`: trace une ligne `6` unités de longueur en utilisant le « vecteur de direction » `(1,0)`
* `\put(6,2.2){\oval(4,2)[r]}`: trace un ovale centré au point `(4,2)`. Le paramètre `[r]` est facultatif, vous pouvez utiliser `r`, `l`, `t` et `b` pour montrer la partie droite, gauche, supérieure ou inférieure de l’ovale.
* `\put(2,2.2){\circle{2}}`: trace un cercle centré au point `(2,2.2)` et dont le diamètre est `2`.

#### Combiner des lignes, des cercles et du texte

Différents éléments de base peuvent être combinés pour créer des images plus complexes. Dans cet exemple, plusieurs lignes et cercles sont combinés pour créer une image, avec du texte pour étiqueter les points :

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{0.8cm}
\begin{picture}(12,4)
\thicklines
\put(8,3.3){{\footnotesize $3$-simplexe}}
\put(9,3){\circle*{0.1}}
\put(8.3,2.9){$a_2$}
\put(8,1){\circle*{0.1}}
\put(7.7,0.5){$a_0$}
\put(10,1){\circle*{0.1}}
\put(9.7,0.5){$a_1$}
\put(11,1.66){\circle*{0.1}}
\put(11.1,1.5){$a_3$}
\put(9,3){\line(3,-2){2}}
\put(10,1){\line(3,2){1}}
\put(8,1){\line(1,0){2}}
\put(8,1){\line(1,2){1}}
\put(10,1){\line(-1,2){1}}
\end{picture}
\end{document}
```

[Ouvrez cet exemple dans Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=understanding+picture+dimensions+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B0.8cm%7D%0A%5Cbegin%7Bpicture%7D%2812%2C4%29%0A%5Cthicklines%0A%5Cput%288%2C3.3%29%7B%7B%5Cfootnotesize+%243%24-simplex%7D%7D%0A%5Cput%289%2C3%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%288.3%2C2.9%29%7B%24a_2%24%7D%0A%5Cput%288%2C1%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%287.7%2C0.5%29%7B%24a_0%24%7D%0A%5Cput%2810%2C1%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%289.7%2C0.5%29%7B%24a_1%24%7D%0A%5Cput%2811%2C1.66%29%7B%5Ccircle%2A%7B0.1%7D%7D%0A%5Cput%2811.1%2C1.5%29%7B%24a_3%24%7D%0A%5Cput%289%2C3%29%7B%5Cline%283%2C-2%29%7B2%7D%7D%0A%5Cput%2810%2C1%29%7B%5Cline%283%2C2%29%7B1%7D%7D%0A%5Cput%288%2C1%29%7B%5Cline%281%2C0%29%7B2%7D%7D%0A%5Cput%288%2C1%29%7B%5Cline%281%2C2%29%7B1%7D%7D%0A%5Cput%2810%2C1%29%7B%5Cline%28-1%2C2%29%7B1%7D%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![exemple de l’environnement picture de LaTeX](/files/0b1c244e6f03d34bdbca9df9236ccf558a2944f7)

Voici un résumé de certaines commandes utilisées :

* `\thicklines`: cela augmente l’épaisseur des lignes. La `\thinlines` commande a l’effet inverse.
* `\put(8,3.3){{\footnotesize $3$-simplexe}}`: le texte « 3-simplexe » est inséré au point `(8,3.3)`, la taille de la police est réglée sur `\footnotesize`. La même commande est utilisée pour étiqueter chaque point.
* `\put(9,3){\circle*{0.1}}`: trace un cercle rempli, centré en `(9,3)` avec un petit diamètre de `0.1` (unité de dessin), ce qui permet de l’utiliser comme point.
* `\put(10,1){\line(3,2){1}}`: crée une ligne droite commençant en `(10,1)` et tracée dans la direction de `(3,2)` avec une longueur de 1 (unité de dessin).

#### Utilisation des flèches

Les flèches peuvent aussi être utilisées dans un `image` environnement ; voici donc un deuxième exemple :

```latex
\documentclass{article}
\usepackage[pdftex]{pict2e}
\begin{document}
\setlength{\unitlength}{0.20mm}
\begin{picture}(400,250)
\put(75,10){\line(1,0){130}}
\put(75,50){\line(1,0){130}}
\put(75,200){\line(1,0){130}}
\put(120,200){\vector(0,-1){150}}
\put(190,200){\vector(0,-1){190}}
\put(97,120){$\alpha$}
\put(170,120){$\beta$}
\put(220,195){état supérieur}
\put(220,45){état inférieur 1}
\put(220,5){état inférieur 2}
\end{picture}
\end{document}
```

[Ouvrez cet exemple dans Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+arrows+in+LaTeX+picture+environment\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bpdftex%5D%7Bpict2e%7D%0A%5Cbegin%7Bdocument%7D%0A%5Csetlength%7B%5Cunitlength%7D%7B0.20mm%7D%0A%5Cbegin%7Bpicture%7D%28400%2C250%29%0A%5Cput%2875%2C10%29%7B%5Cline%281%2C0%29%7B130%7D%7D%0A%5Cput%2875%2C50%29%7B%5Cline%281%2C0%29%7B130%7D%7D%0A%5Cput%2875%2C200%29%7B%5Cline%281%2C0%29%7B130%7D%7D%0A%5Cput%28120%2C200%29%7B%5Cvector%280%2C-1%29%7B150%7D%7D%0A%5Cput%28190%2C200%29%7B%5Cvector%280%2C-1%29%7B190%7D%7D%0A%5Cput%2897%2C120%29%7B%24%5Calpha%24%7D%0A%5Cput%28170%2C120%29%7B%24%5Cbeta%24%7D%0A%5Cput%28220%2C195%29%7Bupper+state%7D%0A%5Cput%28220%2C45%29%7Blower+state+1%7D%0A%5Cput%28220%2C5%29%7Blower+state+2%7D%0A%5Cend%7Bpicture%7D%0A%5Cend%7Bdocument%7D)

Cet exemple produit le résultat suivant :

![Exemple de flèches dans l’environnement picture de LaTeX](/files/5ce5636af9752ccdbfd79fd227d130ad705039ae)

Le `\vector` La commande utilise la même syntaxe que `\line`:

* `\put(120,200){\vector(0,-1){150}}`: trace un vecteur dont le point de départ est `(120,200)`, la longueur est `150` et la direction de dessin est `(0,-1)`.

## Lectures complémentaires

Pour plus d’informations, voir les ressources suivantes :

* [manuel de référence officieux de LaTeX2e](https://latexref.xyz/picture.html)
* [Une introduction pas si courte à LaTeX2ε](https://tobi.oetiker.ch/lshort/lshort.pdf) (voir le chapitre 5)
* [Wikibooks](https://en.wikibooks.org/wiki/LaTeX/Picture)
* [questions étiquetées `picture-mode` sur tex.stackexchange](https://tex.stackexchange.com/questions/tagged/picture-mode)
* [`pict2e` documentation du paquet](https://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/pict2e/pict2e.pdf)
* [Package TikZ](/latex/fr/figures-et-tableaux/05-tikz-package.md)
* [package Pgfplots](/latex/fr/specifique-a-un-domaine/08-pgfplots-package.md)
* [Positionnement des images et des tableaux](/latex/fr/figures-et-tableaux/02-positioning-images-and-tables.md)
* [Listes des tableaux et des figures](/latex/fr/figures-et-tableaux/03-lists-of-tables-and-figures.md)


---

# 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/figures-et-tableaux/04-picture-environment.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.
