Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
2_composition:texte:paragraphes:encadrer_du_texte [2021/01/17 16:05] jejust Explication des méthodes de base pour encadrer du texte. |
2_composition:texte:paragraphes:encadrer_du_texte [2021/02/06 23:23] (Version actuelle) jejust Ajout de deux exemples pour "tcolorbox". Réorganisation des sections. |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Comment encadrer du texte? ====== | + | ====== Comment encadrer du texte ? ====== |
- | ===== La commande de base: '\fbox' ===== | + | ===== Avec la commande de base \fbox ===== |
- | $\Reponse$ La commande ''\fbox'' met son argument dans une boîte (comme ''\parbox'') | + | La commande ''\fbox'' met son argument dans une boîte (comme ''\parbox'') puis dessine un cadre autour : |
- | puis dessine un cadre autour: | + | |
<WRAP column 40ex> | <WRAP column 40ex> | ||
Ligne 15: | Ligne 14: | ||
<latexdoc> | <latexdoc> | ||
\documentclass{article} | \documentclass{article} | ||
- | \usepackage[width=6cm,height=7cm]{geometry} | + | \usepackage[width=9cm,height=1cm]{geometry} |
\pagestyle{empty} | \pagestyle{empty} | ||
\begin{document} | \begin{document} | ||
- | |||
Je souhaite \fbox{encadrer} un mot dans un paragraphe. | Je souhaite \fbox{encadrer} un mot dans un paragraphe. | ||
- | |||
\end{document} | \end{document} | ||
</latexdoc> | </latexdoc> | ||
</WRAP> | </WRAP> | ||
- | <WRAP clear/> | + | <WRAP clear /> |
- | Mais attention: tout le texte passé à la commande va se retrouver | + | Mais attention : tout le texte passé à la commande va se retrouver sur une seule ligne, sans coupure de mot possible ! |
- | sur une seule ligne, sans coupure de mot possible! | + | |
- | Pour encadrer tout un paragraphe, une solution est de le placer | + | Pour encadrer tout un paragraphe, une solution est de le placer dans un environnement ''minipage'' : |
- | dans un environnement ''minipage'': | + | |
<WRAP column 40ex> | <WRAP column 40ex> | ||
Ligne 45: | Ligne 40: | ||
<latexdoc> | <latexdoc> | ||
\documentclass{article} | \documentclass{article} | ||
- | \usepackage[width=6cm,height=7cm]{geometry} | + | \usepackage[width=9cm,height=7cm]{geometry} |
\usepackage{microtype} | \usepackage{microtype} | ||
\pagestyle{empty} | \pagestyle{empty} | ||
Ligne 62: | Ligne 57: | ||
<WRAP clear/> | <WRAP clear/> | ||
- | <note> | + | 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'' : |
- | On peut changer l'épaisseur du trait et l'espace entre le texte et le trait | + | |
- | en modifiant la valeur des longueurs ''\fboxrule'' et ''\fnboxsep'', respectivement: | + | |
- | + | ||
- | <WRAP clear/> | + | |
<WRAP column 40ex> | <WRAP column 40ex> | ||
Ligne 73: | Ligne 64: | ||
dans un paragraphe. | dans un paragraphe. | ||
- | \setlength{\fboxrule}{2pt} | + | {% Cette paire d'accolades permet |
- | Je souhaite \fbox{encadrer} un mot | + | % que la modification n'ait |
- | dans un paragraphe. | + | % 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 | + | \setlength{\fboxsep}{1.5ex} |
- | dans un paragraphe. | + | Je souhaite \fbox{encadrer} un mot |
+ | dans un paragraphe. | ||
+ | } | ||
</code> | </code> | ||
</WRAP> | </WRAP> | ||
Ligne 85: | Ligne 82: | ||
<latexdoc> | <latexdoc> | ||
\documentclass{article} | \documentclass{article} | ||
- | \usepackage[width=6cm,height=7cm]{geometry} | + | \usepackage[width=9cm,height=7cm]{geometry} |
\pagestyle{empty} | \pagestyle{empty} | ||
\begin{document} | \begin{document} | ||
Ligne 92: | Ligne 89: | ||
dans un paragraphe. | dans un paragraphe. | ||
- | \setlength{\fboxrule}{2pt} | + | {% Cette paire d'accolades permet |
- | Je souhaite \fbox{encadrer} un mot | + | % que la modification n'ait |
- | dans un paragraphe. | + | % 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 | + | \setlength{\fboxsep}{1.5ex} |
- | dans un paragraphe. | + | Je souhaite \fbox{encadrer} un mot |
+ | dans un paragraphe. | ||
+ | } | ||
\end{document} | \end{document} | ||
Ligne 104: | Ligne 107: | ||
</WRAP> | </WRAP> | ||
<WRAP clear/> | <WRAP clear/> | ||
- | </note> | ||
+ | ===== Avec l'environnement tabular ===== | ||
- | $\Reponse$ Une autre solution simple et efficace | + | Avoir du texte encadré revient à avoir un tableaau avec une unique cellule : |
- | consiste à définir un tableau d'une seule cellule: | + | |
<WRAP column 40ex> | <WRAP column 40ex> | ||
Ligne 123: | Ligne 125: | ||
<latexdoc> | <latexdoc> | ||
\documentclass{article} | \documentclass{article} | ||
- | \usepackage[width=6cm,height=7cm]{geometry} | + | \usepackage[width=9cm,height=7cm]{geometry} |
\pagestyle{empty} | \pagestyle{empty} | ||
\begin{document} | \begin{document} | ||
Ligne 138: | Ligne 140: | ||
<WRAP clear/> | <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. | ||
- | FIXME Détailler les packages [[ctanpkg>tcolobox]] et [[ctanpkg>bclogo]]. | + | ==== L'extension fancybox ==== |
- | + | ||
- | $\Reponse$ Il existe également le package [[ctanpkg>fancybox]] qui définit | + | |
- | des fonctions telles que ''\shadowbox'', ''\doublebox'', ''\ovalbox'', etc. | + | |
+ | 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 : | ||
+ | <WRAP column 40ex> | ||
<code latex> | <code latex> | ||
+ | \usepackage{fancybox} | ||
+ | |||
\shadowbox{Texte ombré.} | \shadowbox{Texte ombré.} | ||
\doublebox{Texte doublement encadré.} | \doublebox{Texte doublement encadré.} | ||
Ligne 153: | Ligne 162: | ||
aux coins arrondis.} | aux coins arrondis.} | ||
</code> | </code> | ||
+ | </WRAP> | ||
+ | <WRAP column 30ex> | ||
+ | <latexdoc> | ||
+ | \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} | ||
+ | </latexdoc> | ||
+ | </WRAP> | ||
+ | <WRAP clear /> | ||
+ | |||
+ | ==== 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é: | ||
+ | |||
+ | <WRAP column 45ex> | ||
+ | <code latex> | ||
+ | \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} | ||
+ | </code> | ||
+ | </WRAP> | ||
+ | <WRAP column 30ex> | ||
+ | <latexdoc> | ||
+ | \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} | ||
+ | </latexdoc> | ||
+ | </WRAP> | ||
+ | <WRAP clear/> | ||
+ | |||
+ | [[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}'' | <latexdoc>\documentclass[6pt]{extarticle}\usepackage{awesomebox}\pagestyle{empty}\begin{document}\notebox{Marcel se couche de bonne heure.}\end{document}</latexdoc> | | ||
+ | | Une suggestion | ''\tipbox'' | ''\begin{tipblock}''...''\end{tipblock}'' | <latexdoc>\documentclass[6pt]{extarticle}\usepackage{awesomebox}\pagestyle{empty}\begin{document}\tipbox{Marcel se couche de bonne heure.}\end{document}</latexdoc> | | ||
+ | | Un avertissement | ''\warningbox'' | ''\begin{warningblock}''...''\end{warningblock}'' | <latexdoc>\documentclass[6pt]{extarticle}\usepackage{awesomebox}\pagestyle{empty}\begin{document}\warningbox{Marcel se couche de bonne heure.}\end{document}</latexdoc> | | ||
+ | | Une mise en garde | ''\cautionbox'' | ''\begin{cautionblock}''...''\end{cautionblock}'' | <latexdoc>\documentclass[6pt]{extarticle}\usepackage{awesomebox}\pagestyle{empty}\begin{document}\cautionbox{Marcel se couche de bonne heure.}\end{document}</latexdoc> | | ||
+ | | Une remarque importante | ''\importantbox'' | ''\begin{importantblock}''...''\end{importantblock}'' | <latexdoc>\documentclass[6pt]{extarticle}\usepackage{awesomebox}\pagestyle{empty}\begin{document}\importantbox{Marcel se couche de bonne heure.}\end{document}</latexdoc> | | ||
+ | |||
+ | <note tip> | ||
+ | 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: | ||
+ | <WRAP clear /> | ||
+ | |||
+ | <code latex> | ||
+ | \documentclass{article} | ||
+ | \usepackage{awesomebox} | ||
+ | |||
+ | \begin{document} | ||
+ | |||
+ | \awesomebox[white][\abShortLine]{0pt}{\faGrinBeam[regular]}{pink}{Ceci va vous rendre heureux\dots} | ||
+ | |||
+ | \end{document} | ||
+ | </code> | ||
+ | </note> | ||
+ | |||
+ | |||
+ | ==== 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: | ||
+ | |||
+ | <WRAP column 50ex> | ||
+ | <code latex> | ||
+ | \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} | ||
+ | </code> | ||
+ | </WRAP> | ||
+ | <WRAP column 40ex> | ||
+ | <latexdoc> | ||
+ | \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} | ||
+ | </latexdoc> | ||
+ | </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 [[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. | ||
- | $\Reponse$ Le package [[ctanpkg>boxedminipage]] est un vieux style <latex>\LaTeX</latex> 2.09 | + | FIXME Détailler [[ctanpkg>nieframe]]. |
- | qui a été actualisé. | + | |
- | $\Reponse$ Le package [[ctanpkg>niceframe]] permet de définir des cadres pleine page. | + | ==== L'extension boxedminipage ==== |
- | $\Reponse$ Pour encadrer un texte pouvant s'étendre sur plusieurs pages, on | + | L'extension [[ctanpkg>boxedminipage]] correspond à un vieux style <latex>\LaTeX</latex> 2.09 qui a été actualisé. |
- | peut utiliser l'environnement ''breakbox'' du package [[ctanpkg>boites]]. | + | |
- | Le package [[ctanpkg>boitesexemples]] définit les environnements ''boiteepaisseavecuntitre'', | + | FIXME Détailler [[ctanpkg>boxedminipage]]. |
- | ''boitenumeroteeavecunedoublebarre'', ''boiteavecunelignequiondulesurlecote'' et | + | |
- | ''boitecoloriee'' qui proposent différentes méthodes d'encadrement. | + | |
- | * ''bkcounttrue'' les lignes sont numérotées ; | + | ==== L'extension bclogo ==== |
- | * ''bkcountfalse'' elles ne le sont pas (défaut). | + | |
- | On peut emboîter ces environnements. | + | FIXME Détailler [[ctanpkg>bclogo]]. |
+ | ===== Avec des environnements « faits maison » ===== | ||
- | $\Reponse$ On peut également se définir son propre environnement : | + | 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 : | ||
<file latex fmpage.sty> | <file latex fmpage.sty> | ||
Ligne 182: | Ligne 379: | ||
</file> | </file> | ||
+ | Et voici un exemple d'utilisation de ce fichier : | ||
- | Utilisation de l'environnement défini par ''fmpage.sty'': | + | <WRAP column 40ex> |
<code latex> | <code latex> | ||
\input{fmpage.sty} | \input{fmpage.sty} | ||
+ | |||
\begin{fmpage}{3cm} | \begin{fmpage}{3cm} | ||
- | Texte à encadrer dans une boîte ne | + | Texte à encadrer dans une boîte |
- | dépassant pas 3 centimètres de large. | + | ne dépassant pas 3 centimètres |
+ | de large. | ||
\end{fmpage} | \end{fmpage} | ||
</code> | </code> | ||
+ | </WRAP> | ||
+ | <WRAP column 30x> | ||
+ | <latexdoc> | ||
+ | \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} | ||
+ | </latexdoc> | ||
+ | </WRAP> | ||
+ | <WRAP clear/> | ||
{{htmlmetatags>metatag-keywords=(LaTeX,entourer du texte,mettre un cadre,dessiner un cadre,dessiner des filets) | {{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:title=(Comment encadrer du texte) |
metatag-og:site_name=(FAQ LaTeX francophone) | metatag-og:site_name=(FAQ LaTeX francophone) | ||
}} | }} | ||
- |