Outils d'utilisateurs

Outils du Site


cp:boites1

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

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}

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

Disque

cp/boites1.txt · Dernière modification: 2007/09/28 21:04 par jms