Comment fondre une image dans du texte ?

* Le package 'floatfig', de T. Kneser, disponible sur ftp://ftp.inria.fr/pub/TeX/CTAN/macros/latex/contrib/other/floatfig/, permet d'entourer une figure de texte de manière très efficace grâce à l'environnement floatingfigure. Ce package a été conçu pour LaTeX2.09, pour des documents sans colonnes. Exemple : \begin{floatingfigure}[l]{4cm} \includegraphics[width=4cm]{dessin} \caption{Titre} \end{floatingfigure} %%%% fin exemple %%%% Remarque : le [l] du \begin{float...} sert à mettre la figure à gauche. [r] permet de l'avoir à droite, [p] la met à gauche sur une page de gauche et à droite sur une page de droite. * Le package 'floatflt', de T. Kneser et M. Dahlgren, disponible sur ftp://ftp.inria.fr/pub/TeX/CTAN/macros/latex/contrib/other/floatflt/, a été écrit pour LaTeX2e. Il étend les possibilités de floatfig par de nombreuses options et est utilisable pour les figures et les tableaux. Exemple : \begin{floatingfigure}[options]{width of figure} figure contents \end{floatingfigure} %%%% fin exemple %%%% * Le package 'picinpar' pour LaTeX2.09 est disponible sur ftp://ftp.inria.fr/pub/TeX/CTAN/macros/latex209/contrib/picinpar/ et sur ftp://ftp.inria.fr/pub/TeX/CTAN/systems/msdos/4alltex/disk04/. Il permet de définir un nombre de lignes avant lequel la figure pourra être insérée dans le texte. La taille de la figure dépend de son contenu, sa position est variable, et peut s'étaler sur plusieurs paragraphes. ATTENTION : Ce package n'est pas compatible avec amstex. Exemple : \begin{window}[#lines before, l|r|c, picture contents, caption} ... paragraph text ... \end{window} %%%% fin exemple %%%% * Mieux que le précédent, le package 'picins' disponible sur ftp://ftp.inria.fr/pub/TeX/CTAN/macros/latex209/contrib/picins/ permet d'inclure des figures dans des paragraphes. Exemple : \parpic(width,height)(x-off,y-off)[Options][Position]{Picture} Paragraph text.... %%%% fin exemple %%%% * Le package 'wrapfig' permet de définir la hauteur de la figure, celle-ci ci peut apparaître à droite ou à gauche dans le texte ou encore dans une marge. Ce package n'est pas compatible avec les environnements de liste. Exemple : \begin{wrapfigure}[height in lines]{l|r}[overhang]{width} {figure, caption etc.} \end{wrapfigure} %%%% fin exemple %%%% * Le package 'flow' met obligatoirement la figure dans une boîte avec un cadre et ne permet pas de définir de caption. Exemple : \flow[L|R]{paragraph text}{figure box} %%%% fin exemple %%%% * Le package 'window' de E. Schaluck, permet également d'intégrer une figure dans un paragraphe mais il n'est plus maintenu. Il a été écrit pour LaTeX2.09 mais il est compatible LaTeX2e. Exemple : \windowbox[toplines][inwindow: contents][ratio: l r] ... paragraph text ... \par %%%% fin exemple %%%% Voici les résultats d'un test comparatif effectué par P. van Oostrum : A B C D E F G H I J K picinipar |+|+|+| |+|+| |+| | | | wrapfig |+|+|+|+| | |+|H|-|+| | flow |-|-|+| | | | |+| | | | floatfig |+|-|-|+| | |+| | |-| | floatflt |+|+|+|+| | |+| |-| |+| window |-|-|+| |+|+| |+| | | | picins |+|-|+|+| | | |+|+| | | avec : A: figure captions/counting/list of figures B: table captions/counting/list of tables C: Left/right possible (+ = both) D: Alternating left/right for twosided docs E: can be placed in the middle of text with twosided flowing F: possible to start after the beginning of paragraph G: can (more or less) float in the text H: auto detection of size of figure (H=height only) I: works with list environments J: works with twocolumn K: works with multicol Les meilleurs packages semblent être : picins, floatflt et wrapfig. * Voici également une macro de C. Mercat : %%%% debut macro %%%% \def\textdess#1#2 % #1={blabla} #2=\dessin{monbodessin} {\hbox{ \setbox2=\hbox{#2} %c'est le dessin \count2=\wd2 %c'est la largeur du dessin. %\showthe\count2 \multiply\count2 by-1 \advance\count2 by\hsize %count2 vaut le reste de la page \advance\count2 by-2000000 %c'est pour la marge droite \count1=\count2 \advance\count2 by-2000000 %c'est pour la marge du milieu \setbox1=\hbox to\count1sp{ %c'est le texte \vbox{\hsize=\count2sp %c'est la largeur #1 }\hfill} \count1=\ht1 %c'est la hauteur \advance\count1 \dp1 \count2=\ht2 \advance\count0 \dp2 \ifnum\count2<\count1 \count2=\count1 \fi %c'est la + grde des 2 hauteurs \vtop to \count2sp {\vfill \box1 \vfill} \vtop to \count2sp {\vfill \box2 \vfill} }} %%%% fin macro %%%%