Comment limiter la largeur d’une illustration ?#
Supposons que vous ayez des images dont la largeur peut grandement varier :
s’ils sont moins grands que la largeur de la page, vous souhaitez les afficher à leur taille naturelle ;
sinon, vous souhaitez réduire l’échelle de l’image afin qu’elle tienne dans la largeur de la page.
Pour obtenir ce résultat, le code de l’extension graphics donne une solution :
\makeatletter
\def\maxwidth{%
\ifdim\Gin@nat@width>\linewidth % Comparaison de la largeur de l'image
% et de la largeur de la ligne de texte
\linewidth
\else
\Gin@nat@width
\fi
}
\makeatother
Ce code définit une largeur qui a les propriétés souhaitées. Cette largeur
s’utilise ensuite dans la commande \includegraphics
. En voici un exemple
(où l’image est plus large par défaut que le texte).
\documentclass[french]{article}
\usepackage[T1]{fontenc} % Encodage T1 (adapté au français)
\usepackage{lmodern} % Caractères plus lisibles
\usepackage{babel} % Réglages linguistiques (avec french)
\usepackage{mwe} % Quelques images factices
\pagestyle{empty} % N'affiche pas de numéro de page
\usepackage[body={9cm,15cm}]{geometry}
\makeatletter
\def\maxwidth{%
\ifdim\Gin@nat@width>\linewidth % Comparaison de la largeur de l'image
% et de la largeur de la ligne de texte
\linewidth
\else
\Gin@nat@width
\fi
}
\makeatother
\begin{document}
Comme promis, vous trouverez ci-dessous mon projet de nouveau caractère,
agrandi, afin que vous puissez en admirer les magnifiques détails. Notez
son admirable symétrie.
\begin{figure}[h!]
\centering
\includegraphics[width=\maxwidth]{example-image-a}
\caption{Mon projet}
\end{figure}
\end{document}
Bien évidemment, ce code peut être librement adapté pour modifier
la contrainte. Il suffit alors en général de remplacer \linewidth
par une autre expression.