\documentclass[article, a4paper, 11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[garamond]{mathdesign}
\usepackage{bclogo}
\usepackage{verbatim}
\usepackage[margin=2.5cm]{geometry}
\usepackage{amsmath}
\usepackage[frenchb]{babel}
\usepackage{xcolor}
\usepackage{multicol}
\usepackage{listings}
\usepackage{pifont}

\lstset{language=[LaTeX]TeX,defaultdialect=[LaTeX]TeX,basicstyle=\sffamily\small,breaklines=true} 

\newenvironment{enum}{%
\begin{dingautolist}{202}}
{\end{dingautolist}}

\newenvironment{Code}{%
\begin{bclogo}[logo = \orne]{Code}%
}
{%
\end{bclogo}
}
\definecolor{cPG}{RGB}{235, 227, 150}

\title{\texttt{bclogo} version 1.3}
\author{Maxime \textsc{Chupin}\footnote{Merci à Jean-Côme \textsc{Charpentier}, Ulrike \textsc{Fischer} et Manuel \textsc{Pégourié-Gonnard}}\\\texttt{notezik@gmail.com}}
\date{16 Septembre 2008}

\begin{document}

\maketitle

\begin{abstract}
Ce paquet permet la création, via \texttt{Pstricks}, de boîtes colorées avec un logo, un titre et une couleur de fond\footnote{Il y a bien entendu d'autres options}.
\end{abstract}
\vspace*{2cm}

\begin{bclogo}[couleur = cPG, cadretitre = true, arrondi = 0.1]{Le paquet \texttt{bclogo}}
Voici les logos :
\begin{multicols}{2}

\begin{itemize}
\item La fleur : \fleur
\item Le chantier : \panchant
\item La note : \note
\item L'étoile : \etoile
\item L'ourson : \ours
\end{itemize}
\begin{itemize}
\item Attention : \attention
\item Le c\oe ur : \coeur
\item Ornement : \danger
\item Smiley heureux : \smbh
\item Smiley malheureux : \smmh
\end{itemize}
\end{multicols}

\end{bclogo}


\newpage

\tableofcontents
\newpage

\section{Introduction}

Ce paquet a été créé pour faciliter la fabrication de boîtes colorées plus ou moins complexes disposant d'un titre, d'un logo et d'une couleur de fond. \texttt{bclogo} s'appuie principalement sur \texttt{Pstricks} et comme il utilise \texttt{xkeyval}, la \textit{syntaxe} est habituelle pour les utilisateurs du dit language. Ces boîtes permettent de colorer un peu les pages d'un document \LaTeX{} tout en mettant en relief le contenu de la boîte.

Pour son bon fonctionnement, il est necessaire d'avoir les paquets suivants installés sur votre machine.
  
\begin{bclogo}[couleur = cPG, logo = \attention, cadretitre = true, arrondi = 0.1]{Les paquets \textit{indispensables}}
\begin{multicols}{2}
\begin{enum}
\item \verb+Pstricks+
\item \verb+tabularx+
\item \verb+graphicx+
\item \verb+ifthen+
\item \verb+pst-grad+
\item  \verb+xkeyval+
\end{enum}
\end{multicols}
\end{bclogo}

\section{Syntaxe générale}

Voici le schéma de base pour réaliser une boîte :

\begin{Code}
\begin{verbatim}
\begin{bclogo}[<options>]{Titre}
Corps de la boite...
\end{bclogo}
\end{verbatim}
\end{Code}

\section{Les options}

\subsection{La couleur de fond}

On définit la couleur de fond grâce à \texttt{couleur = <macouleur>}, par exemple :
\begin{Code}
\begin{verbatim}
\begin{bclogo}[couleur = blue!30]{Mon Titre}
  Du texte qui se répète encore et encore pour l'exemple, du texte qui
  se répète encore et encore pour l'exemple, du texte qui se répète
  encore et encore pour l'exemple\dots
\end{bclogo}
\end{verbatim}
\end{Code}
\bigskip

Ce qui donne : 

\begin{bclogo}[couleur = blue!30]{Mon Titre}
  Du texte qui se répète encore et encore pour l'exemple, du texte qui
  se répète encore et encore pour l'exemple, du texte qui se répète
  encore et encore pour l'exemple\dots
\end{bclogo}
\bigskip

Par défaut la couleur est blanche.

\subsection{L'arrondi des coins}

On commande la taille de l'arrondi dans les options de la manière suivante \texttt{arrondi = <valeur>} :

\begin{Code}
\begin{verbatim}
\begin{bclogo}[couleur = blue!30, arrondi = 0.1]{Mon Titre}
  Du texte qui se répète encore et encore pour l'exemple, du texte qui
  se répète encore et encore pour l'exemple, du texte qui se répète
  encore et encore pour l'exemple\dots
\end{bclogo}
\end{verbatim}
\end{Code}
\bigskip

Ce qui donne :
\begin{bclogo}[couleur = blue!30, arrondi = 0.1]{Mon Titre}
  Du texte qui se répète encore et encore pour l'exemple, du texte qui
  se répète encore et encore pour l'exemple, du texte qui se répète
  encore et encore pour l'exemple\dots
\end{bclogo}
\bigskip

Par défaut, l'arrondi est à 0.

\subsection{Le style de titre}


Il y a deux styles de titre. Un, par défaut ou avec la commande \texttt{cadretitre = false}. Les boîtes précédentes utilise ce style de titre.
\bigskip

Le second style, plus élaboré, est un cadre avec un gradient de couleur \textit{gold}. Ceci  s'obtient avec la commande \texttt{cadretitre = true}.

\begin{Code}
\begin{verbatim}
\begin{bclogo}[couleur = blue!30, arrondi = 0.1, cadretitre = true]{Mon Titre}
  Du texte qui se répète encore et encore pour l'exemple, du texte qui
  se répète encore et encore pour l'exemple, du texte qui se répète
  encore et encore pour l'exemple\dots
\end{bclogo}
\end{verbatim}
\end{Code}
 \bigskip

Ce qui donne :

\begin{bclogo}[couleur = blue!30, arrondi = 0.1, cadretitre = true]{Mon Titre}
  Du texte qui se répète encore et encore pour l'exemple, du texte qui
  se répète encore et encore pour l'exemple, du texte qui se répète
  encore et encore pour l'exemple\dots
\end{bclogo}

\subsection{Les logos}

C'est là que réside l'originalité de \texttt{bclogo}\dots  Pour la plupart, je les ai dessinés avec \textit{Inkscape} et exportés en PSTricks. Chaque logo (dessiné avec \textit{Inkscape}) est contenu dans un fichier \textit{<monlogo>}\texttt{.tex} qui est appelé dans le fichier \texttt{bclogo.sty}. La création de logo est un travail amusant, ceux qui veulent y participer n'ont qu'à me contacter par mail.

Les logos sont définis avec une largeur de 17pt.

Le \og{}panneau chantier\fg{} est un logo particulier car c'est une image \texttt{.eps}.

Voici la liste des logos :

\begin{bclogo}[arrondi=0.05, logo=\fleur, couleur= cPG, cadretitre = true]{Les logos}:
\begin{enumerate}
\item la fleur : commande \verb+\fleur+ \raisebox{-3mm}{\fleur}
\item \og{}en chantier\fg{} : commande \verb+\panchant+ \raisebox{-3mm}{\panchant} (Jean-Michel \textsc{Sarlat})
\item la note  : commande \verb+\note+ \raisebox{-3mm}{\note} (Thomas \textsc{Labarrusias})
\item l'étoile  : commande \verb+\etoile+ \raisebox{-3mm}{\etoile}
\item l'ourson  : commande \verb+\ours+ \raisebox{-3mm}{\ours}
\item \og{}attention\fg{} : commande \verb+\attention+ \raisebox{-3mm}{\attention}
\item le c\oe{}ur : commande \verb+\coeur+ \raisebox{-3mm}{\coeur}
\item ornement : commande \verb+\orne+ \raisebox{-3mm}{\orne}
\item danger : commande \verb+\danger+ \raisebox{-3mm}{\danger} (François \textsc{Boerkmann})
\item smiley heureux : commande \verb+\smbh+ \raisebox{-3mm}{\smbh} (François \textsc{Boerkmann})
\item smiley malheureux : commande \verb+\smmh+ \raisebox{-3mm}{\smmh} (François \textsc{Boerkmann})
\end{enumerate}
\end{bclogo}

\section{Liste des boîtes}

On peut, comme avec table of contents, lister les boîtes utilisées dans le document et ce grâce à la commande :

\begin{verbatim}
\listofbclogo
\end{verbatim}

Les noms affichés dans la liste sont les différents titres des boîtes. Par exemple dans ce document la liste donne :

\listofbclogo
\bigskip

Le titre de la liste peut alors être modifié par la commande :

\begin{verbatim}
\renewcommand{\titrebclogo}{Liste des fiches}
\end{verbatim}

\section{Le code}

Voici le code de \texttt{bclogo.sty}, je ne mets pas le code des logos car cela manque d'intérêt. 

\begin{lstlisting}[numbers=left]
\NeedsTeXFormat{LaTeX2e}
 
\ProvidesPackage{bclogo}[2008/03/12, V1.3]
 
% extensions
 
\RequirePackage{pstricks}
\RequirePackage{pst-grad}
\RequirePackage{tabularx}
\RequirePackage{graphicx}
\RequirePackage{ifthen}
\RequirePackage{xkeyval}
%les symboles
%======================================================================
%la fleur
\newcommand\fleur{\begingroup\input{fleur}\endgroup}
%une note (Thomas Laburussias)
\newcommand\note{\begingroup\input{note}\endgroup}
%panneau chantier (Jean-Michel Sarlat)
\newcommand{\panchant}{\includegraphics[width=17pt]{aux-301.eps}}
%ours
\newcommand\ours{\begingroup\input{ours.tex}\endgroup}
%etoile
\newcommand\etoile{\begingroup\input{etoile.tex}\endgroup}
%attention
\newcommand\attention{\begingroup\input{attention.tex}\endgroup}
%coeur
\newcommand\coeur{\begingroup\input{coeur.tex}\endgroup}
%ornement (tire du site http://openclipart.org )
\newcommand\orne{\begingroup\input{orne.tex}\endgroup}
%danger (Francois)
\newcommand\danger{\begingroup\input{danger.tex}\endgroup}
%smiley bonne humeur (Francois)
\newcommand\smbh{\begingroup\input{smiley_bonnehumeur.tex}\endgroup}
%smiley bonne humeur (Francois)
\newcommand\smmh{\begingroup\input{smiley_mauvaisehumeur.tex}\endgroup}
%======================================================================
 
%=========================== La fonction listable =====================
\newcommand{\titrebclogo}{Liste des \texttt{bclogo}}
\newcommand\bccaption[1]{\addcontentsline{bcl}{bclogo}{#1}}
\makeatletter 
\newcommand\listofbclogo{\section*{\titrebclogo}\@starttoc{bcl}}
\newcommand\l@bclogo[2]{\par\noindent #1,~\textit{page~#2}}
\makeatother
%======================================================================
\makeatletter
%======================================= les keys =====================
 
\define@key{bclogo}{logo}[\fleur]{\def\val@logo{#1}}
\define@key{bclogo}{couleur}[white]{\def\val@couleur{#1}}
\define@key{bclogo}{arrondi}[0]{\def\val@arrondi{#1}}
\define@boolkey{bclogo}{cadretitre}[false]{}
 
\setkeys{bclogo}{logo, couleur, arrondi} %on recupere les valeur par
                                         %defaut
 
%======================================================================
 
\newsavebox{\envbox}
%%% precaution JCC
\newcommand*\bclogocolor{}
\newcommand*\bclogotitre{}
 
\newenvironment*{bclogo}[2][]{%
   \setkeys{bclogo}{#1} %on recupere les options
   \par\noindent % attention au retrait d'alinea
   %%% Ajout de JCC : il faut definir les commandes qui seront
   %%% untilisees dans la deuxieme partie de l'environnement commande
   %%% titre
   \renewcommand*\bclogotitre{#2}
   \renewcommand*\bclogocolor{\val@couleur}
%La commande pour les coins arrondis
   \newcommand{\arr}{\val@arrondi}
%%% deux types de titres
   \ifKV@bclogo@cadretitre %si cadretitre = true
   \newcommand{\structitre}{ \rput({\dimexpr
       -17pt+0.5\linewidth},0.1)%
     {\psframebox[fillstyle=gradient,gradmidpoint=0.2,%
     gradangle=0,gradbegin=red!60!green!40, gradend=white]{\large #2}}} 
   \else %sinon
   \newcommand{\structitre}{{\large \textbf{#2}}} \fi
%
\begin{lrbox}{\envbox}
\begin{tabular}{@{}c@{}p{\dimexpr\linewidth-2\psframesep-%
2\pslinewidth-17pt}@{}}
   \raisebox{-3mm}{\val@logo} &\structitre \\[1ex]
   \vrule width 0.05cm&
}
{%
  \bccaption{\bclogotitre}
  \end{tabular}%
  \end{lrbox}%
  % Affiche le texte dans un cadre en couleur.
  \noindent
  \rput[tl](-0.18,0){%
    \psframebox[fillstyle=solid, fillcolor=\bclogocolor,framearc=\arr]{%
      \usebox{\envbox}%
    }%
  }%
 \par\vspace*{\dimexpr\ht\envbox+\dp\envbox+2\psframesep+2\pslinewidth}
}
 
\makeatother

\end{lstlisting}

\end{document}