Ceci est une ancienne révision du document !


Comment habiller une image ou une citation avec du texte?

FIXME Le contenu de cette page a besoin d'une remise à jour, les choses ayant bien évolué depuis l'article de Piet van Oostrum de 1996.

Il existe plusieurs extensions LaTeX qui prétendent faire cela, mais elles ont tous leurs limites car le moteur TeX lui-même n'est pas vraiment conçu pour résoudre ce genre de problème. Piet van Oostrum a recensé les extensions disponibles en 1996 et a publié ses conclusions dans Maps, le journal du groupe néerlandais des utilisateurs de TeX, NTG.

Un tableau récapitulatif en bas de cette page propose également d'autres solutions.

Avec l'extension “floatflt”

L'extension floatflt est une version améliorée (pour LaTeX2e) de l'antique floatfig.sty, et sa syntaxe est :

\begin{floatingfigure}[options]{largeur de la figure}
 % Contenu de la figure
\end{floatingfigure}

Il existe un environnement floatingtable, pour les tableaux, de syntaxe similaire.

Les tableaux ou figures peuvent être placés à gauche ou à droite, ou alternativement sur les pages paires ou impaires d'un document recto-verso.

L'extension est compatible avec l'extension multicol, mais ne fonctionne pas bien dans le voisinage des environnements de listes.

Avec l'extension “wrapfig”

Wrapfig a pour syntaxe :

\begin{wrapfigure}[hauteur de la figure en nombre de lignes]{l,r,...}[décalage]{largeur}
  % Figure, légende, etc.
\end{wrapfigure}

Il existe un environnement wraptable, pour les tableaux, de syntaxe est similaire.

La hauteur peut être omise, auquel cas elle sera calculée à partir de la taille de la figure ; l'environnement utilisera la plus grande des deux valeurs suivantes: la largeur spécifiée ou la largeur réelle. Le paramètre {l,r,etc.} peut également prendre la valeur i (pour inside, intérieur) ou o (pour outside, extérieur) pour les documents recto-verso, et les majuscules I et O peuvent être utilisées pour indiquer que l'image doit flotter. Le débordement permet de décaler la figure dans la marge. La figure ou le tableau apparaîtra dans la liste des figures ou des tableaux si vous utilisez la commande \caption.

Les environnements ne fonctionnent pas dans les environnements de liste qui se terminent avant la fin de la figure ou du tableau, mais ils peuvent être utilisés dans une \parbox ou une minipage, et dans une mise en page en deux colonnes.

Avec l'extension “picins”

L'extension picins fait partie d'un vaste ensemble qui permet l'inclusion d'images (par exemple, avec une ombre sous l'image, ou sous divers formats MS-DOS, etc.). La commande pour insérer une image au début d'un paragraphe est la suivante :

\parpic(largeur,hauteur)(décalage en horizontal,décalage vertical)[Options][Position]{Image}
 % Texte du paragraphe

Tous les paramètres, sauf l'image elle-même, sont facultatifs. L'image peut être positionnée à gauche ou à droite, encadrée par un rectangle, un ovale, une ombre, un rectangle pointillé, et on peut lui ajouter une légende qui sera incluse dans la liste des figures.

Malheureusement (pour ceux qui ne parlent pas allemand), la documentation est en allemand. Piet van Oostrum en a écrit un résumé en anglais.

Toutes les solutions ci-dessus traitent des insertions dans les marges; elles sont capables de tirer parti de la primitive TeX \parshape qui permet d'ajuster les marges du texte d'un paragraphe, ligne par ligne (Knuth fournit un exemple d'une telle utilisation, avec du texte inscrit dans un cercle, à moitié dans la marge, au chapitre 14 du TeXbook). Insérer une image au milieu d'un paragraphe est beaucoup plus délicat… L'extension cutwin est faite pour ça, comme son nom l'indique, elle « découpe une fenêtre » dans le texte. Elle requiert un ensemble de « largeurs de ligne partielles » (deux par ligne), et compose la section découpée du paragraphe ligne par ligne. Les exemples dans la documentation du paquetage sont séduisants.

Avec l'extension “figflow” (pour Plain Tex uniquement)

Les utilisateurs de Plain TeX n'ont qu'une seule possibilité à leur disposition: figflow (qui ne fonctionne pas avec LaTeX). Figflow ne sait insérer les figures qu'en début de paragraphe, mais il semble parfaitement fonctionnel. Sa syntaxe est

\figflow{<largeur>}{<hauteur>}{<figure>}
L'utilisateur doit veiller à ce que les dimensions soient correctes et que la figure tienne sur une page.

Avec l'extension “pullquote”

Une autre solution est proposée par Ludovic Vimont, avec le package pullquote (non disponible sur CTAN):

\def\happy {
  \begin{tikzpicture}
    \clip (0,0) circle (2.7cm);
    \node (0,0) {\includegraphics[width=6cm]{happy2.jpg}};
  \end{tikzpicture}
}
 
...
 
\begin{pullquote}{shape=circular,object=\happy}
  \lipsum[1-3]
\end{pullquote}

Tableau récapitulatif

\begin{table*}[t]
\newcommand{\p}{{\color[rgb]{0,.6,0}\checkmark}}
\newcommand{\m}{{\color[rgb]{.6,0,0}{$\times$}}}
\newcommand\w{}
\newcommand\h{h}
%
\begin{center}
\caption{Tableau récapitulatif}\label{tabrecap}
\begin{tabular}{|l|*{11}{c|}}
\cline{2-11}
\multicolumn{1}{c|}{} &
 A & B & C & D & E & F & G & H & I & J \\ \hline
{\ttfamily picinpar} &
\p &\p &\p &\w &\p &\w &\p & \w& \w& \w\\ \hline
{\ttfamily picins} &
\p &\m &\p &\p &\w &\w &\p & \p& \w& \w\\ \hline
{\ttfamily floatfig} &
\p &\m &\m &\p &\w &\w &\w & \w& \m& \w\\ \hline
{\ttfamily floatflt} &
\p &\p &\p &\p &\w &\w &\w & \m& \w& \p\\ \hline
{\ttfamily wrapfig} &
\p &\p &\p &\p &\w &\w &\h & \m& \p& \w\\ \hline
{\ttfamily window} &
\m &\m &\p &\w &\p &\p &\p & \w& \w& \w\\ \hline
{\ttfamily flow} &
\m &\m &\p &\w &\w &\w &\p & \w& \w& \w\\ \hline
\end{tabular}
\end{center}
\end{table*}


\begin{table*}[t]
\newcommand{\p}{{\color[rgb]{0,.6,0}\checkmark}}
\newcommand{\m}{{\color[rgb]{.6,0,0}{$\times$}}}
\newcommand\w{}
\newcommand\h{h}
%
\begin{center}
\caption{Tableau récapitulatif}\label{tabrecap}
\begin{tabular}{|l|*{11}{c|}}
\cline{2-11}
\multicolumn{1}{c|}{} &
 A & B & C & D & E & F & G & H & I & J \\ \hline
{\ttfamily picinpar} &
\p &\p &\p &\w &\p &\w &\p & \w& \w& \w\\ \hline
{\ttfamily picins} &
\p &\m &\p &\p &\w &\w &\p & \p& \w& \w\\ \hline
{\ttfamily floatfig} &
\p &\m &\m &\p &\w &\w &\w & \w& \m& \w\\ \hline
{\ttfamily floatflt} &
\p &\p &\p &\p &\w &\w &\w & \m& \w& \p\\ \hline
{\ttfamily wrapfig} &
\p &\p &\p &\p &\w &\w &\h & \m& \p& \w\\ \hline
{\ttfamily window} &
\m &\m &\p &\w &\p &\p &\p & \w& \w& \w\\ \hline
{\ttfamily flow} &
\m &\m &\p &\w &\w &\w &\p & \w& \w& \w\\ \hline
\end{tabular}
\end{center}
\end{table*}


Sources:

3_composition/flottants/habiller_une_image_avec_du_texte.1624902882.txt.gz · Dernière modification : 2021/06/28 17:54 de jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0