US

Manipulation de boîtes

Les boites

Comment LaTeX gère-t'il le document ? Il travaille en utilisant des boîtes qu'il ajuste les unes par rapport aux autres, qu'il emboîte les unes dans les autres. Chaque caractère est dans une boîte, ainsi que chaque mot, chaque paragraphe.

Boîtes
fig l9.6 Boîtes

La figure l9.2 montre un mot avec les différentes boîtes autour. On voit tout d'abord une boîte par lettre (en vert) et une boîte pour le mot (en orange). D'autres paramètres interviennent, en bleu on voit une ligne appelée ligne de base du mot.

La ligne de base délimite deux parties sur la boite du mot : la hauteur de la boite est la longueur à partir de la ligne de base jusque la plus haute boîte tandis que la profondeur de la boite est la longueur de la ligne de base jusque la plus basse boite.

Quelques simples boites

La commande mbox permet de créer une simple boite autour d'un texte, empêchant notamment ainsi LaTeX de séparer son contenu pour par exemple effectuer une césure. Attention, le texte que l'on emboite doit tenir sur une ligne de texte.

1 
\mbox{Cette phrase ne sera pas par \LaTeX}
listing l9.13 La commande mbox

On a aussi la commande makebox qui est un peu plus fournie. On peut ainsi spécifier la largeur de la boite et la position du texte à l'intérieur par le biais de deux options de la commande. La forme générale de la commande est :

1 
\makebox[Largeur][Position]{Texte}
listing l9.14 La commande makebox

La première option Largeur est la largeur de la boite, la seconde option est la position du texte dans la boite, par défaut, quand on ne spécifie rien, le texte est centré. Sinon, on peut mettre les valeurs suivantes :

  • l : Pousse le texte contre le bord gauche de la boite ;
  • r : Pousse le texte contre le bord droit de la boite ;
  • s : Pour que le texte occupe toute la largeur de la boite.
1 
2 
3 
4 
5 
6 
7 
\makebox[5cm]{}
 
\makebox[5cm][l]{Texte gauche}
 
\makebox[5cm][r]{Texte droite}
 
\makebox[5cm][s]{Toute la largeur}
listing l9.15 Exemple de makebox
Exemple de makebox
fig l9.8 Exemple de makebox

Deux autres commandes fonctionnent de la même manière que celles que nous venons de découvrir si ce n'est qu'elles ajoutent un cadre autour de la boite. Il s'agit des commandes fbox et framebox.

La commande raisebox

La commande raisebox permet d'englober du texte dans une nouvelle boite et ensuite de la monter ou descendre par rapport à la ligne de base.

1 
Comme tu es \raisebox{3ex}{\fbox{grand}} mon ami.
listing l9.16 Exemple de raisebox
Exemple de raisebox
fig l9.9 Exemple de raisebox

Il est également possible de préciser la hauteur et la profondeur de cette boite en utilisant des options de la commande raisebox. Voici la version complète de la commande :

1 
\raisebox{Difference}[Hauteur][Profondeur]{Texte}
listing l9.17 La commande raisebox

D'autres boites spéciale existent pour par exemple effectuer une rotation sur une portion de texte, ou effectuer un changement d'échelle, elles seront abordées dans le chapitre sur les graphismes avancés.

Dimension des boites

À chaque boite en cours de traitement est associée quatre longueurs accessibles via les commandes de longueur reprises dans le tableau l9.4. Ces longueurs peuvent être utilisées lorsque vous fixez par vous-mêmes les dimensions des boites.

Commande Description
\width Largeur de la boite courante
\height Hauteur de la boite courante
\depth Profondeur de la boite courante
\totalheight Hauteur totale de la boite courante, c'est-à-dire la somme de sa hauteur et de sa profondeur
tab l9.6 Commandes de longueur associées aux boites

On peut ainsi facilement définir une boite qui encadre un texte, la boite étant deux fois plus large que le texte contenu dans la boite, comme le montre l'exemple suivant.

1 
\framebox[2\width]{Cadre deux fois plus large que le texte}
listing l9.18 Modifier la dimension d'une boite
Modifier la dimension d'une boite
fig l9.10 Modifier la dimension d'une boite

Vous pouvez également faire une boite qui a la largeur du texte du document comme le montre l'extrait de code suivant.

1 
\framebox[\textwidth]{Cadre qui a la largeur du texte du document}
listing l9.19 Modifier la dimension d'une boite (2)

La commande parbox

Avec les boites que l'on vient de voir, il est juste possible d'y insérer du texte, mais on ne pourra pas insérer plusieurs paragraphes par exemple. Pour pouvoir insérer des paragraphes, on doit utiliser une autre boite que l'on obtient avec la commande parbox.

1 
2 
3 
4 
5 
6 
7 
8 
9 
\fbox{
\parbox{3cm}{
\setlength{\parskip}{.5cm}
Paragraphe 1
 
Paragraphe 2
 
Paragraphe 3}
}
listing l9.20 La commande parbox
Exemple de parbox
fig l9.11 Exemple de parbox

La commande parbox prend un paramètre qui est la largeur de la boite et prend également en option l'alignement de la boite par rapport à la ligne de base. Les valeurs possibles sont b et t. La figure l9.12 illuste l'effet de cette option pour les minipages, c'est pareil pour les parbox.

L'environnement minipage

Cet environnement est très particulier et comme on peut le deviner à son nom, il permet de créer une mini page dans une page « normale », c'est-à-dire qu'il est possible de donner à un morceau de page les propriétés d'une page entière. Il est donc possible de placer dans cet environnement d'autres environnements, d'avoir des notes de bas de page ... locale, etc... comme si on écrivait une page indépendante, mais dans une autre page.

1 
2 
3 
\begin{minipage}[position]{largeur}
% contenu de la minipage
\end{minipage}
listing l9.21 Environnement minipage

L'option position permet d'aligner la boite dans laquelle la minipage sera mise par rapport à la ligne courante du texte. Si on ne spécifie pas l'option, la ligne du milieu de la boite sera alignée avec la ligne courante. Sinon, on peut soit spécifier b ou t pour aligner la ligne du bas ou du haut de la boite sur la ligne courante. La figure l9.10 montre ces trois configurations.

Position minipage
fig l9.12 Position minipage

Voici par exemple un texte sur plusieurs lignes et encadrés. On aura pu obtenir exactement le même résultat avec la commande parbox vue un peu plus haut, mais parbox ne peut gérer que des petits paragraphes et rien d'autre, hors de question de mettre un tabular dans un parbox par exemple alors que minipage l'acceptera sans problèmes.

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
\fbox{
\begin{minipage}{3cm}
\setlength{\parskip}{.5cm}
Paragraphe 1
 
Paragraphe 2
 
Paragraphe 3
\end{minipage}
}
listing l9.22 Exemple de minipage
Exemple de minipage
fig l9.13 Exemple de minipage

Grâce aux minipages, on peut réaliser encore bien des choses, mais nous les découvrirons un peu plus tard dans le tutoriel.

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