Comment encadrer du texte ?

Avec la commande de base \fbox

La commande \fbox met son argument dans une boîte (comme \parbox) puis dessine un cadre autour :

<WRAP column 40ex>

Je souhaite \fbox{encadrer} un mot
dans un paragraphe.

</WRAP> <WRAP column 30ex>

</WRAP> <WRAP clear />

Mais attention : tout le texte passé à la commande va se retrouver sur une seule ligne, sans coupure de mot possible !

Pour encadrer tout un paragraphe, une solution est de le placer dans un environnement minipage :

<WRAP column 40ex>

\fbox{%
\begin{minipage}{0.75\textwidth}
   Je souhaite encadrer tout un
   paragraphe, sur plusieurs lignes.
\end{minipage}
}

</WRAP> <WRAP column 30ex>

</WRAP> <WRAP clear/>

La commande \fbox est soumise à quelques paramètres : par exemple, l’épaisseur du trait et l’espace entre le texte et le trait est défini respectivement par les longueurs \fboxrule et \fnboxsep :

<WRAP column 40ex>

Je souhaite \fbox{encadrer} un mot
dans un paragraphe.

{% Cette paire d'accolades permet
 % que la modification n'ait
 % qu'un effet local.
 \setlength{\fboxrule}{2pt}
 Je souhaite \fbox{encadrer} un mot
 dans un paragraphe.
}

{%
 \setlength{\fboxsep}{1.5ex}
 Je souhaite \fbox{encadrer} un mot
 dans un paragraphe.
}

</WRAP> <WRAP column 30ex>

</WRAP> <WRAP clear/>

Avec l’environnement tabular

Avoir du texte encadré revient à avoir un tableaau avec une unique cellule :

<WRAP column 40ex>

\begin{tabular}{|p{5cm}|}
\hline
On ne dirait pas, mais il s'agit
ici d'un tableau. \\
\hline
\end{tabular}

</WRAP> <WRAP column 30ex>

</WRAP> <WRAP clear/>

Exemples avancés avec d’autres extensions

Les méthodes ci-dessous fournissent des cadres d’apparence très classique. D’autres extensions dessinent des cadres adaptés à des documents au look plus moderne, avec couleurs et icônes.

Certaines extensions permettent également d’encadrer des pages entières, ou des blocs de texte s’étendant sur plusieurs pages.

L’extension fancybox

L’extension fancybox définit des commandes telles que \shadowbox, \doublebox et \ovalbox, qui fonctionnent de la même manière que \fbox ci-dessus :

<WRAP column 40ex>

\usepackage{fancybox}

\shadowbox{Texte ombré.}
\doublebox{Texte doublement encadré.}
\ovalbox{Texte dans un cadre
  aux coins arrondis.}

</WRAP> <WRAP column 30ex>

</WRAP> <WRAP clear />

L’extension awesomebox

L’extension awesomebox ne dessine pas de cadres à proprement parler, mais peut mettre en valeur un bloc de texte avec une icône et un filet coloré:

<WRAP column 45ex>

\documentclass{article}
  \usepackage{awesomebox}

\begin{document}

\notebox{Notez bien ceci!}
\smallskip

\importantbox{Lisez bien ce paragraphe
avant de passer à la suite de ce document
sinon, vous risquez de perdre votre temps
en considérations inutiles!}
\end{document}

</WRAP> <WRAP column 30ex>

</WRAP> <WRAP clear/>

Awesomebox a cinq dessins de base, utilisables sous forme d’une commande ou d’un environnement:

Pour…

Commande

Environnement

Exemple

Une note

\notebox

\begin{noteblock}\end{noteblock}

\documentclass[6pt]{extarticle}\usepackage{awesomebox}\pagestyle{empty}\begin{document}\notebox{Marcel se couche de bonne heure.}\end{document}

Une suggestion

\tipbox

\begin{tipblock}\end{tipblock}

\documentclass[6pt]{extarticle}\usepackage{awesomebox}\pagestyle{empty}\begin{document}\tipbox{Marcel se couche de bonne heure.}\end{document}

Un avertissement

\warningbox

\begin{warningblock}\end{warningblock}

\documentclass[6pt]{extarticle}\usepackage{awesomebox}\pagestyle{empty}\begin{document}\warningbox{Marcel se couche de bonne heure.}\end{document}

Une mise en garde

\cautionbox

\begin{cautionblock}\end{cautionblock}

\documentclass[6pt]{extarticle}\usepackage{awesomebox}\pagestyle{empty}\begin{document}\cautionbox{Marcel se couche de bonne heure.}\end{document}

Une remarque importante

\importantbox

\begin{importantblock}\end{importantblock}

\documentclass[6pt]{extarticle}\usepackage{awesomebox}\pagestyle{empty}\begin{document}\importantbox{Marcel se couche de bonne heure.}\end{document}

Astuce

Il est également très facile de définir vos propres boîtes avec la commande \awesomebox. Les icônes peuvent être choisies parmi celles de l’extension fontawesome5, et vous pouvez mettre des filets horizontaux avant et/ou après votre bloc de texte: <WRAP clear />

\documentclass{article}
  \usepackage{awesomebox}

\begin{document}

\awesomebox[white][\abShortLine]{0pt}{\faGrinBeam[regular]}{pink}{Ceci va vous rendre heureux\dots}

\end{document}

L’extension tcolorbox

L’extension tcolorbox utilise TikZ/PGF pour dessiner ses cadres. Si vous avez l’habitude de TikZ, vous apprécierez la syntaxe clefs-valeurs qui permet de paramétrer finement l’apparence des cadres (couleurs, formes, structures…).

À cause de ses possibilités de configuration immenses, sa documentation fait plus de 500 pages (en anglais). Mais les deux exemples ci-dessous montrent qu’il n’est vraiment pas compliqué de dessiner des cadres déjà adaptés à pas mal de circonstances, et les nombreuses illustrations de la documentation devraient vous aider à aller plus loin:

<WRAP column 50ex>

\documentclass{article}
  \usepackage{tcolorbox}

\begin{document}

\begin{tcolorbox}
Le cadre par défaut
\end{tcolorbox}
\smallskip

\begin{tcolorbox}[colback=red!5!white,
                  colframe=red!75!black,
                  title=Cadre sexy
                 ]
Un autre cadre \textbf{plus coloré}, séparé
en deux parties, et portant un titre.
\tcblower
Demain, \textit{j'enlève le bas}.
\end{tcolorbox}

\end{document}

</WRAP> <WRAP column 40ex>

</WRAP> <WRAP clear />

L’extension boites

Pour encadrer un texte pouvant s’étendre sur plusieurs pages, on peut utiliser l’environnement breakbox de l’extension boites. Cette extension définit également, par le biais du fichier boites_exemples.sty (à charger car boites ne le précharge pas), des environnements qui proposent différentes méthodes d’encadrement :

  • boiteepaisseavecuntitre ;

  • boitenumeroteeavecunedoublebarre ;

  • boiteavecunelignequiondulesurlecote ;

  • et boitecoloriee.

Ces environnements peuvent tous être modifiés par deux commandes :

  • bkcounttrue qui numérote les lignes de ces boîtes ;

  • bkcountfalse qui ne les numérote plus (option par défaut).

Il est également possible d’emboîter ces environnements.

L’extension niceframe

L’extension niceframe permet de définir des cadres pleine page.

À faire

Détailler nieframe.

L’extension boxedminipage

L’extension boxedminipage correspond à un vieux style LaTeX 2.09 qui a été actualisé.

À faire

Détailler boxedminipage.

Avec des environnements « faits maison »

Les extensions présentées ci-dessus sont évidemment bien plus plus puissantes mais, à titre pédagogique, voici un exemple d’environnement « fait main » pour encadrer des paragraphes de texte :

\newsavebox{\fmbox}
\newenvironment{fmpage}[1]
    {\begin{lrbox}{\fmbox}\begin{minipage}{#1}}
    {\end{minipage}\end{lrbox}\fbox{\usebox{\fmbox}}}

Et voici un exemple d’utilisation de ce fichier :

<WRAP column 40ex>

\input{fmpage.sty}

\begin{fmpage}{3cm}
   Texte à encadrer dans une boîte
   ne dépassant pas 3 centimètres
   de large.
\end{fmpage}

</WRAP> <WRAP column 30x>

</WRAP> <WRAP clear/>