Mode d'emploi et manuel de référence

Previous Up Next

2.8  Typographie

Dans un fichier ePiX, les points sont marqués avec des glyphes LATEXiens (marques markers) ou des boites de texte (étiquettes labels). Une marque occupe une boite de taille nulle et est positionné à un emplacement cartésien déterminé. Lorsque la taille ou le format de l'image est ajusté, le corps de la police reste le même. Afin de garder l'alignement correct des étiquettes pour toutes sortes de tailles on attache un point d'alignement invariant par homothétie (agrandissement, réduction) à chaque étiquette et on utilise les coordonnées cartésiennes pour placer ce point d'alignement. Ce dernier est controllé par un déplacement donné en vrai-point et une option facultative d'alignement dans le style LATEXien.

Marques

Les marques d'ePiX sont appelées par leur nom :

  spot(P pt);  dot(P pt);   ddot(P pt);
               box(P pt);   bbox(P pt);  
  ring(P pt);  circ(P pt);

Les marques spot et (d)dot sont des points pleins qu'on ne peut pas colorier ; box et bbox sont des carrés pleins que l'on peut colorier. Une marque ring est coloriable et transparent tandis que circ est incoloriable et opaque. Les marques situées dans la même colonne sont de même taille et, dans chaque colonne, le diamètre est 1,5 fois le diamètre de la suivante. Le diamètre d'une dot – et donc de toutes les marques situées dessous – est fixé à dot_size(diam) dont l'argument, qui vaut 3 par défaut, est un nombre de pt. Les glyphes présentés dans le tableau 2.1 sont disponibles grâce à la commande

  marker(P pt, <MARKER TYPE>);


Tableau 2.1: Les types de marques d'ePiX.

On dispose aussi de ces types de marques lorsque l'on représente des données à partir d'un fichier.

Étiquettes

Une étiquette est une boite typographique. Comme une boite LATEXienne occupe un rectangle sur la page imprimée, on n'a pas assez d'information avec une seule position pour placer une étiquette dans une figure ; on a besoin en plus d'un point d'alignement. Par défaut, le point d'alignement d'une boite de texte est le point de référence : le point d'intersection de l'arête gauche avec la ligne de base, celui que LATEX utilise pour placer la boite sur la page : On peut déplacer un point d'alignement à la main :

  label(P(3,2), P(2,-1), "$\\rho=\\sin \\theta$");

compose l'équation ρ=sinθ et place la boite de texte produite au point de coordonnées (3,2) mais la déplace vers la droite de 2pt et vers le bas de 1pt. Remarquez que C++ traite « \\» comme un charactère d'échapement et qu'il faut donc doubler la barre oblique inverse dans le source pour en obtenir un seul dans la sortie. Le commande d'étiquettes sont :

  label(P posn, P offset, <label text>);
  label(P posn, <label text>);
  label(P posn, P offset, <label text>, align);

La première commande imprime l'étiquette avec son point de référence LATEXien aux coordonnées cartésiennes posn en le déplaçant (sur la page) des nombres de vrais points donnés sous formes de coordonnées P offset. Des déplacements de 2, 4, 6, 12 ou 18 points conviennent bien à une police de corps 12.

La seconde commande imprime le texte de l'étiquette dans une boite LATEXienne centrée au point posn. Bien que ce soit peut-être la manière la plus évidente de placer une étiquette, ce ne peut être toujours la méthode correcte puisque les étiquettes marquent souvent un objet géométrique qui ne devrait pas être recouvert par son étiquette.

Dans la troisième forme de la commande, l'option align peut prendre une valeur – ou une paire convenable de valeurs – parmi t, b, r ou l – pour top (sommet), bottom (bas), right (droite), left (gauche) – ou le seul c (center, centre). Comme pour les offsetts, ces options d'alignement spécifient une position de l'étiquette relativement à l'emplacement cartésien de p et donc fonctionnent à l'opposé de la manière dont elles fonctionnent sous LATEX. Par exemple, l'option d'alignement br place l'étiquette dessous et à droite du point p.

    

Chaque commande d'étiquette possède une version « masque (mask)»correspondante qui place un rectangle blanc opaque sous le texte de l'étiquette. Il est utile de masquer lorsque le texte de l'étiquette apparait dans une partie de la figure déjà chargée. Un document contenant un fichier eepic faisant appel à la commande masklabel doit utiliser l'extension pstcol5.

On peut pivoter une étiquette, l'angle est donné dans l'unité d'angle courant par la commande label_angle(theta) . Une rotation de 90 imprime des étiquettes convenant à un axe vertical. Si un fichier eepic contient des étiquettes pivotées, le document qui le contient doit charger l'extension rotating. (elaps inclut automatiquement toutes les extensions LATEXiennes dont pourrait avoir besoin un fichier eepic.)

En construisant et positionnant une étiquette, gardez les points suivants à l'esprit :

Polices et corps des caractères

Par défaut, la police dans une figure ePiX est celle du document qui la contient. Le corps de la police et son ½il sont changés par des commandes de «déclaration de style» comme

font_size("Large");
font_face("sc");

L'argument de font_size est une taille LATEXienne valide dont la valeur par défaut est normalsize ; font_face accepte une chaine de deux caractères qui concaténées à la chaine « text» donnent une commande LATEXienne de déclaration de fonte, comme par exemple textsc ci-dessus.

Un controle plus fin, sur la police et la taille pour une seule étiquette, est obtenu en codant en dur les commandes LATEXiennes nécessaires dans le texte de l'étiquette.

Marques pour étiquettes

Les marques élémentaires – circ, ring, spot, (d)dot et (b)box – accepte des arguments d'étiquette. Par exemple :

dot(P(0,0), P(4,2), "The Origin", tr);

positionne et étiquette un point aux coordonnées (0,0).


5
Note du TdS : Il n'est plus nécessaire désormais (j'écris le 2007-02-24) de charger pstcol si on a chargé pst-all.

Previous Up Next