Maintenant que je connais tcolorbox, j'aimerais faire couler un texte autour d'une boîte. Pour les proportions, on ne va pas s'embêter : deux colonnes, et ça ira bien comme ça.

Posée 31 Mar '19, 00:54

fred02840's gravatar image

fred02840
4.2k17154187
Taux d'acceptation : 16%

Ce n'est pas très clair. La boîte doit être à droite ? à gauche ? au milieu ? Et les deux colonnes sont des colonnes de quoi exactement? D'un tableau ? Du document ?

(31 Mar '19, 01:09) Bernard Bernard's gravatar image

@Bernard. Effectivement, ce n'est pas très clair, mais la solution apportée ci-dessous (et approuvée) est exactement celle que je cherchais. Belle perspicacité !

(31 Mar '19, 04:00) fred02840 fred02840's gravatar image

Une façon simple de faire consiste à utiliser le jeu de macros plain TeX insbox, qui définit les commandes \InsertBoxL, \InsertBoxR et \InsertBoxC. Ces commandes acceptent deux arguments obligés, d'abord le numéro de la première ligne du paragraphe qui suit devant $etre raccourcie, et la boîte qu'on insère. Le calcul du nombre de lignes plus courtes est automatiques. Toutefois, un argument optionnel permet de préciser le nombre de lignes en plus ou en moins qui doivent être raccourcies, au cas où le calculde TeX ne serait pas correct. Contrairement à l'habitude, cet argument optionnel est le dernier.

Voici un code avec insbox. À noter que j'ai légèrement modifié la valeur de top pour que la première ligne de la boîte soit au mêm niveau que la première ligne du texte, et du coup, j'ai aussi modifié la valeur de bottom pour raisons d'esthétique.

Ouvrir dans l'éditeur Overleaf
\documentclass[12pt]{article}
\usepackage{ tcolorbox}
\input{insbox.tex}
\usepackage{lipsum}

\makeatletter
\@InsertBoxMargin=10pt
\makeatother

\begin{document}
\lipsum[11]
\InsertBoxL{0}{%
    \begin{tcolorbox}[arc=1.5ex, colback=yellow, colframe=yellow, left=3pt, right=3pt, top=4.1pt, bottom=3pt, width=5cm]
        \textbf{Un peu d’histoire}. C’est en 1957 que Pierre \textsc{Robin}, secondé par sa femme Thérèse, décide de fonder une entreprise dédiée à la fabrication d’avions en bois et en toile.
    \end{tcolorbox}}[-1]
\lipsum[2-3]

\end{document}

alt text

Lien permanent

Publiée 31 Mar '19, 01:58

Bernard's gravatar image

Bernard
4.6k15
Taux d'acceptation : 35%

Modifiée 31 Mar '19, 04:30

@Bernard. Je vais encore pinailler, car je ne parviens pas à placer « Un peu d'histoire » sur la même ligne que « Nam dui ligula… ».

(31 Mar '19, 04:13) fred02840 fred02840's gravatar image

@fred02840: pour cela, il faut demander que les lignes courtes commencent, non pas après 0 ligne du paragraphe qui suit, mais après -1 ligne. Toutefois il y a alors un problème avec le texte qui précède: sa dernière ligne est à moitié mangée par le fond de couleur. La parade est alors de terminer le paragraphe qui précède par un \samllskip ou un medskip.

(31 Mar '19, 04:36) Bernard Bernard's gravatar image

Une solution consiste à utiliser une minipage (je n'en suis pas familier…) :

Ouvrir dans l'éditeur Overleaf
    \fbox{\begin{minipage}{5cm}
    \begin{tcolorbox}[arc=1ex, colback=yellow, colframe=yellow, left=3pt, right=3pt, top=3pt, bottom=2pt]
        \textbf{Un peu d’histoire}. C’est en 1957 que Pierre \textsc{Robin}, secondé par sa femme Thérèse, décide de fonder une entreprise dédiée à la fabrication d’avions en bois et en toile.
    \end{tcolorbox}
\end{minipage}}

Mais j'ai un vilain filet noir que je préférerai ne pas voir, et le texte ne coule pas autour de la minipage (ajout de dernière minute)

Lien permanent

Publiée 31 Mar '19, 01:08

fred02840's gravatar image

fred02840
4.2k17154187
Taux d'acceptation : 16%

Modifiée 31 Mar '19, 01:12

J'avoue que je ne comprends trop bien pas ce que vous essayez d'obtenir.

(31 Mar '19, 01:20) Bernard Bernard'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.