Comment fondre une image dans du texte?

$\Reponse$ 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>\LaTeX</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}

$\Reponse$ 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}
\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{Tableau récapitulatif}
\label{tabrecap}
de l'exemple \vref{ex=picins}
\end{center}
\end{table*}
composition/flottants/faire_couler_le_texte_autour_d_une_figure.txt · Dernière modification: 2018/12/09 11:15 par jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0