US

Retour sur les inclusions d'images

Pour rappel, avec l'extension graphics, il existe deux commandes pour inclure une image dans un document LaTeX. Il s'agit des commandes :

1 
2 
\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.

1 
\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.

1 
\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
Points de référence pour les rotations
fig l11.14 Points de référence pour les rotations

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).

1 
\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.

Les différents points de référence
fig l11.15 Les différents points de référence

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.

1 
2 
3 
4 
\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.

1 
\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.

1 
\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.

1 
2 
\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.

  • Espace membre
  • Learning Center
  • Les forums
  • Livre d'or
  • Imprimer
  • Boutique
  • Info
  • Règlement
  • Erreur
  • Newsletter