définition des lengths mdfbox, préfixage des length, ajout de l'option nobreak, modif...
[bclogo.git] / dev / latex / bclogo.sty
index 95a0e7d..a91063f 100644 (file)
@@ -1,26 +1,38 @@
 \NeedsTeXFormat{LaTeX2e}%
 \def\PackageName{bclogo}%
-\def\fileversion{v2.27}%
+\def\fileversion{v3.0}%
 \def\filedate{2011/10/01}%
-\ProvidesPackage{bclogo}%
-   [\filedate\space\fileversion]%
+\ProvidesPackage{bclogo}[\filedate\space\fileversion]%
+
+% Extensions a charger
 \RequirePackage{xkeyval,ifthen}%
+\RequirePackage{graphicx}%
+\RequirePackage{mdframed}%
+
 %% 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}%
+
+% quelques dimensions
+\newlength{\bc@invboxh}\newlength{\bc@invboxd}%
+\newlength{\bc@titleLength}%
+\newlength{\logowidth}
+\newlength{\bc@mdfboxwidth}
+\newlength{\bc@mdfboxheight}
+% \newlength{\bc@mdf@ymargin@length}
+
+\setlength{\logowidth}{17pt}%
 \ProcessOptionsX%
 %
-\RequirePackage{graphicx}%
+
 \ifbclogotikz%
         \RequirePackage{tikz}%
         \usetikzlibrary{shadows}% pour l'ombre
         \usetikzlibrary{decorations.pathmorphing} % pour la barre ondulee
-        \RequirePackage{mdframed}%
-        \def\mdf@style{1}%
+        \def\bc@mdf@style{1}%
         \input{bclogoMdframedTikz}%
 \else%
         \RequirePackage{pstricks}%
@@ -31,8 +43,7 @@
                 \let\pagecolorOLD\pagecolor% modification pour sauvegarde de la couleur du fond
                 \def\pagecolor#1{\gdef\psx@blurbg{#1}\pagecolorOLD{#1}}%suppose l'utilisation: \pagecolor{couleur}
         \fi%
-        \RequirePackage{mdframed}%
-        \def\mdf@style{3}%
+        \def\bc@mdf@style{3}%
         \input{bclogoMdframedPst}%
 \fi%
 \edef\Gin@extensions{.mps,\Gin@extensions}%
 \define@boolkey{bclogo}{noborder}[true]{\ifKV@bclogo@noborder\setlength{\bcval@borderWidth}{\z@}\fi}%
 \define@boolkey{bclogo}{ombre}[true]{}%
 \define@boolkey{bclogo}{avecBarre}[true]{}%
+\define@boolkey{bclogo}{nobreak}[false]{}%
 \define@boolkey{bclogo}{blur}[true]{\ifKV@bclogo@blur\KV@bclogo@ombretrue\fi}%
 \define@choicekey{bclogo}{barre}{none,line,snake,motif,zigzag,imageExt,imageClip, wave}[line]{%
 \ifthenelse{\equal{#1}{none}}{\KV@bclogo@avecBarrefalse}%
 %
 % selection par defaut
 \presetkeys{bclogo}{logo,barre,couleur,arrondi,couleurOmbre,couleurTexte,couleurBarre,epOmbre,epBarre,epBord,tailleOndu,ombre=false,cadreTitre=false,%
-avecBarre=true,noborder=false,marge,sousTitre, couleurBord,blur=false}{}%
+avecBarre=true,noborder=false,marge,sousTitre, couleurBord,blur=false,nobreak=false}{}%
 %
 %les differentes commandes de barre verticale a gauche
 %
@@ -248,12 +260,10 @@ clip=true]{\bcval@imageBarre}%
 %======================= Quelques definitions===================================
 % boite titre
 \newsavebox{\bc@envbox}%
-% pour la hauteur de la boite
-\newlength{\bc@invboxh}\newlength{\bc@invboxd}%
-\newlength{\bc@titleLength}%
 %%% precaution JCC
 \newcommand*\bclogotitre{}%
-\newcommand\styleSousTitre[1]{\normalsize \textit{#1}}%
+\newcommand\bcStyleSousTitre[1]{\normalsize \textit{#1}}%
+\newcommand\styleSousTitre[1]{\bcStyleSousTitre{#1}}% pour la compatibilit
 \newcommand\bcStyleTitre[1]{\large \textbf{#1}}%
 %======================= L'environnement =======================================
 %
@@ -262,9 +272,9 @@ clip=true]{\bcval@imageBarre}%
    \renewcommand*\bclogotitre{#2}%
   % deux types de titres
    \ifKV@bclogo@cadreTitre% si cadreTitre = true
-       \def\structitre{%
+       \def\bc@structitre{%
             \hfil%
-            \ifbclogotikz% cadreTitre tizk
+            \ifbclogotikz% cadreTitre tikz
             \begin{tikzpicture}%
                 \node[rectangle, thick, top color=red!60!green!40, bottom color=white,draw]{\large #2};%
             \end{tikzpicture}%
@@ -274,7 +284,7 @@ clip=true]{\bcval@imageBarre}%
             \hfil%
         }%
   \else%sinon cadreTitre = false
-      \def\structitre{\bcStyleTitre{#2} \styleSousTitre{\bcval@sousTitre}}%
+      \def\bc@structitre{\bcStyleTitre{#2} \bcStyleSousTitre{\bcval@sousTitre}}%
   \fi%
 %boite logo+titre
 \setlength{\bc@titleLength}{%
@@ -289,13 +299,14 @@ clip=true]{\bcval@imageBarre}%
      &%
        \ifKV@bclogo@cadreTitre%
          \begin{minipage}{\bc@titleLength}%
-                \structitre%
+                \bc@structitre%
          \end{minipage}%
-       \else\structitre\fi%
+       \else\bc@structitre\fi%
    \end{tabular}%
   \end{lrbox}%
 % affichage
-\smallskip% ressort
+%\smallskip% ressort %% Pourquoi ?
+\def\bcval@nobreak{\ifKV@bclogo@nobreak true\else false\fi} % gestion nobreak
 \mdframed[%
  innerleftmargin={\dimexpr\ifKV@bclogo@avecBarre\logowidth\else\z@\fi+\bcval@framesep\relax},%
  innertopmargin={\dimexpr\ht\bc@envbox+\dp\bc@envbox+\bcval@framesep\relax},%hauteur titre+framesep
@@ -306,7 +317,8 @@ clip=true]{\bcval@imageBarre}%
  backgroundcolor=\bcval@couleur,%
  fontcolor=\bcval@couleurTexte,%
  linewidth=\bcval@borderWidth,%
- roundcorner={\bcval@arrondi cm}]%
+ roundcorner={\bcval@arrondi cm},%
+ nobreak= \bcval@nobreak]%
 }%
 {%
 \endmdframed\par%

Licence Creative Commons Les fichiers de Syracuse sont mis à disposition (sauf mention contraire) selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.