Pour rappel, avec l'extension graphics
, il existe deux commandes pour inclure une image dans un document LaTeX. Il s'agit des commandes :
| \includegraphics[x1,y1][x2,y2]{chemin de l'image} | \includegraphics*[x1,y1][x2,y2]{chemin de l'image} |
|
listing l11.12 Inclusion d'images avec l'extension graphics
Chemin des images
Pour inclure une image, il faut préciser le chemin vers les images, soit en absolu, soit par rapport au répertoire courant. Afin d'organiser les différents fichiers de votre document LaTeX, il est possible de préciser à LaTeX une liste de répertoires que le compilateur LaTeX examinera afin de retrouver les images auxquelles vous faites référence avec la commande graphicspath
.
| \graphicspath{{images/}{eps/}{I:\Images}} |
|
listing l11.13 La commande graphicspath
Ainsi, lorsque vous inclurez une image, LaTeX cherchera d'abord dans le répertoire images/
puis dans eps/
et finalement dans I:\Images
.
Mode brouillon
Lorsque vous incluez beaucoup d'images dans vos documents et que vous le compilez souvent, cela peut prendre un certain temps. Dès lors, vous pouvez spécifier l'option draft
lors du chargement de l'extension graphics
, ce qui remplacera toutes les images par une boite vide encadrée aux même dimensions que l'image.
| \usepackage[draft]{graphics} |
|
listing l11.13 Mode brouillon
La compilation est ainsi accélérée et vous conservez la position et la place que prendront les images dans votre document. N'oubliez tout simplement pas de retirer l'option draft
lorsque vous devez générer la version finale de votre document.
L'extension graphicx
Rappelez-vous, on avait déjà traité de cette extension au chapitre 3. Le chargement de cette extension au lieu de graphics
va modifier le comportement des commandes includegraphics
, includegraphics*
et rotatebox
.
En effet, il va être possible de paramétrer l'image en précisant des options sous la forme clé=valeur. On ne va pas revenir sur toutes les possibilités ici, retournez voir au chapitre 3 ou dans la liste des commandes.
Nous allons nous intéresser particulièrement à une option, l'option origin
qui est utilisée lors des rotations et qui permet de choisir un point de référence personnalisé. Le tableau suivant reprend les valeurs possibles pour l'option origin
.
| Horizontal |
| Vertical |
l |
gauche (left) |
t |
haut (top) |
r |
droite (right) |
b |
bas (bottom) |
c |
centre (center) |
B |
ligne de base (baseline) |
tab l11.1 Valeurs de l'option origin
pour l'extension graphicx
Il existe donc, en tout, 16 possibilités pour définir le centre de rotation d'un objet. Voici par exemple comment effectuer une rotation par rapport au center de l'objet (centre horizontalement et ligne de base verticalement).
| \rotatebox[origin=cB]{65}{Objet transformer} |
|
listing l11.14 Rotation personnalisée
Voici par ailleurs le résultat des 16 différentes transformations. La ligne de base a été dessinée sur toutes les figures.
Gérer les options
Si vous devez répéter une même valeur d'option pour toutes les images que vous devez inclure dans votre document, cela peut devenir lassant de spécifier l'option à chaque appel de la commande includegraphics
. Vous pouvez spécifier des valeurs par défaut pour toutes les images du document en utilisant la commande presetkeys
de l'extension xkeyval
.
L'effet sera appliqué à toutes les inclusions qui suivent l'appel à la commande presetkeys
, ainsi pour appliquer une option par défaut à toutes les images, on placera la commande dans le préambule. Voici par exemple comment faire pour que toutes les images soient inclinées de 45 degrés.
| \usepackage{graphicx} | \usepackage{xkeyval} | | \presetkeys{Gin}{angle=45}{} |
|
listing l11.15 La commande presetkeys
Le premier paramètre spécifie sur quelles commandes agir, ici, on a mis Gin
pour dire que c'est le comportement par défaut de la commande includegraphics
que l'on souhaite modifier. On peut également spécifier Grot
pour modifier le comportement de la commande rotatebox
.
Gérer les images
Diverses autres commandes sont disponibles et permettent de gérer les images que vous incluez dans vos documents.
Extensions par défaut
Au lieu de retaper à chaque fois les extensions des images lorsque vous les incluez avec la commande includegraphics
, vous pouvez une fois pour toute définir la liste de toutes les extensions que vous utilisez avec la commande DeclareGraphicsExtensions
.
| \DeclareGraphicsExtensions{.ps,.eps} |
|
listing l11.16 La commande DeclareGraphicsExtensions
Création de règles
Les images au format EPS prennent beaucoup de place sur le disque dur. On aimerait donc pouvoir les compresser en .eps.gz
par exemple. On peut le faire, mais dans ce cas, LaTeX ne saura pas comment inclure ces images dans le document final. On peut utiliser la commande DeclareGraphicsRule
pour le dire à LaTeX.
| \DeclareGraphicsRule{.eps.gz}{eps}{.eps.bb}{`gunzip -c #1} |
|
listing l11.17 La commande DeclareGraphicsRule
Quelques explications s'imposent ... Le premier paramètre de la commande est l'extension que LaTeX ne connait pas et qu'elle doit traiter. Le second paramètre dit à LaTeX de quel type de fichier il s'agit, dans notre cas, il s'agit en fait d'une image en EPS.
Le troisième paramètre dit à LaTeX où il peut trouver les informations à propos de la bounding box, dans notre cas, dans le fichier avec l'extension .eps.bb
qu'on devra donc créer pour chacune de nos images compressées. Enfin, le dernier paramètre indique à LaTeX comment obtenir une image qu'il connait et qu'il pourra inclure. Remarquez l'accent grave `
, c'est pour indiquer à LaTeX qu'il s'agit d'une commande système et le #1
représente le nom du fichier.
On peut ainsi également inclure des images au format JPEG et créer une règle pour les convertir en EPS en utilisant le programme jpeg2ps
par exemple.
| \DeclareGraphicsRule{.jpeg}{eps}{.jpeg.bb}{`jpeg2ps -h -r 600 #1} | \DeclareGraphicsRule{.jpg}{eps}{.jpg.bb}{`jpeg2ps -h -r 600 #1 |
|
listing l11.18 Convertir un
JPEG en
EPS
Remarquez deux choses : si on a plusieurs types de fichiers et la même règle à appliquer, il faut écrire plusieurs fois la commande DeclareGraphicsRule
. Ensuite, il faudra modifier les commandes invoquées selon le système sur lequel on se trouve où s'assurer que les programmes utilisés existent partout où vous compilerez vos documents LaTeX.