X-Git-Url: https://melusine.eu.org/syracuse/G/git/?a=blobdiff_plain;f=dev%2Flatex%2Fbclogo.sty;fp=dev%2Flatex%2Fbclogo.sty;h=e7fe26935a8519bee45ab2ffdf4dae30dee70dd0;hb=532cba56b1772a2237ad6e3db0a28401bfa22a73;hp=0000000000000000000000000000000000000000;hpb=a2703a524fece2aa50e81ec7e0863f351eb0c8cc;p=bclogo.git diff --git a/dev/latex/bclogo.sty b/dev/latex/bclogo.sty new file mode 100644 index 0000000..e7fe269 --- /dev/null +++ b/dev/latex/bclogo.sty @@ -0,0 +1,329 @@ +\NeedsTeXFormat{LaTeX2e} +\def\PackageName{bclogo} +\def\fileversion{v2.26} +\def\filedate{2011/07/06} +\ProvidesPackage{bclogo} + [\filedate\space\fileversion] +\RequirePackage{xkeyval,ifthen} + +%% Les options globales du package sont au nombre de 2: tikz ou pstricks +\newif\ifbclogotikz% +\newif\ifbclogoblur +\define@key{bclogo.sty}{tikz}[]{\bclogotikztrue}% +\define@key{bclogo.sty}{pstricks}[]{\bclogotikzfalse}% +\define@key{bclogo.sty}{blur}[]{\bclogoblurtrue}% +\newlength{\logowidth}\setlength{\logowidth}{17pt}% +\ProcessOptionsX% + + +\RequirePackage{graphicx}% +\ifbclogotikz% +\RequirePackage{tikz}% +\usetikzlibrary{shadows}% pour l'ombre +\usetikzlibrary{decorations.pathmorphing} % pour la barre ondulee +\else% +\ifbclogoblur\RequirePackage{pst-blur}\fi% +\RequirePackage{pstricks}% +\RequirePackage{pst-grad}% +\RequirePackage{pst-coil}% pour la barre ondulee +\fi% +\edef\Gin@extensions{.mps,\Gin@extensions} +\RequirePackage{ifpdf} +\ifpdf\relax\else\DeclareGraphicsRule{mps}{eps}{*}{}\fi +% les symboles +% ============================================================================== + +% la fleur +\newcommand\bcfleur{\includegraphics[width=\logowidth]{bc-fleur}} +% une note (Thomas Labarussias) +\newcommand\bcnote{\includegraphics[width=\logowidth]{bc-note}} +% panneau chantier (Jean-Michel Sarlat) +\newcommand\bcpanchant{\includegraphics[width=\logowidth]{bc-aux-301}} +% ours +%\newcommand\bcours{\begingroup\input{bc-ours.tex}\endgroup} +\newcommand\bcours{\includegraphics[width=\logowidth]{bc-ours}} +% etoile +%\newcommand\bcetoile{\begingroup\input{bc-etoile.tex}\endgroup} +\newcommand\bcetoile{\includegraphics[width=\logowidth]{bc-etoile}} +% attention +%\newcommand\bcattention{\begingroup\input{bc-attention.tex}\endgroup} +\newcommand\bcattention{\includegraphics[width=\logowidth]{bc-attention}} +% attention P.Fradin +\newcommand\bctakecare{\includegraphics[width=\logowidth]{bc-takecare}} +% lampe P.Fradin +\newcommand\bclampe{\includegraphics[width=\logowidth]{bc-lampe}} +% coeur +\newcommand\bccoeur{\includegraphics[width=\logowidth]{bc-coeur}} +% ornement (tire du site http://openclipart.org ) +\newcommand\bcorne{\includegraphics[width=\logowidth]{bc-orne}} +% danger (Francois) +\newcommand\bcdanger{\includegraphics[width=\logowidth]{bc-danger}} +% smiley bonne humeur (Francois) +\newcommand\bcsmbh{\includegraphics[width=\logowidth]{bc-smiley-bonnehumeur}} +% smiley bonne humeur (Francois) +\newcommand\bcsmmh{\includegraphics[width=\logowidth]{bc-smiley-mauvaisehumeur}} +% le trefle +\newcommand\bctrefle{\includegraphics[width=\logowidth]{bc-trefle}} +% le livre +\newcommand\bcbook{\includegraphics[width=\logowidth]{bc-book}} +% point d'interrogation +\newcommand\bcquestion{\includegraphics[width=\logowidth]{bc-inter}} +% crayon anne-sophie philippe +\newcommand\bccrayon{\includegraphics[width=\logowidth]{bc-crayon}} +% info (thomas labarrussias) +\newcommand\bcinfo{\includegraphics[width=\logowidth]{bc-info}} +% plume +\newcommand\bcplume{\includegraphics[width=\logowidth]{bc-plume}} +% le pic LaTeX +\newcommand\bcspadesuit{{\centering \huge $\spadesuit$}} +% logos Alphonse Capriani +\newcommand\bcbombe{\includegraphics[width=\logowidth]{bc-bombe}} +\newcommand\bccube{\includegraphics[width=\logowidth]{bc-cube}} +\newcommand\bcdallemagne{\includegraphics[width=\logowidth]{bc-dallemagne}} +\newcommand\bcdautriche{\includegraphics[width=\logowidth]{bc-dautriche}} +\newcommand\bcdbelgique{\includegraphics[width=\logowidth]{bc-dbelgique}} +\newcommand\bcdbulgarie{\includegraphics[width=\logowidth]{bc-dbulgarie}} +\newcommand\bcdfrance{\includegraphics[width=\logowidth]{bc-dfrance}} +\newcommand\bcditalie{\includegraphics[width=\logowidth]{bc-ditalie}} +\newcommand\bcdluxembourg{\includegraphics[width=\logowidth]{bc-dluxembourg}} +\newcommand\bcdpaysbas{\includegraphics[width=\logowidth]{bc-dpaysbas}} +\newcommand\bcdodecaedre{\includegraphics[width=\logowidth]{bc-dodecaedre}} +\newcommand\bceclaircie{\includegraphics[width=\logowidth]{bc-eclaircie}} +\newcommand\bcicosaedre{\includegraphics[width=\logowidth]{bc-icosaedre}} +\newcommand\bcinterdit{\includegraphics[width=\logowidth]{bc-interdit}} +\newcommand\bcneige{\includegraphics[width=\logowidth]{bc-neige}} +\newcommand\bcoctaedre{\includegraphics[width=\logowidth]{bc-octaedre}} +\newcommand\bcpluie{\includegraphics[width=\logowidth]{bc-pluie}} +\newcommand\bcpoisson{\includegraphics[width=\logowidth]{bc-poisson}} +\newcommand\bcsoleil{\includegraphics[width=\logowidth]{bc-soleil}} +\newcommand\bcstop{\includegraphics[width=\logowidth]{bc-stop}} +\newcommand\bctetraedre{\includegraphics[width=\logowidth]{bc-tetraedre}} +\newcommand\bccalendrier{\includegraphics[width=\logowidth]{bc-calendrier}} +\newcommand\bchorloge{\includegraphics[width=\logowidth]{bc-horloge}} +\newcommand\bcyin{\includegraphics[width=\logowidth]{bc-yin}} +\newcommand\bcrosevents{\includegraphics[width=\logowidth]{bc-rosevents}} +% fin alphonse +% Vincent Pantaloni route glissante +\newcommand\bcdz{\includegraphics[width=\logowidth]{bc-dz}} +% François Pétiard +\newcommand\bcvelo{\includegraphics[width=\logowidth]{bc-velo}} +\newcommand\bcoeil{\includegraphics[width=\logowidth]{bc-oeil}} +\newcommand\bcpeaceandlove{\includegraphics[width=\logowidth]{bc-peaceandlove}} +\newcommand\bcnucleaire{\includegraphics[width=\logowidth]{bc-nucleaire}} +\newcommand\bcfemme{\includegraphics[width=\logowidth]{bc-femme}} +\newcommand\bchomme{\includegraphics[width=\logowidth]{bc-homme}} +\newcommand\bcloupe{\includegraphics[width=\logowidth]{bc-loupe}} +\newcommand\bcrecyclage{\includegraphics[width=\logowidth]{bc-recyclage}} +\newcommand\bcvaletcoeur{\includegraphics[width=\logowidth]{bc-valetcoeur}} +\newcommand\bccle{\includegraphics[width=\logowidth]{bc-cle}} +\newcommand\bcclefa{\includegraphics[width=\logowidth]{bc-clefa}} +\newcommand\bcclesol{\includegraphics[width=\logowidth]{bc-clesol}} +\newcommand\bcfeujaune{\includegraphics[width=\logowidth]{bc-feujaune}} +\newcommand\bcfeurouge{\includegraphics[width=\logowidth]{bc-feurouge}} +\newcommand\bcfeutricolore{\includegraphics[width=\logowidth]{bc-feutricolore}} +\newcommand\bcfeuvert{\includegraphics[width=\logowidth]{bc-feuvert}} +\newcommand\bcoutil{\includegraphics[width=\logowidth]{bc-outil}} +\newcommand\bctrombone{\includegraphics[width=\logowidth]{bc-trombone}} +% fin François +% =========================== La fonction listable ============================= + +\newcommand{\titrebclogo}{Liste des \texttt{bclogo}} +\newcommand\bccaption[1]{\addcontentsline{bcl}{bclogo}{#1}} +\newcommand\listofbclogo{\section*{\titrebclogo}\@starttoc{bcl}} +\newcommand\l@bclogo[2]{\par\noindent #1,~\textit{page~#2}} +\newcounter{bclogocompteur} % idee de Francois Petiard + +% ======================================= les keys ============================= + +\newlength{\bcval@epBarre} % on definit une longueur : l'epaisseur de la barre en point +\newlength{\bcval@framesep} % on definit une longueur : l'epaisseur de la marge en point +\newlength{\bcval@tailleOndu} % on definit une longueur : taille d'une ondulation +\newlength{\bcval@borderWidth} % on definit une longueur : epaisseur du bord +\define@key{bclogo}{logo}[\bcfleur]{\def\bcval@logo{#1}} +\define@key{bclogo}{couleur}[white]{\def\bcval@couleur{#1}} +\define@key{bclogo}{arrondi}[0]{\def\bcval@arrondi{#1}} +\define@key{bclogo}{epOmbre}[0.125]{\def\bcval@epOmbre{#1}} +\define@key{bclogo}{arrondi}[0]{\def\bcval@arrondi{#1}} +\define@key{bclogo}{couleurOmbre}[black]{\def\bcval@couleurOmbre{#1}} +\define@key{bclogo}{couleurBarre}[black]{\def\bcval@couleurBarre{#1}} +\define@key{bclogo}{couleurBord}[black]{\def\bcval@couleurBord{#1}} % modification Philippe Fortemps +\define@key{bclogo}{imageBarre}[]{\def\bcval@imageBarre{#1}} +\define@key{bclogo}{motifBarre}[*]{\def\bcval@motifBarre{#1}} +\define@key{bclogo}{marge}[4]{\setlength{\bcval@framesep}{#1 pt}\ifbclogotikz\else\setlength{\psframesep}{#1 pt}\fi} +\define@key{bclogo}{sousTitre}[]{\def\bcval@sousTitre{#1}} +\define@key{bclogo}{epBarre}[1.5]{\setlength{\bcval@epBarre}{#1 pt}} +\define@key{bclogo}{epBord}[0.8]{\setlength{\bcval@borderWidth}{#1 pt}}% +\define@key{bclogo}{tailleOndu}[2.5]{\setlength{\bcval@tailleOndu}{#1 pt}} +\define@boolkey{bclogo}{cadreTitre}[true]{} +\define@boolkey{bclogo}{noborder}[true]{} +\define@boolkey{bclogo}{ombre}[true]{} +\define@boolkey{bclogo}{avecBarre}[true]{} +\define@boolkey{bclogo}{blur}[true]{} +\define@choicekey{bclogo}{barre}{none,line,snake,motif,zigzag,imageExt,imageClip, wave}[line]{% +\ifthenelse{\equal{#1}{none}}{\KV@bclogo@avecBarrefalse}% +{\def\bc@barre{\@nameuse{bc@barre#1}}}% +}% + +% selection par defaut +\presetkeys{bclogo}{logo,barre,couleur,arrondi,couleurOmbre,couleurBarre,epOmbre,epBarre,epBord,tailleOndu,ombre=false,cadreTitre=false, avecBarre=true,noborder=false,marge,sousTitre, couleurBord,blur=false}{}% + +% les differente commande de barre vertical a gauche + +\newcommand{\bc@barreline}{\color{\bcval@couleurBarre}\vrule width \bcval@epBarre}% + +\newcommand{\bc@barremotif}{% +\begin{minipage}{\logowidth}\color{\bcval@couleurBarre}\centering% +\vbox to \bc@invboxh{\cleaders\vbox{\vss \bcval@motifBarre \vss}\vfill}% +\end{minipage}} + +\newcommand{\bc@barrewave}{% +\begin{minipage}{\logowidth}\color{\bcval@couleurBarre}\centering% +\vbox to \bc@invboxh{\cleaders\vbox{\vss $\leftwave\right.$ \vss}\vfill}% +\end{minipage}} + +\newcommand{\bc@barresnake}{% +\begin{minipage}{\logowidth}\centering +\ifbclogotikz +\begin{tikzpicture}[decoration={snake,segment length=2.66\bcval@tailleOndu, amplitude=\bcval@tailleOndu}] +\draw[decorate,line width=1pt, color=\bcval@couleurBarre](0,\bc@invboxh)--(0,0);\end{tikzpicture}% +\else +\psset{unit=1pt} +\begin{pspicture}(0,0)(0,\bc@invboxh) +\pszigzag[coilarm=0pt,coilwidth=2\bcval@tailleOndu,linewidth=1pt, linearc=1pt,coilheight=1.33,linecolor=\bcval@couleurBarre](0,\bc@invboxh)(0,0) +\end{pspicture}% +\fi +\end{minipage}}% + +\newcommand{\bc@barrezigzag}{% +\begin{minipage}{\logowidth}\centering +\ifbclogotikz +\begin{tikzpicture}[decoration={zigzag,segment length=2.66\bcval@tailleOndu, amplitude=\bcval@tailleOndu}] +\draw[decorate,line width=1pt,color=\bcval@couleurBarre](0,\bc@invboxh)--(0,0);\end{tikzpicture}% +\else +\psset{unit=1pt} +\begin{pspicture}(0,0)(0,\bc@invboxh) +\pszigzag[coilarm=0pt,coilwidth=2\bcval@tailleOndu,linewidth=1pt,coilheight=1.33,linecolor=\bcval@couleurBarre](0,\bc@invboxh)(0,0) +\end{pspicture}% +\fi +\end{minipage}}% + +\newcommand{\bc@barreimageExt}{% l'image est deformee +\begin{minipage}{\logowidth}\centering +\includegraphics[width=\logowidth,height=\bc@invboxh]{\bcval@imageBarre} +\end{minipage} +}% + +\newcommand{\bc@barreimageClip}{% +\begin{minipage}{\logowidth}\centering +\includegraphics[viewport=0 0 \logowidth~ \bc@invboxh,% +clip=true]{\bcval@imageBarre}% +\end{minipage} +}% + + +%======================= Quelques definitions=================================== +% boite globale +\newsavebox{\bc@envbox} +% boite interieure la ligne 2 du tableau barre + texte +\newsavebox{\bc@invbox} +% pour la hauteur de la boite +\newlength{\bc@invboxh}\newlength{\bc@invboxd} +%%% precaution JCC +\newcommand*\bclogotitre{} +\newcommand\styleSousTitre[1]{\normalsize \textit{#1}} +\newcommand\bcStyleTitre[1]{\large \textbf{#1}} +%======================= L'environnement ======================================= + +\newenvironment*{bclogo}[2][]{% + \setkeys{bclogo}{#1}%on recupere les options + % on definit les commandes qui seront utilisees dans la seconde + % parti de l'environnement + % la commande pour le titre + \renewcommand*\bclogotitre{#2}% + % La commande pour les coins arrondis + \newcommand{\arr}{\bcval@arrondi}% + % deux types de titres + \ifKV@bclogo@cadreTitre% si cadreTitre = true + \newcommand{\structitre}{% + \ifbclogotikz% cadreTitre tizk + \hfil + \begin{tikzpicture}\node[rectangle, thick, top color=red!60!green!40, bottom color=white,draw]{\large #2};% + \end{tikzpicture}% + \hfil% + \else% cadreTitre pstricks + \hfil + \psframebox[fillstyle=gradient,gradmidpoint=0.2, gradangle=0,gradbegin=red!60!green!40, gradend=white]{\large #2}% + \hfil% + \fi% + }% + \else%sinon cadreTitre = false + \newcommand{\structitre}{\bcStyleTitre{#2} \styleSousTitre{\bcval@sousTitre}}% + \fi% + \begin{lrbox}{\bc@invbox}% +\begin{minipage}{\dimexpr\linewidth-2\bcval@framesep-2\bcval@borderWidth-\logowidth-\ifKV@bclogo@ombre\bcval@epOmbre cm\else0pt\fi\relax}% +}% +{% +\end{minipage}% +\end{lrbox}% +% calcul de la hauteur totale de la boite interieure +\settoheight{\bc@invboxh}{\usebox{\bc@invbox}}% +\settodepth{\bc@invboxd}{\usebox{\bc@invbox}}% +\addtolength{\bc@invboxh}{\bc@invboxd}% + + % on commence la boite interieur ou est le texte et la barre vertical + \begin{lrbox}{\bc@envbox}% + \begin{tabular}{@{}c@{}p{\dimexpr\linewidth-2\bcval@framesep-2\bcval@borderWidth-\logowidth-\ifKV@bclogo@ombre\bcval@epOmbre cm\else0pt\fi+0pt}@{}}% +\begin{minipage}{\logowidth}% +\refstepcounter{bclogocompteur}\bccaption{\bclogotitre}\bcval@logo% +\end{minipage}% +&% + \ifKV@bclogo@cadreTitre% + \begin{minipage}{\dimexpr\linewidth-2\bcval@framesep-\logowidth-\ifKV@bclogo@ombre\bcval@epOmbre cm\else0pt\fi}\structitre\end{minipage}% + \else\structitre\fi\tabularnewline% + \ifKV@bclogo@avecBarre% si il y a une barre verticale + \bc@barre&\usebox{\bc@invbox}% + \else\multicolumn{2}{c}{\usebox{\bc@invbox}}% + \fi% + \end{tabular}% + \end{lrbox}% +% Affiche l'ensemble dans un cadre en couleur. + \ifbclogotikz% tikz + \par\noindent% + \begin{tikzpicture}% + \ifKV@bclogo@ombre%cadre ombre + \ifKV@bclogo@blur%blur + \node[% +preaction={line width=6,line join=round,opacity=0.1,draw=\bcval@couleurOmbre,transform canvas={xshift=\bcval@epOmbre cm, yshift=-\bcval@epOmbre cm}},% +preaction={line width=5,line join=round,opacity=0.15,draw=\bcval@couleurOmbre,transform canvas={xshift=\bcval@epOmbre cm, yshift=-\bcval@epOmbre cm}},% +preaction={line width=4,line join=round,opacity=0.2,draw=\bcval@couleurOmbre,transform canvas={xshift=\bcval@epOmbre cm, yshift=-\bcval@epOmbre cm}},% +preaction={line width=3,line join=round,opacity=0.3,draw=\bcval@couleurOmbre,transform canvas={xshift=\bcval@epOmbre cm, yshift=-\bcval@epOmbre cm}},% +preaction={line width=2,line join=round,opacity=0.4,draw=\bcval@couleurOmbre,transform canvas={xshift=\bcval@epOmbre cm, yshift=-\bcval@epOmbre cm}},% +preaction={line width=1,line join=round,opacity=0.5,draw=\bcval@couleurOmbre,transform canvas={xshift=\bcval@epOmbre cm, yshift=-\bcval@epOmbre cm}},% +general shadow={fill=\bcval@couleurOmbre,opacity=1,shadow xshift=\bcval@epOmbre cm, shadow yshift=-\bcval@epOmbre cm},% +fill=\bcval@couleur,shape=rectangle,line width=\bcval@borderWidth, inner sep=\bcval@framesep, rounded corners=\arr cm,% +draw=\ifKV@bclogo@noborder none\else \bcval@couleurBord\fi]{\usebox{\bc@envbox}};% + \else%ombre sans blur + \node[fill=\bcval@couleur,shape=rectangle,line width=\bcval@borderWidth, inner sep=\bcval@framesep, rounded corners=\arr cm,% + general shadow={fill=\bcval@couleurOmbre, shadow xshift=\bcval@epOmbre cm, shadow yshift=-\bcval@epOmbre cm}, draw=\ifKV@bclogo@noborder none\else \bcval@couleurBord\fi]{\usebox{\bc@envbox}};% + \fi% fin ifblur + \else%cadre sans ombre + \node[fill=\bcval@couleur,thick, shape=rectangle,line width=\bcval@borderWidth, inner sep=\bcval@framesep,rounded corners=\arr cm, draw=\ifKV@bclogo@noborder none\else \bcval@couleurBord\fi]{\usebox{\bc@envbox}};% + \fi% + \end{tikzpicture}% + %\par% + \else% pstricks + \noindent% + \ifKV@bclogo@ombre%cadre ombre + \ifKV@bclogo@blur%blur + \psframebox[cornersize=absolute,linearc=\dimexpr\arr cm * 2,fillstyle=solid, shadow=true, blur=true, shadowsize=\bcval@epOmbre cm,% + shadowcolor=\bcval@couleurOmbre, fillcolor=\bcval@couleur,linewidth=\bcval@borderWidth, linestyle=\ifKV@bclogo@noborder none\else solid\fi,linecolor=\bcval@couleurBord]{\usebox{\bc@envbox}}% + \else% + \psframebox[cornersize=absolute,linearc=\dimexpr\arr cm * 2,fillstyle=solid, shadow=true, shadowsize=\bcval@epOmbre cm,% + shadowcolor=\bcval@couleurOmbre, fillcolor=\bcval@couleur,linewidth=\bcval@borderWidth,linestyle=\ifKV@bclogo@noborder none\else solid\fi,linecolor=\bcval@couleurBord]{\usebox{\bc@envbox}}% + \fi% + \else%cadre sans ombre + \psframebox[cornersize=absolute,linearc=\dimexpr\arr cm * 2 ,fillstyle=solid, fillcolor=\bcval@couleur,linewidth=\bcval@borderWidth, linestyle=\ifKV@bclogo@noborder none\else solid\fi,linecolor=\bcval@couleurBord]{\usebox{\bc@envbox}}% + \fi% + \fi%fin + \ifKV@bclogo@ombre\vspace*{\bcval@epOmbre cm}\fi% +\hspace*{0pt}\par}%