3
1

Je compose une liste détaillant les diverses parties de l'élaboration d'un projet. Je désire inclure une image dans l'un des items de cette liste, de telle sorte que le texte « coule » autour.

Je n'ai pas réussi à obtenir cela, malgré les différentes solutions présentées dans ce fil du présent site : ni wrapfig, ni insbox, ni la dernière solution ne fonctionne.

Voici un ECM :

Ouvrir dans l'éditeur
\documentclass[10pt, BCOR=0mm, DIV=11, a5paper, oneside, latin]{scrartcl}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[fulloldstyle,largesmallcaps]{kpfonts}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{babel}
\begin{document}%
\pagestyle{empty}%
\begin{itemize}
\item{\lipsum[1-2]
\begin{tikzpicture}
\draw[thick,rounded corners=8pt]
(0,0) -- (0,2) -- (1,3.25) -- (2,2) -- (2,0) -- (0.95,1) -- (2,2) -- (0,2) -- (1.05,1) -- (0,0) -- (2,0);
\end{tikzpicture}
}
\item{\lipsum[3-4]}
\end{itemize}
\end{document}

Posée 16 Fév '16, 21:12

Pathe's gravatar image

Pathe ♦♦
7.4k28196245
Taux d'acceptation : 55%

Modifiée 16 Fév '16, 21:13

J'ai l'impression que wrapfigure est incompatible avec itemize et enumerate. Il reste alors à trouver un hack...

(17 Fév '16, 00:44) rboulle rboulle's gravatar image
1

Suite : je pense que tu as dû voir ce lien, mais au cas où...

(17 Fév '16, 00:50) rboulle rboulle's gravatar image

Une façon de faire avec insbox, retrouvée dans un ancien code: on définit un patch ad hoc de \InsertBoxL et \InsertBoxR, qui ne marche bien qu'à partir du deuxième item. Pour parer à ça, j'ai patché la commande \item en un \wrapitem, à utiliser (exclusivement) pour la première image (ou objet) inséré(e) :

Ouvrir dans l'éditeur
\documentclass[10pt, BCOR=0mm, DIV=11, a5paper, oneside, latin]{scrartcl}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[fulloldstyle,largesmallcaps]{kpfonts}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{babel}
\usepackage{enumitem}
\input{insbox.tex}

\makeatletter
\@InsertBoxMargin = 8pt
\makeatother
\usepackage{etoolbox}

\newcommand*{\wrapitem}{\apptocmd{\labelitemi}{\hspace*{\leftmargin}}{}{}\item\apptocmd{\labelitemi}{\hskip-\leftmargin}{}{}}%
%
\newcommand{\InsertListL}[3][]{%
\setlength{\leftskip}{\leftmargin}\mbox{}\vspace*{-\baselineskip}%
\InsertBoxL{#2}{#3}[#1]\par \hspace{\dimexpr\itemindent-\fontdimen2\font\relax}
}%
\newcommand{\InsertListR}[3][]{%
\mbox{}\vspace*{-\baselineskip}\setlength{\leftskip}{\leftmargin}%
\InsertBoxR{#2}{\hskip-\leftmargin#3\hskip\leftmargin}[#1]
}%

\newcommand\mypicture{%
\begin{tikzpicture}
\draw[thick,rounded corners=8pt]
(0,0) -- (0,2) -- (1,3.25) -- (2,2) -- (2,0) -- (0.95,1) -- (2,2) -- (0,2) -- (1.05,1) -- (0,0) -- (2,0);
\end{tikzpicture}
}

\begin{document}%
\pagestyle{empty}%
\begin{itemize}[noitemsep]
  \wrapitem%
  \InsertListL[-1]{2}{\mypicture}%
  Texte texte texte texte texte texte texte texte texte texte texte texte texte texte texte texte texte.
  \lipsum[1]

  \item%
        \InsertListR[-1]{0}{\mypicture}
        {\lipsum[2-3]}%

  \item \lipsum[4]
\end{itemize}
\end{document}

alt text alt text

Lien permanent

Publiée 17 Fév '16, 04:29

Bernard's gravatar image

Bernard
4.6k15
Taux d'acceptation : 35%

Modifiée 17 Fév '16, 04:30

@Bernard Cette solution fonctionne, à ceci près que le tiret long de l'item comprenant la figure se trouve dans le texte et pas dans le retrait à gauche de la liste. Les tirets longs de tous les autres items sont à la bonne place. J'ai inséré le dessin dans le deuxième item.

(17 Fév '16, 22:41) Pathe ♦♦ Pathe's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.