====== 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 : Je souhaite \fbox{encadrer} un mot dans un paragraphe. \documentclass{article} \usepackage[width=9cm,height=1cm]{geometry} \pagestyle{empty} \begin{document} Je souhaite \fbox{encadrer} un mot dans un paragraphe. \end{document} 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'' : \fbox{% \begin{minipage}{0.75\textwidth} Je souhaite encadrer tout un paragraphe, sur plusieurs lignes. \end{minipage} } \documentclass{article} \usepackage[width=9cm,height=7cm]{geometry} \usepackage{microtype} \pagestyle{empty} \begin{document} \fbox{% \begin{minipage}{0.75\textwidth} Je souhaite encadrer tout un paragraphe, sur plusieurs lignes. \end{minipage} } \end{document} 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'' : 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. } \documentclass{article} \usepackage[width=9cm,height=7cm]{geometry} \pagestyle{empty} \begin{document} 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. } \end{document} ===== Avec l'environnement tabular ===== Avoir du texte encadré revient à avoir un tableaau avec une unique cellule : \begin{tabular}{|p{5cm}|} \hline On ne dirait pas, mais il s'agit ici d'un tableau. \\ \hline \end{tabular} \documentclass{article} \usepackage[width=9cm,height=7cm]{geometry} \pagestyle{empty} \begin{document} \begin{tabular}{|p{5cm}|} \hline On ne dirait pas, mais il s'agit ici d'un tableau. \\ \hline \end{tabular} \end{document} ===== 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 [[ctanpkg>fancybox]] définit des commandes telles que ''\shadowbox'', ''\doublebox'' et ''\ovalbox'', qui fonctionnent de la même manière que ''\fbox'' ci-dessus : \usepackage{fancybox} \shadowbox{Texte ombré.} \doublebox{Texte doublement encadré.} \ovalbox{Texte dans un cadre aux coins arrondis.} \documentclass{article} \usepackage[width=9cm,height=7cm]{geometry} \usepackage{fancybox} \pagestyle{empty} \begin{document} \shadowbox{Texte ombré.} \smallskip \doublebox{Texte doublement encadré.} \smallskip \ovalbox{Texte dans un cadre aux coins arrondis.} \end{document} ==== L'extension awesomebox ==== L'extension [[ctanpkg>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é: \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} \documentclass{article} \usepackage[width=9cm,height=7cm]{geometry} \usepackage{awesomebox} \pagestyle{empty} \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 !} \smallskip \end{document} [[ctanpkg>awesomebox|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} | 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 [[ctanpkg>fontawesome5]], et vous pouvez mettre des filets horizontaux avant et/ou après votre bloc de texte: \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 [[ctanpkg>tcolorbox]] utilise [[ctanpkg>tikz|TikZ/PGF]] pour dessiner ses cadres. Si vous avez l'habitude de Ti//k//Z, 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, [[texdoc>tcolorbox|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: \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} \documentclass{article} \usepackage[width=6cm,height=6cm]{geometry} \usepackage{microtype} \usepackage[french]{babel} \usepackage{tcolorbox} \pagestyle{empty} \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} ==== L'extension boites ==== Pour encadrer un texte pouvant s'étendre sur plusieurs pages, on peut utiliser l'environnement ''breakbox'' de l'extension [[ctanpkg>boites]]. Cette extension définit également, par le biais du fichier ''boites_exemples.sty'' (à charger car [[ctanpkg>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 [[ctanpkg>niceframe]] permet de définir des cadres pleine page. FIXME Détailler [[ctanpkg>nieframe]]. ==== L'extension boxedminipage ==== L'extension [[ctanpkg>boxedminipage]] correspond à un vieux style \LaTeX 2.09 qui a été actualisé. FIXME Détailler [[ctanpkg>boxedminipage]]. ==== L'extension bclogo ==== FIXME Détailler [[ctanpkg>bclogo]]. ===== 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 : \input{fmpage.sty} \begin{fmpage}{3cm} Texte à encadrer dans une boîte ne dépassant pas 3 centimètres de large. \end{fmpage} \documentclass{article} \usepackage[width=6cm,height=7cm]{geometry} \pagestyle{empty} \newsavebox{\fmbox} \newenvironment{fmpage}[1] {\begin{lrbox}{\fmbox}\begin{minipage}{#1}} {\end{minipage}\end{lrbox}\fbox{\usebox{\fmbox}}} \begin{document} \begin{fmpage}{3cm} Texte à encadrer dans une boîte ne dépassant pas 3 centimètres de large. \end{fmpage} \end{document} {{htmlmetatags>metatag-keywords=(LaTeX,entourer du texte,mettre un cadre,dessiner un cadre,dessiner des filets) metatag-og:title=(Comment encadrer du texte) metatag-og:site_name=(FAQ LaTeX francophone) }}