Bonjour,
Une des plus grandes difficultés (pour moi, la plus grande) de $latex \LaTeX$ est la gestion des figures et des tableaux. C’est pourquoi je vais essayer d’être le plus exhaustif possible dans ce billet. Après quoi, vous pourrez (presque) tout faire !
Les flottants
Un flottant est une image (ou un tableau) dont la position n’est pas définie exactement. Le principe est de juxtaposer un maximum de flottants sur la même page tout en modifiant au minimum le texte. L’inconvénient est donc qu’une figure pourrait se retrouver plusieurs pages après avoir été appelée. ‘Pourrait’ si vous ne preniez pas les précautions de rigueur, que je détaillerai à la fin de ce billet.
Table des matières
Un exemple, comme d’habitude ?
On ne peut rien vous cacher :
- la source.tex
- les trois images nécessaires à la compilation : 1, 2 et 3
- le rendu après compilation
Les figures
Je pense que l’exemple parle de lui même. On peut définir la taille de l’image de façon absolue (en cm, pouce etc.) mais le plus propre est de la définir de façon relative, comme dans l’exemple. Il est possible de définir la largeur (width), la hauteur (height) ou les deux. On peut aussi utiliser scale, qui donne le facteur d’échelle entre l’image d’origine et l’image dans le document, pas vraiment utile d’après moi. \includegraphics est compatible (entre autres) avec les format JPEG, PNG et… PDF.
En effet, si vous avez des figures vectorielles (faites sous Illustrator Inkscape par exemple), vous pouvez les inclure et elle resteront donc vectorielles. Le top quoi. Par contre, pdflatex n’est pas compatible avec le PostScript Encapsulé (eps). Il vous faudra donc les convertir en pdf.
Dans l’exemple, vous aurez aussi repéré l’argument ‘angle’ dans le \includegraphics. Pas très utile, mais ça peut toujours servir. Vous pouvez aussi faire une symétrie verticale en plaçant le includegraphics dans \reflectbox{}
C’est l’environnement figure qui indique qu’on travaille sur un flottant. L’argument ‘h’ signifie ‘here’, cela indique la position souhaitée du flottant. On peut mettre ‘t’ (top) ou ‘b’ (bottom) ou ‘p’ (une page spéciale pour les flottants). Il est possible de donner plusieurs positions, dans l’ordre de préférence (par exemple ‘ht’ signifie ‘ici, ou sinon en haut d’une page’). On peut techniquement forcer la position avec h !, mais cette commande est vivement déconseillé (voir en fin d’article pour des solutions plus propres).
L’environnement subfigure
Comme son nom l’indique, il sert à définir des sous figures, numérotées (a) (b) etc. Il faut pour cela charger le package adéquat avec la commande :
\usepackage{subfigure}[2002/03/15 v2.1.5 subfigure package] |
Sa syntaxe est un peu particulière : on met les sous-caption entre crochets. Le rendu est vraiment très pro : en définissant des labels aux sous-figures, on peut faire référence à chacune d’elles, séparément (voir l’exemple en pdf).
[Edit :] Ce package est obsolète, il vaut mieux utiliser Subfig.
Les tableaux
Un tableau élémentaire a une syntaxe assez simple (on l’a déjà vu dans le premier billet). L’argument donné à l’ouverture de l’environnement tabular est la position du texte dans les colonnes (‘l’ pour gauche, ‘c’ pour centré et ‘r’ pour droite). Il faut donc autant de lettres que de colonnes. Les filets verticaux y sont définis par les barres verticales | (tube, ou pipe en anglais).
En plaçant le tableau dans l’environnement ‘table’, il est déclaré comme flottant.
Un tableaux à double entrée est en fait un tableau complet dont les filets sont partiels (la cellule supérieure gauche étant vide). La commande \multirow{n}{texte} signifie que la zone de texte sera étendue sur n lignes à partir de la cellule considérée (et pareil pour les colonnes, facile quoi), permettant ainsi les fusions de cellule.
Le positionnement des flottants
Comme dit dans l’introduction, il arrive que les flottants soient rejetés un peu trop loin à notre goût. Pour ça, on peut utiliser le package ‘placeins’, qui fournit la commande \FloatBarrier. Le principe est de forcer latex à poser tous les flottants en attente à l’appel de cette commande. Et pour aller plus loin, on peut automatiser cette fonction à chaque \section en chargeant placeins avec l’option suivante :
\usepackage[section]{placeins} |
Il est aussi possible de ne rien déclarer du tout comme flottant. Le problème vient alors du caption, qui refuse de bosser en dehors d’un environnement flottant. Pour ça on peut donc charger le package ‘caption’ et ensuite utiliser la syntaxe suivante :
\begin{center} \includegraphics[width=0.5\textwidth]{image.png} \captionof{figure}{La légende du non-flottant} \end{center} |
Un flottant sur deux colonnes
Dans le cadre de la rédaction d’un article scientifique, il est possible que le format qui vous soit imposé soit du double colonnes (classe elsarticle pour Elsevier par exemple). Si vous avez des figures trop larges, sachez qu’il est alors possible de les étendre sur deux colonnes en rajoutant * après figure (ou table). Ce qui donne quelquechose comme suit :
\begin{figure*}[h] \centering \includegraphics[width=0.25\textwidth]{image.png} \caption{Une grosse figure qui prend de la place} \end{figure*} |
Voila, maintenant que vous savez (presque) tout de $latex \LaTeX$, reste à trouver une occasion de mettre tout ça en pratique !
Bonne compilation.