Ceci est une ancienne révision du document !
Comment fondre une image dans du texte?
De nombreux packages ont été écrits pour réaliser ce genre d'effets. En voici quelques-uns. Le tableau récapitulatif en bas de cette page en contient d'autres.
floatflt définit des environnements floatingfigure
et
floatingtable
permettant d'entourer la figure ou le tableau de texte.
Voici un exemple:
\documentclass{report} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \usepackage[francais]{babel} \usepackage{floatflt} \begin{document} \begin{floatingtable}[l]{% \begin{tabular}{|p{3cm}|p{3cm}|} \hline package {\ttfamily floatfig} & package {\ttfamily floatflt} \\ \hline gère uniquement les figures & gère les figures et les tableaux \\ \hline place toujours le flottant à droite sur une page impaire, et à gauche sur une page paire & permet de placer le flottant à droite, à gauche, ou en fonction de la parité de la page \\ \hline non utilisable en mode multicolonne & compatible avec le package {\ttfamily multicol} \\ \hline \end{tabular}} \caption{Un tableau}\label{letableau} \end{floatingtable} Le package {\ttfamily floatflt} permet de choisir le placement de la figure : à gauche ({\ttfamily [l]}), à droite ({\ttfamily [r]}), ou « à l'extérieur » ({\ttfamily [p]}) pour les documents recto-verso. Au vu du tableau~\ref{letableau}, le package {\ttfamily floatflt} devrait toujours être préféré à son prédécesseur, sauf si c'est pour utiliser dans un environnement de listes. Il faut noter également que l'environnement {\ttfamily floatingtable} a une structure différente de celle de l'environnement {\ttfamily floatingfigure} : on ne spécifie pas la longueur du flottant, mais on passe tout le tableau en argument. Le flottant est adapté à la longueur du tableau. \end{document}
Le package picinpar permet encore plus de choses : en
particulier, mettre du texte tout autour du flottant, pas uniquement à
droite ou à gauche et pas uniquement au-dessous. Techniquement, c'est
très beau, pratiquement, c'est assez difficile à lire. Les
environnements que propose ce package s'appellent figwindow
et
tabwindow
, qui prennent en argument optionnel le nombre de lignes de
texte qui doivent précéder le flottant, le placement horizontal du
flottant (l
, c
, r
), le contenu du flottant, et la légende.
Ensuite vient le texte du paragraphe. L'exemple suivant montre comment
tout cela fonctionne. Noter que ce package est incompatible avec AmSLaTeX.
\documentclass{report} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \usepackage[francais]{babel} \usepackage{boxedminipage} \usepackage{picinpar} \pagestyle{empty} \begin{document} \section*{Le SNES appelle à la grève le jour de la première épreuve du bac} \def\wincaption{} \begin{tabwindow}[3,r,% {\begin{boxedminipage}{4.5cm} \begin{itemize} \item Georges Dupon-Lahitte, président de la FCPE : "Nous n'accepterons pas de boycott" \item M. Raffarin invite les grévistes à l'"apaisement", M. Juppé lance une pétition de soutien à la réforme \item \'Education : le projet de loi sur la décentralisation reporté à la rentrée \item \'Education : le report de l'examen de l'avant-projet de loi sur la décentralisation est à l'étude \end{itemize} \end{boxedminipage}},] {\bfseries Si le gouvernement ne retire pas son projet de décentralisation, le principal syndicat des collèges et de lycées lance un mot d'ordre de « grève unitaire » le 12 juin, jour de l'écrit de philosophie. Pour Luc Ferry, il est « inacceptable de prendre les élèves en otage et d'ajouter un stress à une épreuve ». } \indent La menace sur le bac se précise. Vendredi 6 juin, à la sortie du ministère de l'éducation nationale où se tenait la seconde série d'entretiens gouvernement-syndicats, le secrétaire général de l'Union nationale des syndicats de l'éducation nationale (Unsen-CGT), Denis Baudequin, a lancé un appel à une action, jeudi 12 juin, date de la première épreuve écrite du baccalauréat. Même si le syndicat est très minoritaire (1\% des voix aux élections professionnelles), son appel à durcir la mobilisation colle à la radicalisation des enseignants. \indent La veille, le conseil national du SNES, syndicat majoritaire dans le second degré (51,4\% aux élections professionnelles), a demandé au ministre d'« annoncer des mesures susceptibles d'amorcer un retour à la sérénité dans les établissements scolaires ». Si « le gouvernement persiste dans son refus de retirer ses projets », le SNES appelle à « une nouvelle action de grève unitaire le 12 juin », jour de l'épreuve de philosophie. Cette proposition a été soumise à la FSU et aux autres organisations syndicales de l'éducation nationale. [...] \end{tabwindow} \null\hfill\emph{Le Monde}, 7 juin 2003 \end{document}
wrapfig est une autre variante permettant de fondre une image dans le texte. Il est possible de faire dépasser la figure (ou le tableau) dans la marge, par exemple:
\documentclass{article} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \usepackage[francais]{babel} \usepackage{wrapfig} \usepackage{array} \usepackage{pifont} \begin{document} \section{Fondre une image ou un tableau dans le texte} \begin{wraptable}{r}[1cm]{8.5cm} \newcommand{\p}{\ding{51}} \newcommand{\m}{\ding{55}} \newcommand\w{} \newcommand\h{h} \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} \caption{Les différents packages permettant de fondre une image dans le texte}\label{tab} \end{wraptable} Le tableau~\ref{tab} contient l'ensemble des résultats d'un test comparant les différents packages permettant de fondre un tableau ou une image dans un paragraphe. Ce test a été effectué par Piet Van Oostrum. Avant de commencer à décrire la signification de chaque colonne, je précise que le package {\ttfamily wrapfig} n'est pas compatible avec un environnement de type liste. En fait, je dis cela juste pour gagner un peu de place et commencer ma liste un peu plus bas... Allons-y. La signification de chaque colonne est la suivante: \begin{enumerate} \item[A] gestion des figures (légende, compteur, liste) \item[B] gestion des tableaux (légende, compteur, liste) \item[C] possibilité d'aligner le flottant à gauche ou à droite \item[D] possibilité d'aligner le flottant à l'extérieur, dans le cas d'un document recto-verso \item[E] possibilité de mettre du texte des deux c\^otés du flottant \item[F] possibilité de placer le flottant après le début du paragraphe \item[G] calcul automatique de la taille (pour {\ttfamily wrapfig}, seule la hauteur peut \^etre calculée) \item[H] compatible avec un environnement de liste \item[I] fonctionne avec {\ttfamily twocolumn} \item[J] fonctionne avec {\ttfamily multicol} \end{enumerate} \end{document}
picins est le seul package permettant de fondre une image au milieu d'un environnement de liste. Ce package permet également d'encadrer la figure. Par contre, il ne gère que les figures, et travaille donc avec le compteur et la liste des figures exclusivement.
\documentclass{article} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \usepackage[francais]{babel} \usepackage{picins} \begin{document} \pichskip{1cm} Voici les avantages du package {\ttfamily picins}: \begin{itemize} \item il permet de placer des figures dans des environnements de type « liste », contrairement aux autres packages du même genre. Il faut cependant placer la commande \verb+\parpic+ à l'intérieur de l'environnement liste pour que cela marche ;% \parpic[ro]{ \Huge F.A.Q.\ \LaTeX{} \vrule height 2.5ex depth 1ex width 0pt % Le \vrule, c'est pour espacer un peu le cadre }% \item il s'utilise de façon très simple, et calcule le nombre de lignes à rétrécir ; \item il permet, de manière très simple, d'encadrer la figure. Il est également possible de placer une légende au-dessous ou à côté de la figure, dans ou à l'extérieur de l'éventuel cadre. \end{itemize} \end{document}
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*}
Sources: