Suivant: , Précédent: , Monter: Environments   [Table des matières][Index]


8.19 picture

Synopsis :

\begin{picture}(largeur,hauteur)
   commande picture
\end{picture}

ou

\begin{picture}(largeur,hauteur)(décalagex,décalagey)
  commande picture
\end{picture}

où on a autant de commande picture(s) qu’on le désire.

L’environnement picture vous permet de créer des dessins simples contenant des lignes, des flèches, des boîtes, des cercles, et du texte. Cet environnement n’est pas obsolète, mais les nouveaux documents utilisent typiquement des systèmes de création de graphiques bien plus puissants tels que TikZ, PStricks, MetaPost, ou Asymptote. Aucun de ceux-ci n’est couvert dans ce document ; voir le CTAN.

Pour commencer, voici un exemple illustant la méthode du parallélogramme pour additionner deux vecteurs.

\setlength{\unitlength}{1cm}
\begin{picture}(6,6)  % la boîte de l'image fera 6cm de large sur 6cm
                      % de haut
  \put(0,0){\vector(2,1){4}}  % la pente du vecteur est de 1/2
    \put(2,1){\makebox(0,0)[l]{\ premier terme}}
  \put(4,2){\vector(1,2){2}}
    \put(5,4){\makebox(0,0)[l]{\ second terme}}
  \put(0,0){\vector(1,1){6}}
    \put(3,3){\makebox(0,0)[r]{somme\ }}
\end{picture}

L’environnement picture a un argument obligatoire qui est une paire de nombres réels positifs (largeur,hauteur). Le point est utilisé comme séparateur décimal quand ils ne sont pas entiers. En les multipliant par \unitlength on obtient la taille nominale de la sortie, c-à-d. l’espace que LaTeX reserve sur la page en sortie. Cette taille nominale n’est pas nécessairement la taille réelle de l’image ; LaTeX dessine aussi les parties de l’image en dehors de la boîte de l’image.

L’environnement picture a aussi un argument optionnel (décalagex,décalagey). Il sert à décaler l’origine. Contrairement aux arguments optionnels ordinaire, cet argument n’est pas contenu entre crochets. Comme pour l’argument obligatoire, c’est une paire de deux nombres. En les multipliant par \unitlength on obtient les coordonnées du point dans le coin inférieur gauche de l’image.

Par exemple, si \unitlength a été réglée à 1mm, la commande

\begin{picture}(100,200)(10,20)

produit un dessin de largeur 100 millimetres et hauteur 200 millimetres. Son origine est le point (10mm,20mm) et donc le coin inférieur gauche est là, et le coin supérieur droit est à (110mm,220mm). Lorsque vous tracez un dessin, typiquement vous omettez l’argument optionnel, laissant l’origine au coin inférieur gauche. Si ensuite vous voulez modifier le dessin en translatant tout, vous pouvez juste ajouter l’argument optionnel approprié.

Chaque commande picture dit à LaTeX où placer quelque chose en donnant sa position. Une position est une paire telle que (2.4,-5) donnant les coordonnées en x et en y. Une coordonnée n’est pas une longueur, c’est un nombre réel (il utilise le point ‘.’ comme séparateur décimal et peut avoir un signe moins). Elle spécifie une longueur en termes de la longueur unité \unitlength, de sorte que si \unitlength a été réglée à 1cm, alors la coordonnées ‘2.54’ spécifie une longueur de 2,54 centimètres.

La valeur par défaut de LaTeX pour \unitlength est 1pt. C’est une longueur rigide (voir Lengths). Utilisez la commande \setlength pour la modifier (voir \setlength). Effectuez ce changement uniquement en dehors de l’environnement picture.

L’environnement picture prend en charge les expressions arithmétiques standardes en plus des nombres.

Les coordonnées sont données relativement à une origine, qui est par défaut au coin en bas à gauche de l’image. Notez que lorsque une position apparaît en tant qu’argument, comme dans \put(1,2){...}, elle n’est pas entourées d’accolades puisque les parenthèses servent à délimiter l’argument. De même, contrairement à certain système de dessin par ordinateur, l’axe des ordonnées y est orienté vers le haut de la page, par ex. y = 1 est au-dessus de y = 0.

Il y a quatre manières de placer des chose dans une image : \put, \multiput, \qbezier, et \graphpaper. La plus utilisée est \put. Le code suivant

\put (11.3,-0.3){...}

met l’objet spécifié par ... dans le dessin picture, avec son point de référence aux coordonnées (11.3,-0.3). Les points de référence des divers objets sont décrits plus bas.

La commande \put crée une LR box. Vous pouvez mettre tout ce qui peut aller dans une \mbox (voir \mbox & \makebox) dans l’argument texte de la commande \put. Quand vous faites cela, le point de référence devient le coin inférieur gauche de la boîte. Dans cette image :

\setlength{\unitlength}{1cm}
...\begin{picture}(1,1)
  \put(0,0){\line(1,0){1}}
  \put(0,0){\line(1,1){1}}
\end{picture}

les trois points sont juste légèrement à la gauche du point où les deux lignes forment un angle. (À noter aussi que \line(1,1){1} ne demande pas une ligne de longueur un, mais une ligne dont l’étendue selon la coordonnée x est de 1).

Les cmmandes \multiput, qbezier, et graphpaper sont décrites plus bas.

Vous pouvez également utiliser cet envionnement pour placer une matière quelconque à un emplacement exact. Par exemple :

\usepackage{color,graphicx}  % dans le préambule
  ...
\begin{center}
\setlength{\unitlength}{\textwidth}
\begin{picture}(1,1)   % réserve un espace large et haut de \textwidth
  \put(0,0){\includegraphics[width=\textwidth]{desertedisland.jpg}}
  \put(0.25,0.35){\textcolor{red}{X Trésor ici}}
\end{picture}
\end{center}

Le X rouge sera précisément à un quart de \textwidth à droite de la marge de gauche, et 0.35\textwidth au dessus du bas de l’image. Un autre exemple de cette utilisation est de placer un code similaire dans l’en-tête de page pour obtenir une matière répétée sur chaque page.


Suivant: , Précédent: , Monter: Environments   [Table des matières][Index]