L'organigramme est une représentation schématique des liens fonctionnels, organisationnels et hiérarchiques d'un organisme, d'un programme, etc (définition de Wikipédia).
En gros une série de cellules qui sont reliées par des lignes ou des flèches. Des trucs du genre :
Sous ConTeXt, il existe un module pour réaliser des organigrammes. Ce modue développé par Hans Hagen s'appelle chart. Il utilise METAPOST pour dessiner les cadres et les flèches et TeX pour placer le texte. Il permet de faire des organigrammes relativement simples et est assez limité au niveau de la mise en forme. Si tu veux des choses plus complexe, il faudrat utiliser METAPOST/METAFUN ou PGF-TIKZ, ou bien encore des logiciels dédiés comme par exemple Dia qui existe pour Linux Windows et MacOs.
Tu charges le module chart par la commande :
\usemodule[chart]
Pour définir un organigramme tu utilises l'environement suivant :
\startFLOWchart [nom]
... les commandes ...
\stopFLOWchart
Le nom est libre, tu choisis ce que tu veux.
Tu insères ton organigramme dans ton document avec :
\FLOWchart[nom]
La grille
Pour positionner les cellules d'un organigramme tu utilises une grille qui n'est pas visible dans le résultat final. Tu définis cette grille à l'aide de la commande suivante :
dx est l'espace entre les cellules à droite et à gauche ;
dy est l'espace entre les cellules en haut et en bas ;
offset qui régle la distance entre ton organigramme et le texte de ton document, c'est à dire la position du cadre en vert, les valeur possible sont none, overlay, standard et une dimension quelconque ;
width est la largeur de la cellule ;
height est la hauteur de la cellule ;
Il existe une autre option bien pratique lors de l'élaboration du diagramme : option=test qui permet de visualiser la grille.
Dans les versions récentes de ConTeXt, (à partir de la version présente dans la TeXlive2012) cette grille n'est plus visible, seuls les points d'ancrage des flèches le sont.
Le code ci-dessus permet de créer et d'afficher (grace à l'option test) la grille suivante :
Le cadre rouge correspond à la cellule, définit par width et height, le cadre noir à l'entourage de la cellule, définit par dx et dy et le cadre vert à l'emprise de l'organigramme. Les chiffres sur les côtés indiquent les coordonnées des cellules, qui sont numéroté de gauche à droite pour les ordonnées et de haut en bas pour les abscisses. L'origne est donc en haut à gauche.
Créer une cellule
Tu utilises l'environnement :
\startFLOWcell \name{un nom} \location{x,y} \shape{un nom} \text{Le texte de la cellule} \stopFLOWcell
name est le nom que tu donnes à la cellule. Chaque cellule doit avoir un nom différent pour pouvoir être reliée ;
location les coordonnées de la cellule ;
shape la forme du cadre de la cellule, tu trouveras ci-dessous les différente possibilités ;
Ce code appele deux commentaires. Premièrement comme tu peux le voir je n'ai pas définit de grille. En effet ce n'est pas obligatoire, le module chart pouvant les calculer directement. Dans la pratique l'utilisation de la grille est quand même plus pratique pour voir où l'on va. La seconde remarque est que pour passer à la ligne dans une cellule il faut utiliser \\.
Les connections
Chaque cellule peut être connectée à une autre; Pour cela elle possède 4 points de connections, colorés sur l'image ci-dessous :
En bleu left (gauche), en jaune right (droite) , en vert top (en haut) et en rouge bottom (en bas).
Tu peux voir ces points si tu utilise option=test.
Dans l'exemple précédent si je veux connecter la cellule un à la cellule trois je vais utiliser la commande suivante que je vais placer dans la définition de la cellule un :
\connection[bl]{trois}
[bl] signifie que je part d'un point bottom pour aller vers un point left, en l'occurence du point b de la cellule un vers l' point l de la cellule trois.
Remarque l'inffluence de l'option offset=1cm sur le dessin ci-dessus.
Pour les versions anciennes de ConTeXt, comme celle présente dans la TeXlive2011, les valeurs pour les connections doivent être séparées de virgules on écrit \connection[r,l] et non \connection[rl]
Autre remarque si tu fais bien attention tu remarques que les points de connection sont encadrés de plus petits. Il s'agit de points de connections secondaires, utiles pour les organigrammes complexes et que tu obtiens en ajoutant p ou n au point standard.
Si tu regardes attentivement sur les organigrammes avec grille, au milieu de chaque ligne il existe un point gris. C'est à partir de ce point que tu peux positionner du texte à l'aide de la commande :
\comment[position]{texte}
où position peut prendre les valeurs :
l le texte sera positionné à gauche du point ;
r le texte sera positionné à droite du point ;
t le texte sera positionné au dessus du point ;
b le texte sera positionné en dessous du point ;
Tu peux également utiliser des combinaison comme [tr] en haut à droite ou [lb] en bas à gauche. Évidemment [tb] renvoie une erreur car la position ne peux être à la foi en haut et en bas.
Tu places la commande \comment juste après la connection que tu veux renseigner.
Il y a un petit problème. Si en utilisant le code ci-dessus tu veux placer du texte sur la ligne reliant Raymond à Ginette, tu n'y arriveras pas. Chart considère qu'il n'a pas la place. Pour y arriver il faut ajouter une ligne sur la grille, avec dans \setupFLOWchartsny=3.
Tu peux parfois résoudre ce problème en utilisant une cellule sans cadre :
\startFLOWcell \name{texte} \location{2,2} \shape{none} \text{Je peux\\mettre du texte\\ici} \stopFLOWcell
Tu peux également attacher du texte aux cellules avec la commande \label[position]{texte}, avec position = l, r, t et b. Attention les combinaisons du style [rt] ne marche pas. Un exemple avec la cellule Robert :
Toutes les cellules de l'organigramme seront affectées. Il n'est pas possible de modifier une seule cellule.
Les diverses options sont :
framecolor = nom de couleur, modifie la couleur du trait de contour ;
default = nom ou action (valeur par défaut) gére le type de cellule par défaut si dans \startFLOWcell tu ne précise aucune valeur pour \shape ;
backgroundcolor = nom de couleur la couleur du fond de la cellule.
Mettre une cellule en évidence
Tu peux facilement mettre une cellule et une seule en évidence de la façon suivante en utilisant l'option focus = nom de la cellule de \setupFLOWcharts. La façon dont est mise en évidence la cellule est réglée par \setupFLOWfocus qui prend les mêmes options que \setupFLOWshapes :