web-dev-qa-db-fra.com

Image flottante en latex et enveloppée de texte

J'ai un document LaTeX avec une image dedans. Il y a une section, quatre sous-sections, les 3 dernières ayant juste du texte et la première ayant un environnement de description avec des trucs.

Je veux avoir une image en haut à droite et que tout le texte s'enroule bien autour.

Le package wrapfig enlève une colonne entière (donc le texte sous les images est enveloppé à une largeur fixe même sans l'image là-bas) et pousse l'environnement de description au-delà de la marge gauche, et le package floatflt place l'image exactement là où je le veux, mais aucun texte n'est encapsulé.

J'ai l'environnement floatflt/wrapfig au-dessus de la section initiale (j'obtiens le meilleur placement d'image de cette façon) mais le déplacer vers divers autres endroits ne fonctionne pas non plus.

Y a-t-il d'autres façons d'enrouler le texte autour de l'image?

Quelques exemples d'échecs peuvent être vus ici: http://drop.io/a3dbxte

17
Daniel Huckstep

wrapfig est le meilleur que j'ai trouvé, cependant, vous devez mettre le code wrapfig au-dessus du paragraphe dans lequel vous voulez qu'il se termine:

\usepackage{wrapfig}

\begin{wrapfigure} \includegraphics... \end{wrapfigure}
This is the paragraph of text you want the figure to "wrap" into... etc etc.

Si vous placez le code wrapfig sous le paragraphe dans lequel vous souhaitez envelopper, il sera évidemment encapsulé dans le paragraphe suivant, produisant un résultat indésirable.

vous mentionnez également une "colonne" qui me fait penser que vous utilisez une disposition à plusieurs colonnes, ce qui ne fonctionnera probablement pas aussi bien avec wrapfig.

Lorsque vous posez une question spécifique sur le latex, vous devez inclure un exemple de travail minimal, c'est-à-dire suffisamment de préambule et de code/texte pour que les gens puissent recréer votre problème.

EDIT: Ah. je vois ce que tu veux dire. wrapfig peut prendre un argument optionnel de hauteur de ligne:

\begin{wrapfigure}[line-height]{r}{width} 

où line-height est un entier positif.

votre solution ressemblerait probablement à ceci:

\begin{wrapfigure}[10]{r}{2.5in}
\centering
\includegraphics[width=2in]{governator.jpg}
\end{wrapfigure}

EDIT # 2: wrapfig/floatflt + énumération, itemize = ne fonctionne pas. les packages sont incompatibles entre eux. Pour un effet "wrapfigure" avec un environnement, c'est-à-dire énumérer, détailler, etc., vous devez placer l'environnement dans une minipage et le graphique dans une minipage, puis définir les deux minipages l'une à côté de l'autre. quelque chose à l'effet de (je les mets aussi dans un environnement tabulaire):

\begin{tabular}{l l}
\begin{minipage}{0.5\textwidth}
\begin{enumerate}
\item
\end{enumerate}
\end{minipage}
&
\begin{minipage}{0.5\textwidth}
\includegraphics...
\end{minipage}
\end{tabular}
27
Mica

J'ai eu exactement le même problème. Wrapfig attend un paragraphe en dessous, alors donnez-lui un paragraphe vide!

\begin{wrapfigure}{I}{0.5\textwidth}
\includegraphics[...]{...}
\end{wrapfigure}
\paragraph{}
\vspace*{-\parskip}

Cela donne un paragraphe vide pour rendre wrapfig confortable et ne modifie pas du tout votre contenu (j'ai ajouté un vspace négatif * pour tenir compte du\parskip du paragraphe).

8
Ryan

J'ai fait quelques essais et votre exemple échoue car wrapfig est incapable de faire face au \section commandes et l'environnement de liste. Si vous venez de mettre un tas de texte autour du wrapfig, tout fonctionne bien. Si vous avez soit \section ou \begin{description}, wrapfig devient désespérément confus.

Je vous recommande de faire un tas de \parshape commandes à la main.

3
Norman Ramsey

Pour que wrapfigure fonctionne correctement dans l'environnement enumerate/itemize/description, vous devez le mettre dans une minipage. Faites la largeur de la minipage identique à\linewidth, elle est correctement calculée pour l'espace disponible.

\begin{enumerate}
  \item First.\\
  Lots of text.
  \item Second.\\
  \begin{minipage}{\linewidth}
    \begin{wrapfigure}[3]{r}{0.4\textwidth}
      \begin{center}
        \includegraphics[width=\linewidth]{Picture}
      \end{center}
    \end{wrapfigure}
    Lots of text.
  \end{minipage}
\end{enumerate}

Cela devrait maintenant fonctionner correctement sans que vous ayez à faire d'autres tours spéciaux.

2
ppareit