Latex – Centrer 3 images côte à côte grâce aux figures et au package subcaption

Partager cet article

Temps estimé pour la lecture de cet article : 20 min

Introduction

Hello World !! Aujourd’hui, j’aimerais parler d’un problème assez récurrent en Latex à savoir l’alignement de blocs. Qui n’a pas déjà galéré à aligner 3 pauvres images qui se battent en duel ? Plein de solutions sur internet, beaucoup qui ne sont pas efficaces. C’est frustrant surtout pour un langage qui permet de séparer le fond de la forme. Alors regardons comment on peut régler ça, afin d’obtenir ce genre de résultat :

latex-figures-example

Intéressé ? Alors regardons ça dans le détail.

Insérer une image en Latex

On va commencer par une commande basique de Latex, comment insérer une image, pour se faire on utilise le package graphicx. Ensuite pour insérer une image, il faut utiliser la commande \includegraphics{image}.

On peut alors spécifier la taille avec des arguments optionnels : \includegraphics[width=3cm,height=3cm]{image}. On peut également ajouter un angle spécifiant d’insérer l’image tournée de x degrés ou encore changer l’échelle de l’image, comme ceci par exemple :

\includegraphics[scale=1.2, angle=45]{image}

Si vous voulez plus d’informations sur les arguments disponibles, allez voir ce sympathique tutoriel.

Les figures

Les figures sous LaTeX sont des objets flottants que ce dernier va placer à l’endroit que vous aurez choisi. Voici un tableau récapitulatif des différents placements possibles :

Argument Explication(s)
h (here) Placer la figure dans le texte à l’endroit où l’environnement a été appelé (si l’espace disponible sur la page le permet).
t (top) Placer la figure en haut d’une page de texte.
b (bottom) Placer la figure en bas d’une page de texte.
p (page) Placer la figure sur une page séparée du reste du texte.

Certaines fois le placement est capricieux pour forcer la figure à se situer là où vous le désirez-vous pouvez utiliser le !. On peut utiliser quelques commandes afin d’améliorer nos figures :

  • Toujours pour le placement, la commande \centering permet de centrer l’image latéralement.
  • Pour donner une légende à une figure, on utilise la commande \caption. La numérotation des légendes est automatique. Selon que l’on place la ligne \caption{} avant ou après l’image elle-même, la légende apparaîtra au-dessus ou au-dessous.

Un petit exemple qui ne mange pas de pain (sisi paye ton expression :D).

\documentclass[a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{graphicx}
\usepackage{fullpage}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{lipsum}
\begin{document}
\chapter*{Lorem Ipsum}
\begin{figure}[!h]
\centering
\includegraphics[width=7cm]{data/4.jpg}
\caption{Cute husky powwwa !!}
\end{figure}
\end{document}

Ce qui nous donne :

latex-figure-husky

Enfin,il faut savoir qu’on peut faire référence à une figure, on utilise alors la commande \label{mot-clé} et ensuite pour faire référence à la dites figure ainsi marquée, on utilise la commande \ref{mot-clé} (ou \pageref{mot-clé} pour avoir le numéro de la page). La création de la référence se fait après la légende, comme ceci par exemple :

\caption{Cute husky powwwa !!}
\label{husky}

Ensuite, pour référencer la figure, il suffit de taper dans son texte :

Regardons ce magnifique exemple de~\ref{husky}, page~\pageref{husky}...

Le package subcaption

C’est bien beau tout ton bordel mais moi je veux juste aligner mes 3 putains d’images !!!

On y vient, on y vient, maintenant qu’on a vu les bases, on va voir le package miraculeux qui va nous permettre d’aligner 3 figures côte à côte et donc vous l’aurez compris 3 images ! C’est le package subcaption, dont voici la documentation (format pdf tout ça).

Le principe est simple, on va pouvoir créer un objet constitué de plusieurs figures, donner un titre à ses sous figures et même à la figure principale ! Comme ce sont des figures on peut donc y mettre du texte ou encore des images 🙂 !

Grâce au package, on peut donc utiliser l’environnement \subfigure, dont les arguments correspondent à celui de l’environnement figure d’où l’intérêt des rappels (ahah, m’voyez que c’était utile :D) !

Cas pratique : aligner 3 images côte à côte

Et donc voici, le code correspond à l’image du début de l’article, mais si vous savez les chatons so cute.

\documentclass[a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{graphicx}
\usepackage{fullpage}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{lipsum}
\begin{document}
\chapter*{Lorem Ipsum}
\lipsum[1]
\begin{figure}[!h]
\centering
\begin{subfigure}[b]{0.3\textwidth}
\includegraphics[width=\textwidth]{data/1.jpg}
\end{subfigure}
\begin{subfigure}[b]{0.3\textwidth}
\includegraphics[width=\textwidth]{data/2.jpg}
\end{subfigure}
\begin{subfigure}[b]{0.3\textwidth}
\includegraphics[width=\textwidth]{data/3.jpg}
\end{subfigure}
\caption{3 images side by side, OMG}
\end{figure}
\lipsum[1]
\end{document}

Comme vous pouvez le voir c’est simple, il suffit de maîtriser l’environnement figure. Allez, c’est parti améliorer moi tous ces rapports/livres 😀 !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *