L'extension graphics
offre toute une série de commandes permettant de réaliser des transformations d'objets, par exemple une rotation, une mise à l'échelle, ...
Les transformations s'appliquent sur des objets, c'est-à-dire du texte, des formules, des dessins, ... Il faut néanmoins savoir que pour voir le résultat de ces commandes, il faudra une visionneuse capable de le faire. L'exportation vers PDF avec pdflatex
ou la conversion vers un fichier ps avec dvi2ps
vous permettra d'utiliser ces commandes.
Pour toutes les commandes qui suivent, vous devrez donc importer le package graphics
.
Mise à l'échelle et déformation : scalebox
La première commande est la commande scalebox
qui permet d'effectuer une mise à l'échelle d'un certain facteur. La commande prend deux paramètres : le premier précise le facteur d'agrandissement et le second l'objet à transformer.
| \scalebox{2}{Texte agrandi deux fois} | | \scalebox{1}{Texte normal} | | \scalebox{0.5}{Texte deux fois} |
|
listing l11.5 La commande scalebox
On peut également utiliser une option de la commande afin de préciser un facteur de mise à l'échelle vertical différent. Dans un tel cas, l'objet redimensionnée perdra sa proportion originale comme le montre l'exemple suivant :
| \scalebox{1.5}[2]{ quelconque} |
|
listing l11.6 Redimensionnement non proportionnel
Cette boite peut-être utilisée pour créer de beaux effets sur du texte pour des titres personnalisés par exemple.
Redimensionnement : resizebox
On peut obtenir exactement les mêmes effets avec la commande resizebox
. Voici la forme générale de la commande.
| \resizebox{Largeur}{Hauteur}{Objet} |
|
listing l11.7 La commande resizebox
Cette commande crée donc une boite avec les dimensions spécifiées et fait en sorte que l'objet occupe toute la surface de la boite. Si on remplace la hauteur ou la largeur par un point d'exclamation !
alors, l'objet sera redimensionné du même facteur dans les deux directions, et restera ainsi proportionnel à l'original.
| : \resizebox{3cm}{1cm}{non-proportionnelle} et \resizebox{3cm}{!}{proportionnelle}. |
|
listing l11.7 La commande resizebox
Rotation : rotatebox
On peut également effectuer une rotation d'un objet en utilisant la commande rotatebox
qui prend deux paramètres : le premier est un angle de rotation exprimé en degré dans le sens trigonométrique (anti-horloger) et le second est l'objet sur lequel il faut appliquer la rotation.
| Rotations \rotatebox{50}{de 50 \degres} ou \rotatebox{150}{de 150 \degres} |
|
listing l11.8 La commande rotatebox
La rotation de l'objet se fait toujours par rapport au coin inférieur gauche de la boite contenant l'objet dont il faut effectuer une rotation comme le montre la figure l11.10.
Symétrie verticale : reflectbox
La dernière transformation possible via une commande du package graphics
permet d'effectuer un effet miroir vertical. L'objet subira une symétrie orthogonale selon un axe vertical.
| \reflectbox{Miroir} Miroir |
|
listing l11.9 La commande reflectbox
Vous aurez peut-être remarqué que l'effet produit par la commande reflectbox
peut être obtenu avec la commande scalebox
comme le montre le listing suivant :
| \scalebox{-1}[1]{Miroir} Miroir |
|
listing l11.10 Symétrie vertical avec scalebox
Composition de transformations
On peut évidemment composer les différentes transformations que nous venons de rencontrer afin d'en crée d'autres. Par exemple pour produire une symétrie orthogonale d'axe horizontal, on peut effectuer une symétrie verticale suivie d'une rotation de 180 degrés. Il faut pour terminer remonter la boite sur la ligne de base en utilisant la commande raisebox
vue au chapitre 9.
| Miroir \\ | \raisebox{\depth}{\rotatebox{180}{\reflectbox{Miroir}}} |
|
listing l11.11 Composition de transformations