Suivant: , Monter: Boxes   [Table des matières][Index]


20.1 \mbox & \makebox

Synopsis, l’un parmi les suivants :

\mbox{texte}
\makebox{texte}
\makebox[largeur]{texte}
\makebox[largeur][position]{texte}

La commande \mbox crée un boîte, un conteneur pour de la matière. Le texte est composé en mode LR (voir Modes) ainsi il n’est pas coupé en plusieurs lignes. La commande \mbox est robuste, alors que \makebox est fragile (voir \protect).

Comme texte n’est pas coupé en plusieurs lignes, on peut utiliser \mbox pour empêcher une césure. Dans l’exemple suivant, LaTeX ne peut pas faire de césure dans le nom du char, ‘T-34’.

Le char soviétique \mbox{T-34} est l'un des symboles de la victoire
sur le nazisme.

Dans les deux premières versions du synopsis, \mbox et \makebox sont sensiblement équivalentes. Elles créent une boîte juste assez large pour contenir le texte. (Elle sont comme le \hbox du TeX de base).

Dans la troisième version l’argument optionnel largeur spécifie la largeur de la boîte. Notez que l’espace occupé par le texte n’est pas nécessairement équivalent à la largeur de la boîte. D’une part, texte peut être trop petit ; l’exemple suivant crée une boîte d’une ligne entière de largeur :

\makebox[\linewidth]{Examen du chapitre}

où ‘Examen du chapitre’ est centré. Mais texte peut aussi être trop large pour largeur. Voir l’exemple plus bas pour des boîtes de largeur nulle.

Au sein de l’argument largeur vous pouvez utiliser les longueurs suivantes qui font référence aux dimensions de la boîte que LaTeX obtient en composant texte : \depth, \height, \width, \totalheight (la somme de la hauteur et de la profondeur de la boîte). Par exemple, pour fabriquer une boîte où le texte est dilaté au double de sa largeur naturelle vous pouvez écrire ceci :

\makebox[2\width]{Get a stretcher}

Pour la quatrième version du synopsis, la position du texte au sein de la boîte est déterminée par l’argument optionnel position qui peut prendre l’une des valeurs suivantes :

c

Centré (par défaut).

l

(Left) fer à gauche.

r

(Right) fer à droite.

s

(Stretch) dilate l’espace inter-mot dans texte sur la largeur entière ; texte doit contenir de l’espace dilatable pour que cela marche. Par exemple, ceci pourrait être le libellé d’un communiqué de presse : \noindent\makebox[\textwidth][s]{\large\hfil DÉPÊCHE\hfil IMMÉDIATE\hfil}

Une utilisation courante de \makebox est de fabriquer des boîtes de texte de largeur nulle. Dans l’exemple suivant on place dans un questionnaire la valeur des questions à leur gauche.

\newcommand{\pts}[1]{\makebox[0em][r]{#1 points\hspace*{1em}}}
\pts{10}Quelle est la vitesse aérodynamique d'une hirondelle à vide ?

\pts{90}Une hirondelle africaine ou européenne ?

Le bord droit de la sortie ‘10 points ’ (notez l’espace finale après ‘points’) est juste avant le ‘Quelle’. Vous pouvez utiliser \makebox de la même manière quand vous faites des graphiques, comme en TikZ ou Asymptote, où vous mettez le bord du texte à une position connue, quelle que soit la longueur de ce texte.

Pour des boîtes avec cadre voir \fbox & \framebox. Pour des boîtes de couleurs voir Colored boxes.

Il y a une version apparentée de \makebox qui utilisée au sein de l’environnement picture, où la longueur est données en termes d’\unitlength (voir \makebox (picture)).

Comme texte est composé en mode LR, ni une double controblique \\, ni \par ne produisent un saut de ligne ; par exemple \makebox{abc def \\ ghi} produit en sortie ‘abc defghi’ alors que \makebox{abc def \par ghi} produit ‘abc def ghi’, tout deux sur une seule ligne. Pour obtenir des lignes multiples voir \parbox et minipage.


Suivant: , Monter: Boxes   [Table des matières][Index]