====== Boîtes colorées sous forme d'environnement ====== ===== Code ===== Le codage suivant est de Jean-Côme Charpentier. Il nécessite ''pstricks'' et le package ''calc''. \newsavebox{\dangerbox} % On règle les marges définitivement ici \newlength{\marge}\setlength{\marge}{5mm} % Contrôle fin pour le panneau \newlength{\margehaut}\setlength{\margehaut}{2mm} \newenvironment{Danger}{% \par \begin{lrbox}{\dangerbox} \begin{minipage}{\linewidth-2\marge-2\pslinewidth} \par\vspace*{\margehaut} } {% \end{minipage}% \end{lrbox} % Affiche le texte dans un cadre en couleur. \rput[tl](0,0){% \psframebox[fillstyle=solid, fillcolor=yellow, framesep=\marge]{% \usebox{\dangerbox}% }% }% % Efface le trait juste ce qu'il faut \rput(\marge,0){% \psline[linewidth=2\pslinewidth,linecolor=white](0,0)(2.4em,0) } % Affiche le panneau \rput(2\marge,0){\Large\textdbend} % Réserve la place verticale pour la suite \par \setlength{\marge}{\ht\dangerbox+\dp\dangerbox+2\marge} \vspace{\marge} } ===== Utilisation ===== toto va bien :) \begin{Danger} Voici un danger : ne pas divulger directement ce que l'on veut faire. C'est plus facile pour JCC si on lui dit tout :) \end{Danger} Du texte qui suit, suffisamment long pour montrer que le cadre a une largeur très exactement égale à celle de l'empagement. ===== Résultat ===== {{:jccdanger1.png}} ===== Une variante ===== \documentclass{article} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \usepackage[a4paper]{geometry} \usepackage{pstricks} \usepackage{calc} \usepackage{manfnt} \usepackage{lmodern} \usepackage[frenchb]{babel} \newsavebox{\dangerbox} % On règle les marges définitivement ici \newlength{\marge}\setlength{\marge}{4mm} % Contrôle fin pour le panneau \newlength{\margehaut}\setlength{\margehaut}{2mm} \newenvironment{Danger}{% \par\vspace{2mm} % Ajout pour que le haut du panneau ne touche pas \noindent % le texte au-dessus. \begin{lrbox}{\dangerbox} \begin{minipage}{\linewidth-2\marge-2\pslinewidth} \par\vspace*{\margehaut} } {% \end{minipage}% \end{lrbox}% % Affiche le texte dans un cadre en couleur. \rput[tl](0,0){% \psframebox[fillstyle=solid, fillcolor=yellow, framesep=\marge]{% \usebox{\dangerbox}% }% }% % Les trois lignes de code ci-dessous deviennent inutiles % % Efface le trait juste ce qu'il faut % \rput(\marge,0){% % \psline[linewidth=2\pslinewidth,linecolor=white](0,0)(2.4em,0) % } % Affiche le panneau (avec \psframebox* maintenant) \rput(2\marge,0){\psframebox*{\Large\textdbend}} % Réserve la place verticale pour la suite \par \setlength{\marge}{\ht\dangerbox+\dp\dangerbox+2\marge} \vspace{\marge} } \pagestyle{empty} \begin{document} toto va bien :) \begin{Danger} Voici un danger : ne pas divulger directement ce que l'on veut faire. C'est plus facile pour JCC si on lui dit tout :) \end{Danger} Du texte qui suit, suffisamment long pour montrer que le cadre a une largeur très exactement égale à celle de l'empagement. \end{document} {{ cp:variante_boite_coloree.png }} ===== Disque, rectangle ou ellipse, au choix ! ===== \documentclass{article} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \usepackage[a4paper]{geometry} \usepackage{pstricks} \usepackage{calc} \usepackage{manfnt} \usepackage{lmodern} \usepackage[frenchb]{babel} \newsavebox{\dangerbox} % On règle les marges définitivement ici \newlength{\marge}\setlength{\marge}{4mm} % Contrôle fin pour le panneau \newlength{\margehaut}\setlength{\margehaut}{2mm} \newenvironment{Danger}{% \par\vspace{2mm} % Ajout pour que le haut du panneau ne touche pas % le texte au-dessus. \noindent \begin{lrbox}{\dangerbox} \begin{minipage}{\linewidth-2\marge-2\pslinewidth} \par\vspace*{\margehaut} } {% \end{minipage}% \end{lrbox}% % Affiche le texte dans un cadre en couleur. \rput[tl](0,0){% \psframebox[fillstyle=solid, fillcolor=yellow, framesep=\marge]{% \usebox{\dangerbox}% }% }% %%% Décommenter la ligne voulue pour avoir un rectangle, %%% un cercle ou une ellipse comme fond. % Affiche le panneau (dans un rectangle sur fond blanc) %%% \rput(2\marge,0){\psframebox*{\Large\textdbend}} % Affiche le panneau (dans un disque sur fond blanc) %%% \rput(2\marge,0){\pscirclebox*[framesep=1pt]{\Large\textdbend}} % Affiche le panneau (dans une ellipse sur fond blanc) \rput(2\marge,0){\psovalbox*[framesep=-2pt]{\Large\textdbend}} % Réserve la place verticale pour la suite \par \setlength{\marge}{\ht\dangerbox+\dp\dangerbox+2\marge} \vspace{\marge} } \pagestyle{empty} \begin{document} toto va bien :) \begin{Danger} Voici un danger : ne pas divulger directement ce que l'on veut faire. C'est plus facile pour JCC si on lui dit tout :) \end{Danger} Du texte qui suit, suffisamment long pour montrer que le cadre a une largeur très exactement égale à celle de l'empagement. \end{document} ==== Ellipse ==== {{ cp:variante_boite_coloree_2.png }} ==== Disque ==== {{ cp:variante_boite_coloree_3.png }}