Suivant: \fbox & \framebox, Monter: Boxes [Table des matières][Index]
\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: \fbox & \framebox, Monter: Boxes [Table des matières][Index]