Les boîtes et l'environnement minipage

Pour tester les commandes de cette page et de la suivante, créez un document TD4.tex de classe article, avec votre préambule favori. Vous le remplirez au fur et à mesure.

Les boîtes

Vous avez vu juste avant l'insertion d'une image dans un texte. LaTeX traite l'image comme si c'était un caractère comme les autres. Mais évidemment, sa taille n'est en général pas la même que celle des caractères environnants : elle est imposée par la résolution d'origine de l'image (nombre de pixels), et éventuellement modifiée grâce aux options.

C'est exactement le principe des boîtes en LaTeX. On peut en fait se représenter que tout objet sera contenu dans une boîte de taille fixée, elle-même éventuellement contenue dans un autre boîte (tout objet ? un caractère, un mot, un paragraphe, une page, etc...), et que les boîtes sont séparées les unes des autres par des espaces flexibles.
C'est grâce à cela que le logiciel peut calculer la mise en page de l'ensemble.

Vous pouvez vous-même créer des boîtes dans du code LaTeX pour des usages particuliers, ce qui vous permet à peu près n'importe quelle fantaisie (mais là, on n'est plus du tout concentré sur son exposé, on est parti pour faire de la composition...).
Fantaisie mise à part, une boîte étant traitée comme un seul caractère, elle permet d'éviter par exemple la césure d'un mot en fin de ligne (nom propre, sigle, ...), ou encore de mettre côte à côte des objets qui devraient être dans deux paragraphes différents (deux listes, comme dans le TD précédent).

Variétés petites et syntaxe

Pour créer une boîte avec un petit contenu vous utilisez la commande (sans ou avec les options entre crochets)
\makebox{contenu_de_la_boîte}
\makebox[largeur][position]{contenu_de_la_boîte}
et si vous voulez un cadre autour de cette boîte vous écrivez \framebox au lieu de \makebox.

Attention ! le contenu de la boîte sera écrit sur une seule ligne, au risque de déborder de la page s'il est trop long !
Pour obtenir une boîte contenant plusieurs lignes, utiliser l'environnement minipage (voir plus bas).

Avec l'option largeur vous pouvez créer une boîte plus large ou plus étroite que son contenu théorique (la largeur de ce dernier est la largeur réelle de ce que vous avez mis dans la boîte, par exemple du texte).
Ensuite, avec l'option position vous choisissez comment le contenu sera placé dans la boîte. Les positions possibles sont c, l, r, s qui signifient respectivement centré, aligné à gauche, aligné à droite, justifié.

Il existe un autre type de boîte que vous pouvez déplacer verticalement en fixant une longueur de montée (qui peut être négative si vous voulez descendre sous la ligne) :

\raisebox{montée}[débord_haut][débord_bas]{contenu_de_la_boîte}
Les deux options de débord permettent de faire plus ou moins déborder la boîte sur la ligne du dessus et/ou du dessous (par défaut, les trois lignes ne se chevaucheront pas; par contre elles le feront certainement si vous mettez 0pt pour ces deux options).
Un exemple simple d'utilisation de \raisebox pour s'amuser :
Après cette
c\raisebox{3pt}{o}\raisebox{6pt}{l}\raisebox{7.5pt}{l}\raisebox{6pt}{i}\raisebox{3pt}{n}e, 
il y a un
\raisebox{-3pt}{t}\raisebox{-6pt}{r}\raisebox{-12pt}{o}\raisebox{-24pt}{u}, 
mais\\
on peut continuer à écrire en-dessous sans se retrouver dedans car on n'a pas modifié le débordement par défaut. 

Enfin, les boîtes noires :

\rule[montée]{largeur}{hauteur}
Par exemple :
Des \rule{3mm}{1pt}\rule[-1mm]{2mm}{2cm}\rule[1mm]{1cm}{5mm} boîtes noires.

La minipage

L'environnement minipage (voir le TD3) crée une boîte qui contient une page complète. Une minipage est en fait une boîte dans laquelle vous pouvez mettre plusieurs lignes et/ou paragraphes, mais aussi à peu près tout ce que vous pourriez mettre dans une vraie page.

Puisque l'environnement minipage est traité comme un simple caractère, une minipage ne se casse pas sur plusieurs pages du document, elle doit tenir sur une seule page (mais c'est mieux que sur une seule ligne !).
Par conséquent, pour ceux qui ne veulent absolument pas laisser faire LaTeX avec les flottants (ça leur passera...), il serait tentant de placer ces derniers dans des minipages.
N'y pensez même plus, on ne peut pas mettre de flottant dans une minipage...