Vous pouvez consulter les sources postscript de cet environnement.
On commence par faire un beau dessin que l'on veut réutiliser. Pour l'exemple, on le trace avec des coordonneés absolues dans le repère jps (même l'absolu est relatif...). Ici le dessin sera constitué d'une ellipse, de deux flèches (une bleue et une orange), et un point.
Une fois l'objet dessiné, on relève les coordonnées, dans le repère jps, de sa Bounding Box associée. Dans notre exemple, on obtient les points (-1; -1) et (2; 2.5)
On associe alors la procedure de dessin de l'objet à un littéral (mon_dessin
) dans notre exemple non sans avoir encapsulé le tout dans un gsave...grestore
, et après avoir rajouté l'incantation currentpoint translate
qui permet de tracer le dessin au point courant (l'environnement picture assure l'existence du point courant au moment de l'appel).
Ne reste plus qu'à créer une procédure dont le nom est celle du dessin du nouvel objet, suffixé par _dim
(ce qui donnera mon_dessin_dim
dans notre exemple), procedure qui est censee donner la BB du nouvel objet lorsqu'on l'appelle. Nota : cette BB doit être donnée dans le repère postscript. Si on ne la connaît qu'en coordonnées jps, il faut utiliser la fonction jtoppoint
qui se chargera du changement de repere.
Il y a 16 points de référence par objet, donnés par l'intersection de 4 lignes horizontales (up, center, baseline, down) et 4 lignes verticales (left, baseline, center, right). D'où 16 préfixes pour la commande pict
: ul
, ub
, uc
, ur
, cl
, cb
, cc
, cr
, bl
, bb
, bc
, br
, dl
, db
, dc
, dr
. Les commandes comportant une des lettres l, r, b ou u sont des directions : elles indiquent dans quelle direction placer l'objet par rapport au point indiqué. Par exemple, A (mon_dessin) urpict
veut dire "placer l'objet 'mon_dessin' en haut à droite du point A". Pour toutes ces directions, un décalage est rajouté (sauf mention contraire).
Pour chacune des commandes, on rajouter tout ou partie des 3 options suivantes (dans ce ordre) : décalage (en points postscript et entre parenthèses), facteur d'agrandissement/réduction (entre crochets) et angle de rotation (antre accolades).
Voir la page 18 du guide de l'utilisateur ou les pages sur la gestion du texte et des labels TeX pour plus de renseignements.