Cours UML les principales commandes PSTricks utilisées, tutoriel & guide de travaux pratiques en pdf.
Les commandes auxiliaires de pst-uml
Ces commandes ne permettent pas de créer des boites au sens uml, mais simplifient la vie lors du dessin des différents type de diagrammes.
\umlStack
Syntaxe
\umlStack[keyOptions]{stackBody} permet de mettre du texte sur plusieurs lignes dans un boite sans avoir d’espace supplémen-taire en utilisant un environnememt tabular. Par rapport à la commande LATEX \shortstack, l’espacement entre ligne n’est pas nul et est régulier.
Paramètres (un seul) stackBody : corps de la boite. Il peut contenir plusieurs lignes séparées par \\.
Options
umlStackSep (dim : 0) : distance de séparation entre le contenu de la boite et le bord (pour une frame éventuelle).
Cette option utilise d’une part l’option tabcolsep de tabular pour régler l’espacement sur les bords verticaux, et d’autre part des strut pour rajouter des espacements horizontaux avant la première ligne et après la dernière ligne.
umlStackWidth (dim : 0) : largeur de la boite. La valeur 0 indique une largeur automatique en fonction du contenu.
POSITIONNEMENT DES OBJETS
umlStackLinesStretch (réel : 0.85) : écart relatif de l’espace interligne par rapport à un ta-bleau normal. La valeur par défaut de 0.85 permet de tasser suffisamment tout en permettant une marge pour absorber les différences de profondeur ou de hauteur des différentes lettres (x, g, j, h, t, …)
umlAlign (l, c, r : c) : alignement horizontal du texte à l’intérieur de la boite.
umlPos (t, c, b : c) : alignement vertical de la boite par rapport à la ligne de base.
Bug
À faire
Exemples 1 : comparaison de \umlStack, \shortstack et tabular
Dans les exemples suivants, les \umlStack utilsée sont entourée d’une \fbox ayant une \fboxsep nulle de façon à bien visualiser les limites réelles de la boite produite.
Positionnement des objets
Le placement des différents objets peut se faire selon quatre méthodes :
Utilisation de psgraphics et \rput 11
– soit en utilisant les positions absolues dans un environnememnt psgraphics à l’aide de la commande \rput pour placer les objets et \rnode pour leur affecter un nom de noeud (en vue d’une future référence pour les connexions) ;
– soit à l’aide des commandes de haut niveau fournie par PSTricks à savoir l’environnement psmatrix et la commande \pstree ;
– soit à l’aide de commandes de placement relatif fournies par pst-uml (Merci à Denis Girou) ;
– soit tout simplement dans le texte comme dans certains exemples montrés précédement (en mode LR au sens LATEX).
Il consiste à plasser les boîtes (précédemment créés ou non) dans un environnement pspicture à l’aide des commandes \rput. La macro \psgrid (compte tenu des options prédéfinies par le package pst-uml) permet de visualiser une grille de 1cm de coté. Cette grille pourra être commentée une fois la mise au point de la figure terminée. Dans cet exemple, les objets sont créés au moment du placement car il sont simples. On remarque la création (par \psdot)d’un noeud ponctuel « pnode1 » invisible sur le graphique, mais qui pourra être utilisé comme point de connexion intermédiaire (le petit cercle n’est là que pour sa visualisation).
Utilisation de psmatrix
Les boites précédemment définies peuvent être positionnées à l’aide des macros de haut niveau de PSTricks telles que les environnements psmatrix ou psTree.
Ces macro sont plus simples à utiliser, mais sont moins souple au niveau du placement. Voici un exemple de placement utilisant l’environnement psmatrix. On peut remarquer l’utilisation d’une longueur négative pour la séparation des colonnes, ainsi que le changement possible de la longueur d’une seule colonne. De même, un changement d’espacement pour une ligne particulière peut se faire par \\[2cm] ou même \\[-1cm].
Utilisation des commandes de placement relatif
Les lettre E, N, W et S sont utilisés à la place de Right, Left, … pour des raisons de cohérence avec les commandes de connexion du style \ncNE vues plus loin. Les commandes de gestion du placement relatif sont les suivantes :
– affectation en absolu du point courant par rapport à l’origine (fixée à (0,0) pour l’instant) : \ResetXY, \SetX, \SetY, \SetXY en cours) ;
– accés au point courant par \X et \Y ;
– les commandes de base : \incrX, \incrY (sont utilisées par les quatre suivantes) ;
– les déplacements relatifs \moveE, \moveN, \moveW, \moveS ;
– positionnement d’un objet au point courant \rputXY.
– A FAIRE \SetXY pour l’affectation absolue du point courant à partir d’une cordonnée d’un nom de node mémorisé. Je n’ai pas trouvé la commande interne à PSTricks permettant de convertir les coordonnées à partir d’un nom d’un node en coordonnées X ou Y pour le point courant : (help) ;
– A FAIRE \setOri pour changer la position de l’origine. Cela affecte donc les commandes de po-sitionnement absolues telles que \resetXY. Le but est d’affecter l’origine à un noeud précédement créé par un \pnode ou autre \rnode ;
Note : vérifier si l’option origin={coor} de PSTricks ne conviendrait pas !
– A FAIRE \move (vers une direction incrémentale arbitraire pouvant utiliser les coordonnées polaires ;
Les connecteurs orthogonaux
En plus des divers connecteurs proposés par PSTricks tels que \ncline, \ncbar, \ncdiag, \ncdiagg, \ncangle, \ncangles et \nccurve ; pst-uml propose un certain nombre de connecteurs basés sur les précédents (par \newpsobject).
Le but est de simplifier le tracé des liens en se restreingnant aux directions horizontales et verticales. Le principe est d’indiquer dans le nom même de la commande le nombre de segments à tracer et leur direction.
Par exemple, la première lettre (E dans \ncEVW) indique que le segment part vers l’Est, tourne verti-calement (V : vers le haut ou vers le bas) puis tourne vers l’Ouest W pour se connecter.
– E, W, N, S pour Est, West, North, Sud,
– H, V pour Horizontal et Vertical,
– D pour diagonal,
– X pour indifférent.
Les commandes suivantes sont proposées :
– un seul segment : \ncE \ncW \ncN \ncS
– deux segments : \ncEN \ncES \ncWN \ncWS \ncNE \ncNW \ncSE \ncSW
– trois segment en U : \ncEVW \ncWVE \ncSHN \ncNHS
– trois segments en Z : \ncEVE \ncWVW \ncNHN \ncSHS
– trois segments en diagonale : \ncEDE \ncWDW \ncNDN \ncSDS
– quatre segments (voir trois) : \ncSXE \ncSXW \ncEXS \ncEXN \ncWXS \ncWXN \ncNXE \ncNXW
Bug
La position par défaut des labels (utilisée par des \naput…) peut être affectée : dans ce cas imposer le positionnement explicitement par :
\ncE{nodeA}{nodeB}\naput[npos=0.5]{myLabel}
De même, dans les commandes à trois segments, quatre segments sont réellement dessinés : en cas de problème de positionnement des labels, il peut être utile d’imposer armB=0 (en attendant un raffinement de ces commandes orthogonales).
Exemples 1
A FAIRE (voir listing de dessin de classe ci-aprés)
Essais d’icones « flèches » sur des courbes
Après des tentatives infructueuses (pour l’instant) de définir de nouvelle vraie flèche au sens PSTricks (sans passer par postscript : en n’utilisant que des commande TEX), je propose une com-mande \ncputicon basée sur la command \ncput. Par défaut, l’icone est positionnée en début de connecteur (cf. Bug ci-dessous)
Bug À faire
Je souhairais que par défaut l’icone soit positionnée en fin de connecteur en mettant par exemple \psset{npos=5}. Cela ne marche pas pour tous les connecteurs (les \ncline et les \nccurve). C’est pour cette raison que la position par défaut est en début de connecteur (peut-être existe-t-il une variable PSTricks qui indique le nombre total de segments présents dans le dernier connecteur utilisé ??).
1 Introduction
1.1 Présentation
1.2 Dépendances
2 Les macros de création d’objet
2.1 \umlClass
2.2 \umlActor
2.3 \umlState, \umlPutStateIn et \umlPutStateOut
2.4 \umlCase et \umlCasePut
2.5 \umlNote
3 Les commandes auxiliaires de pst-uml
3.1 \umlStack
4 Positionnement des objets
4.1 Utilisation de psgraphics et \rput
4.2 Utilisation de psmatrix
5 Utilisation des commandes de placement relatif
6 Les connecteurs orthogonaux
7 Essais d’icones « flèches » sur des courbes
8 Principales commandes PSTricks utilisées (A FAIRE)
A Exemple de diagramme de classe 16
B Exemple de diagramme des cas d’utilisation 19
C Exemple de diagramme de séquences 21
D Exemple de diagramme d’états 24
E Listing du package pst-uml.sty