Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
2_composition:texte:paragraphes:encadrer_du_texte [2002/02/01 11:02] benjamin créée |
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: | ||
- | \question{Comment encadrer du texte ?} | + | ====== Comment encadrer du texte ? ====== |
- | \reponse Une solution consiste à définir un tableau d'une seule | + | ===== Avec la commande de base \fbox ===== |
- | cellule. | + | |
- | \reponse On peut aussi utiliser : | + | La commande ''\fbox'' met son argument dans une boîte (comme ''\parbox'') puis dessine un cadre autour : |
- | \begin{noexemple}{Encadrer un texte avec \cmd{fbox}} | + | |
- | \fbox{ | + | <WRAP column 40ex> |
- | \begin{minipage}{0.7\textwidth} | + | <code latex> |
- | Texte... | + | Je souhaite \fbox{encadrer} un mot |
+ | dans un paragraphe. | ||
+ | </code> | ||
+ | </WRAP> | ||
+ | <WRAP column 30ex> | ||
+ | <latexdoc> | ||
+ | \documentclass{article} | ||
+ | \usepackage[width=9cm,height=1cm]{geometry} | ||
+ | \pagestyle{empty} | ||
+ | \begin{document} | ||
+ | Je souhaite \fbox{encadrer} un mot dans un paragraphe. | ||
+ | \end{document} | ||
+ | </latexdoc> | ||
+ | </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> | ||
+ | <code latex> | ||
+ | \fbox{% | ||
+ | \begin{minipage}{0.75\textwidth} | ||
+ | Je souhaite encadrer tout un | ||
+ | paragraphe, sur plusieurs lignes. | ||
\end{minipage} | \end{minipage} | ||
} | } | ||
- | \end{noexemple} | + | </code> |
+ | </WRAP> | ||
+ | <WRAP column 30ex> | ||
+ | <latexdoc> | ||
+ | \documentclass{article} | ||
+ | \usepackage[width=9cm,height=7cm]{geometry} | ||
+ | \usepackage{microtype} | ||
+ | \pagestyle{empty} | ||
+ | \begin{document} | ||
- | \reponse On peut également se définir son propre environnement. | + | \fbox{% |
+ | \begin{minipage}{0.75\textwidth} | ||
+ | Je souhaite encadrer tout un | ||
+ | paragraphe, sur plusieurs lignes. | ||
+ | \end{minipage} | ||
+ | } | ||
- | \begin{file}{fmpage.sty} | + | \end{document} |
- | \newsavebox{\fmbox} | + | </latexdoc> |
- | \newenvironment{fmpage}[1] | + | </WRAP> |
- | {\begin{lrbox}{\fmbox}\begin{minipage}{#1}} | + | <WRAP clear/> |
- | {\end{minipage}\end{lrbox}\fbox{\usebox{\fmbox}}} | + | |
- | \end{file} | + | |
- | \begin{noexemple}{Exemple d'utilisation de l'environnement \env{fmpage}} | + | 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'' : |
- | \begin{fmpage}{3cm} | + | |
- | Texte à encadrer dans une boîte ne dépassant pas 3 | + | <WRAP column 40ex> |
- | centimètres de large. | + | <code latex> |
- | \end{fmpage} | + | Je souhaite \fbox{encadrer} un mot |
- | \end{noexemple} | + | 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. | ||
+ | } | ||
+ | </code> | ||
+ | </WRAP> | ||
+ | <WRAP column 30ex> | ||
+ | <latexdoc> | ||
+ | \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} | ||
+ | </latexdoc> | ||
+ | </WRAP> | ||
+ | <WRAP clear/> | ||
+ | |||
+ | ===== Avec l'environnement tabular ===== | ||
+ | |||
+ | Avoir du texte encadré revient à avoir un tableaau avec une unique cellule : | ||
+ | |||
+ | <WRAP column 40ex> | ||
+ | <code latex> | ||
+ | \begin{tabular}{|p{5cm}|} | ||
+ | \hline | ||
+ | On ne dirait pas, mais il s'agit | ||
+ | ici d'un tableau. \\ | ||
+ | \hline | ||
+ | \end{tabular} | ||
+ | </code> | ||
+ | </WRAP> | ||
+ | <WRAP column 30ex> | ||
+ | <latexdoc> | ||
+ | \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} | ||
+ | </latexdoc> | ||
+ | </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 [[ctanpkg>fancybox]] définit des commandes telles que ''\shadowbox'', ''\doublebox'' et ''\ovalbox'', qui fonctionnent de la même manière que ''\fbox'' ci-dessus : | ||
- | \reponse Il existe également le package \pack{fancybox}, disponible sur | + | <WRAP column 40ex> |
- | \ctan{macros/latex/contrib/others/seminar/inputs/}, qui définit | + | <code latex> |
- | des fonctions telles que \cmd{shadowbox}, \cmd{doublebox}, \cmd{ovalbox}, | + | \usepackage{fancybox} |
- | etc. | + | |
- | \begin{noexemple}{Utilisation des environnements du package \pack{fancybox}} | ||
\shadowbox{Texte ombré.} | \shadowbox{Texte ombré.} | ||
\doublebox{Texte doublement encadré.} | \doublebox{Texte doublement encadré.} | ||
- | \ovalbox{Texte dans un cadre aux coins arrondis.} | + | \ovalbox{Texte dans un cadre |
- | \end{noexemple} | + | aux coins arrondis.} |
+ | </code> | ||
+ | </WRAP> | ||
+ | <WRAP column 30ex> | ||
+ | <latexdoc> | ||
+ | \documentclass{article} | ||
+ | \usepackage[width=9cm,height=7cm]{geometry} | ||
+ | \usepackage{fancybox} | ||
+ | \pagestyle{empty} | ||
+ | \begin{document} | ||
- | \reponse Le package \pack{boxedminipage} est un vieux style \LaTeX2.09 | + | \shadowbox{Texte ombré.} |
- | disponible sur \ctan{macros/latex209/contrib/misc/}. | + | \smallskip |
- | \reponse Voir également le package \pack{hh} disponible sur | + | \doublebox{Texte doublement encadré.} |
- | \ctan{macros/latex/contrib/supported/hh/}. | + | \smallskip |
- | \reponse Le package \pack{niceframe} disponible sur | + | \ovalbox{Texte dans un cadre |
- | \ctan{macros/latex/contrib/supported/niceframe/} permet de | + | aux coins arrondis.} |
- | définir des cadres pleine page. | + | \end{document} |
+ | </latexdoc> | ||
+ | </WRAP> | ||
+ | <WRAP clear /> | ||
- | \reponse Pour encadrer un texte pouvant s'étendre sur plusieurs pages, | + | ==== L'extension awesomebox ==== |
- | il existe le package \pack{eclbkbox} : | + | |
- | \begin{file}{eclbkbox.sty} | + | |
- | % eclbkbox.sty by Hideki Isozaki, 1992 | + | |
- | % Date: May 28, 1993 | + | |
- | \newbox\bk@bxb | + | L'extension [[ctanpkg>awesomebox]] ne dessine pas de cadres à proprement parler, |
- | \newbox\bk@bxa | + | mais peut mettre en valeur un bloc de texte avec une icône et un filet coloré: |
- | \newif\if@bkcont | + | |
- | \newif\ifbkcount | + | |
- | \newcount\bk@lcnt | + | |
- | \def\breakboxskip{2pt} | + | <WRAP column 45ex> |
- | \def\breakboxparindent{1.8em} | + | <code latex> |
+ | \documentclass{article} | ||
+ | \usepackage{awesomebox} | ||
- | \def\breakbox{\vskip\breakboxskip\relax | + | \begin{document} |
- | \setbox\bk@bxb\vbox\bgroup | + | |
- | \advance\linewidth -2\fboxrule | + | |
- | \advance\linewidth -2\fboxsep | + | |
- | \hsize\linewidth\@parboxrestore | + | |
- | \parindent\breakboxparindent\relax} | + | |
- | % \@tempdimb: amount of vertical skip | + | \notebox{Notez bien ceci!} |
- | % between the first line (\bk@bxa) and the rest (\bk@bxb) | + | \smallskip |
- | \def\bk@split{% | + | |
- | \@tempdimb\ht\bk@bxb % height of original box | + | |
- | \advance\@tempdimb\dp\bk@bxb | + | |
- | \setbox\bk@bxa\vsplit\bk@bxb to\z@ % split it | + | |
- | \setbox\bk@bxa\vbox{\unvbox\bk@bxa}% recover height & depth of \bk@bxa | + | |
- | \setbox\@tempboxa\vbox{\copy\bk@bxa\copy\bk@bxb}% naive concatenation | + | |
- | \advance\@tempdimb-\ht\@tempboxa | + | |
- | \advance\@tempdimb-\dp\@tempboxa}% gap between two boxes | + | |
- | % \@tempdima: height of the first line (\bk@bxa) + fboxsep | + | \importantbox{Lisez bien ce paragraphe |
- | \def\bk@addfsepht{% | + | avant de passer à la suite de ce document |
- | \setbox\bk@bxa\vbox{\vskip\fboxsep\box\bk@bxa}} | + | 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} | ||
- | \def\bk@addskipht{% | + | \begin{document} |
- | \setbox\bk@bxa\vbox{\vskip\@tempdimb\box\bk@bxa}} | + | |
- | % \@tempdima: depth of the first line (\bk@bxa) + fboxsep | + | \notebox{Notez bien ceci!} |
- | \def\bk@addfsepdp{% | + | \smallskip |
- | \@tempdima\dp\bk@bxa | + | |
- | \advance\@tempdima\fboxsep | + | |
- | \dp\bk@bxa\@tempdima} | + | |
- | % \@tempdima: depth of the first line (\bk@bxa) + vertical skip | + | \importantbox{Lisez bien ce paragraphe |
- | \def\bk@addskipdp{% | + | avant de passer à la suite de ce document |
- | \@tempdima\dp\bk@bxa | + | sinon, vous risquez de perdre votre temps |
- | \advance\@tempdima\@tempdimb | + | en considérations inutiles!} |
- | \dp\bk@bxa\@tempdima} | + | \smallskip |
- | \def\bk@line{% | + | \end{document} |
- | \hbox to \linewidth{\ifbkcount\smash{\llap{\the\bk@lcnt\ }}\fi | + | </latexdoc> |
- | \vrule \@width\fboxrule\hskip\fboxsep | + | </WRAP> |
- | \box\bk@bxa\hfil | + | <WRAP clear/> |
- | \hskip\fboxsep\vrule \@width\fboxrule}} | + | |
- | \def\endbreakbox{\egroup | + | [[ctanpkg>awesomebox|Awesomebox]] a cinq dessins de base, |
- | \ifhmode\par\fi{\noindent\bk@lcnt\@ne | + | utilisables sous forme d'une commande ou d'un environnement: |
- | \@bkconttrue\baselineskip\z@\lineskiplimit\z@ | + | |
- | \lineskip\z@\vfuzz\maxdimen | + | |
- | \bk@split\bk@addfsepht\bk@addskipdp | + | |
- | \ifvoid\bk@bxb % Only one line | + | |
- | \def\bk@fstln{\bk@addfsepdp | + | |
- | \vbox{\hrule\@height\fboxrule\bk@line\hrule\@height\fboxrule}}% | + | |
- | \else % More than one line | + | |
- | \def\bk@fstln{\vbox{\hrule\@height\fboxrule\bk@line}\hfil | + | |
- | \advance\bk@lcnt\@ne | + | |
- | \loop | + | |
- | \bk@split\bk@addskipdp\leavevmode | + | |
- | \ifvoid\bk@bxb % The last line | + | |
- | \@bkcontfalse\bk@addfsepdp | + | |
- | \vtop{\bk@line\hrule\@height\fboxrule}% | + | |
- | \else % 2,...,(n-1) | + | |
- | \bk@line | + | |
- | \fi | + | |
- | \hfil\advance\bk@lcnt\@ne | + | |
- | \if@bkcont\repeat}% | + | |
- | \fi | + | |
- | \leavevmode\bk@fstln\par}\vskip\breakboxskip\relax} | + | |
- | \bkcountfalse | + | ^ Pour... ^ Commande ^ Environnement ^ Exemple ^ |
- | \end{file} | + | | 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> | | ||
- | L'encadrement du texte est obtenu par l'environnement \env{breakbox}. | + | <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 /> | ||
- | \cmd{bkcounttrue} : les lignes sont numérotées. | + | <code latex> |
+ | \documentclass{article} | ||
+ | \usepackage{awesomebox} | ||
- | \cmd{bkcountfalse} : elles ne le sont pas (défaut). | + | \begin{document} |
- | On peut emboîter des environnements \env{breakbox}. | + | \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. | ||
+ | |||
+ | FIXME Détailler [[ctanpkg>nieframe]]. | ||
+ | |||
+ | ==== L'extension boxedminipage ==== | ||
+ | |||
+ | L'extension [[ctanpkg>boxedminipage]] correspond à un vieux style <latex>\LaTeX</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 : | ||
+ | |||
+ | <file latex fmpage.sty> | ||
+ | \newsavebox{\fmbox} | ||
+ | \newenvironment{fmpage}[1] | ||
+ | {\begin{lrbox}{\fmbox}\begin{minipage}{#1}} | ||
+ | {\end{minipage}\end{lrbox}\fbox{\usebox{\fmbox}}} | ||
+ | </file> | ||
+ | |||
+ | Et voici un exemple d'utilisation de ce fichier : | ||
+ | |||
+ | <WRAP column 40ex> | ||
+ | <code latex> | ||
+ | \input{fmpage.sty} | ||
+ | |||
+ | \begin{fmpage}{3cm} | ||
+ | Texte à encadrer dans une boîte | ||
+ | ne dépassant pas 3 centimètres | ||
+ | de large. | ||
+ | \end{fmpage} | ||
+ | </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) | ||
+ | metatag-og:title=(Comment encadrer du texte) | ||
+ | metatag-og:site_name=(FAQ LaTeX francophone) | ||
+ | }} |