summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-08-20 19:32:12 +0000
committerKarl Berry <karl@freefriends.org>2024-08-20 19:32:12 +0000
commitfe63c4e3772e6df81e35c9e19ab67001a35dc13e (patch)
tree1d57ebe4b7978f39f744b95932b00164361dbe0d /Master
parent91ea755522f6f395f46c132ab3480e4a67301fa0 (diff)
customenvs (20aug24)
git-svn-id: svn://tug.org/texlive/trunk@72073 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.pdfbin191562 -> 199070 bytes
-rw-r--r--Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex80
-rw-r--r--Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdfbin1472616 -> 1503490 bytes
-rw-r--r--Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex121
-rw-r--r--Master/texmf-dist/tex/latex/customenvs/customenvs.sty263
5 files changed, 456 insertions, 8 deletions
diff --git a/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.pdf b/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.pdf
index fe5aeba2978..adbd84e2f63 100644
--- a/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.pdf
+++ b/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex b/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex
index 321723f025a..9d38bb03ee5 100644
--- a/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex
+++ b/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex
@@ -34,8 +34,8 @@
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.8}
-\def\TPdate{13/07/2024}
+\def\TPversion{0.1.9}
+\def\TPdate{20/08/2024}
\usepackage{tcolorbox}
\sethlcolor{lightgray!25}
\NewDocumentCommand\MontreCode{ m }{%
@@ -111,7 +111,10 @@
\section{History}
+\verb|v0.1.9|~:~~~~Title banner
+
\verb|v0.1.8|~:~~~~Score banner
+
\verb|v0.1.7|~:~~~~Small patch for \textsf{Vignette} macro (see \texttt{[fr]} documentation)
\verb|v0.1.6|~:~~~~Small patchs for \textsf{displayskip} + \textsf{pas-tableur} (see \texttt{[fr]} documentation)
@@ -558,4 +561,77 @@ Regarding the bubble creation commands, \MontreCode{\textbackslash InSMS} and \M
\end{ChatSMS}
\end{demohigh}
+\pagebreak
+
+\section{Title banner}
+
+\subsection{Global usage}
+
+The idea is to propose a banner, made with \TikZ, to present for example a title.
+
+The global style is fixed, but few customizations are possible.
+
+\begin{codehigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri[keys]{number}{title}
+\end{codehigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri{01}{Titre du document}
+\end{demohigh}
+
+Available \MontreCode{keys} are :
+
+\begin{itemize}
+ \item \MontreCode{height} (\MontreCode{2.5em} by default)
+ \item \MontreCode{width} (\MontreCode{\textbackslash linewidth} by default)
+ \item \MontreCode{blockwidth} (\MontreCode{2.75em} by default, but can be set to \MontreCode{auto})
+ \item \MontreCode{coltxt} (\MontreCode{white} by default)
+ \item \MontreCode{fonttxt}
+ \item \MontreCode{swap} (\MontreCode{false} by default, for an other style )
+ \item \MontreCode{maincolor} (\MontreCode{darkgray} by default)
+ \item \MontreCode{collight} (\MontreCode{darkgray!25} by default)
+ \item \MontreCode{colmedium} (\MontreCode{darkgray!50} by default)
+ \item \MontreCode{coldark} (\MontreCode{darkgray} by default)
+ \item \MontreCode{logo}
+ \item \MontreCode{type}
+ \item \MontreCode{dispblock} (\MontreCode{true} by default)
+ \item \MontreCode{num} (\MontreCode{true} by default)
+ \item \MontreCode{customtype}
+\end{itemize}
+
+\subsection{Examples}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri
+ [maincolor=red,type=EXERCISES,blockwidth=auto,logo=\faAddressBook]
+ {7}{My doc}
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri
+ [maincolor=red,type=EXERCISES,blockwidth=5em,logo=\faAddressBook]
+ {7}{My doc}
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri
+ [maincolor=red,type=EXERCISES,blockwidth=auto,logo=\faAddressBook,swap]
+ {07}{My doc}
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri
+ [dispblock=false,maincolor=teal,logo=\faSchool]
+ {}{My doc}
+\end{demohigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzBannerTri
+ [maincolor=olive,customtype=TP,blockwidth=4em,logo=\faAddressBook,height=4em]
+ {7}{My doc}
+\end{demohigh}
+
+It's possible to redefine \MontreCode{\textbackslash part} (for example).
+
+
\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdf b/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdf
index 47dce47918d..5f86baf5c9c 100644
--- a/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdf
+++ b/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex b/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex
index 7a7293ec6ed..1d9576f9448 100644
--- a/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex
+++ b/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex
@@ -39,8 +39,8 @@
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.8}
-\def\TPdate{13 juillet 2024}
+\def\TPversion{0.1.9}
+\def\TPdate{20 août 2024}
\usepackage{tcolorbox}
\tcbuselibrary{listingsutf8}
\newtcblisting{DemoCode}[1]{%
@@ -62,14 +62,14 @@
keywordstyle={\color{blue}},%
classoffset=1,%
alsoletter={-},%
- morekeywords={center,justify,\LstDeuxNiv,\LstTroisNiv,\LstQuatreNiv,\NoticeDeuxNiv,\NoticeTroisNiv,\NoticeQuatreNiv,\DeuxNivBatterie,\TroisNivBatterie,\QuatreNivBatterie,\DeuxNivSmiley,\TroisNivSmiley,\QuatreNivSmiley,\vcenterfa,\faIcon},%
+ morekeywords={center,justify,\LstDeuxNiv,\LstTroisNiv,\LstQuatreNiv,\NoticeDeuxNiv,\NoticeTroisNiv,\NoticeQuatreNiv,\DeuxNivBatterie,\TroisNivBatterie,\QuatreNivBatterie,\DeuxNivSmiley,\TroisNivSmiley,\QuatreNivSmiley,\vcenterfa,\faIcon,part,RenewDocumentCommand,IfBooleanTF},%
keywordstyle={\color{violet}},%
classoffset=2,%
alsoletter={-},%
- morekeywords={\ReponsesQCM,MultiCols,\CreerListeItems,\ListeChoixItems,\TableauCompetences,\CrayonDeCompetences,\StyleEnvtExo,\StyleEnvtExoDefaut,\TitreExo,\ipsum,EnvSMS,\SMSrec,\SMSenv,BoiteSimple,\SujetTitreExo,\CircledNumber,\AffVignette,\BoiteArrondie,\ChangerDisplaySkip,\celcouleur,\celfusion,\lignetxt,\colonnetxt,\celnumbreak,\celtxt,\BandeauScore},%
+ morekeywords={\ReponsesQCM,MultiCols,\CreerListeItems,\ListeChoixItems,\TableauCompetences,\CrayonDeCompetences,\StyleEnvtExo,\StyleEnvtExoDefaut,\TitreExo,\ipsum,EnvSMS,\SMSrec,\SMSenv,BoiteSimple,\SujetTitreExo,\CircledNumber,\AffVignette,\BoiteArrondie,\ChangerDisplaySkip,\celcouleur,\celfusion,\lignetxt,\colonnetxt,\celnumbreak,\celtxt,\BandeauScore,\InsererImage,\tkzBannerTri},%
keywordstyle={\color{green!50!black}},%
classoffset=3,%
- morekeywords={Largeur,Filets,EspacesCL,NbCols,Labels,PoliceLabels,EspaceLabels,Swap,Type,CoeffEspVert,EpTrait,Alea,LargeurNivs,Niveaux,NoticeNiveaux,Titre,PolTitre,PolNotice,PolComp,LigneSep,CouleurNotice,CouleurNiveaux,CouleurFond,Note,Notice,PoliceCateg,PoliceBloc,Couleurs,LargeurBloc,Echelle,NoirBlanc,Libelle,EpTrait,Police,Type,ComplementTitre,Titre,CodeDebut,Couleur,EchelleImage,Decoration,Trait,Avatar,AffAvatar,NoirBlanc,CouleurE,CouleurR,CouleurFond,Hauteur,Largeur,PoliceTxt,CouleurTitre,AlignH,bg,txt,bthick,bcol,raise,Type,EspH,Fond,Texte,Style,Dense,Avant,AvantS,Apres,ApresS,Global,align,width,Legende,CouleurFond,Hauteur,Ratio,AffLegende,Couleurs,EchelleSymboles,Symboles},%
+ morekeywords={Largeur,Filets,EspacesCL,NbCols,Labels,PoliceLabels,EspaceLabels,Swap,Type,CoeffEspVert,EpTrait,Alea,LargeurNivs,Niveaux,NoticeNiveaux,Titre,PolTitre,PolNotice,PolComp,LigneSep,CouleurNotice,CouleurNiveaux,CouleurFond,Note,Notice,PoliceCateg,PoliceBloc,Couleurs,LargeurBloc,Echelle,NoirBlanc,Libelle,EpTrait,Police,Type,ComplementTitre,Titre,CodeDebut,Couleur,EchelleImage,Decoration,Trait,Avatar,AffAvatar,NoirBlanc,CouleurE,CouleurR,CouleurFond,Hauteur,Largeur,PoliceTxt,CouleurTitre,AlignH,bg,txt,bthick,bcol,raise,Type,EspH,Fond,Texte,Style,Dense,Avant,AvantS,Apres,ApresS,Global,align,width,Legende,CouleurFond,Hauteur,Ratio,AffLegende,Couleurs,EchelleSymboles,Symboles,vRemplir,vOffset,vCentrer,height,width,blockwidth,collight,colmedium,coldar,coltxt,fonttxt,swap,maincolor,logo,type,num,dispblock,customtype},%
keywordstyle={\color{orange}}
},%
#1
@@ -149,6 +149,10 @@
\section{Historique}
+\verb|v0.1.9|~:~~~Bannière de titre + Insertion d'images en remplissage vertical
+
+\verb|v0.1.8|~:~~~Nutriscore
+
\verb|v0.1.7|~:~~~~Possibilité de créer des vignettes \textsf{perso}
\verb|v0.1.6|~:~~~~Patch \textsf{displayskip} + Patches \textsf{pas-tableur}
@@ -1306,6 +1310,93 @@ On se place dans la plage \VignetteTableur{A3:B5} pour...
On lance le logiciel \BoiteArrondie[Fond=cyan!33,Texte=violet,EspH=2mm,Style=rect]{situé sur le bureau} en cliquant \BoiteArrondie[Fond=lightgray!25,Texte=darkgray]{droit}.
\end{DemoCode}
+\subsection{Bannière de titre}
+
+L'idée est de proposer une bannière, réalisée en \TikZ, pour présenter par exemple un titre.
+
+Il sera ensuite possible de redéfinir un sectionnement du document (\MontreCode{part/section/subsection/...}).
+
+Le style global est fixé, mais des éléments de personnalisations sont possibles (des calculs en interne sont effectués pour adapter la taille des textes).
+
+\begin{DemoCode}{listing only}
+\tkzBannerTri[clés]{numéro}{titre}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\tkzBannerTri{01}{Titre du document}
+\end{DemoCode}
+
+Les principales \MontreCode{clés} (anglicisées) sont :
+
+\begin{itemize}
+ \item \MontreCode{height} : hauteur de la bannière (\MontreCode{2.5em} par défaut)
+ \item \MontreCode{width} : largeur de la bannière (\MontreCode{\textbackslash linewidth} par défaut)
+ \item \MontreCode{blockwidth} : largeur du bloc gauche (\MontreCode{2.75em} par défaut, mais si \MontreCode{auto}, la largeur s'adaptera à son contenu)
+ \item \MontreCode{coltxt} : couleur des textes (\MontreCode{white} par défaut)
+ \item \MontreCode{fonttxt} : police globale des textes (\MontreCode{white} par défaut)
+ \item \MontreCode{swap} : booléen pour changer le style de la partie droite (\MontreCode{false} par défaut)
+ \item \MontreCode{maincolor} : couleur principale, les dégradés étant calculés automatiquement (\MontreCode{darkgray} par défaut)
+ \item \MontreCode{collight} : couleur la plus claire (\MontreCode{darkgray!25} par défaut)
+ \item \MontreCode{colmedium} : couleur du milieu (\MontreCode{darkgray!50} par défaut)
+ \item \MontreCode{coldark} : couleur la plus foncée (\MontreCode{darkgray} par défaut)
+ \item \MontreCode{logo} : logo éventuel, placé tout à droite
+ \item \MontreCode{type} : type éventuel du document, qui est dans le bloc gauche
+ \item \MontreCode{dispblock} : booléen pour afficher le bloc de gauche (actif par défaut)
+ \item \MontreCode{num} : booléen pour afficher le numéro (actif par défaut)
+ \item \MontreCode{customtype} : texte personnalisé éventuel du bloc gauche
+\end{itemize}
+
+\begin{DemoCode}{}
+\tkzBannerTri
+ [maincolor=red,type=EXERCICES,blockwidth=auto,logo=\faAddressBook]
+ {7}{Mon document}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\tkzBannerTri
+ [maincolor=red,type=EXERCICES,blockwidth=5em,logo=\faAddressBook]
+ {7}{Mon document}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\tkzBannerTri[%
+ maincolor=red,type=EXERCICES,blockwidth=auto,logo=\faAddressBook,swap]
+ {07}{Mon document}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\tkzBannerTri
+ [dispblock=false,maincolor=teal,logo=\faSchool]
+ {}{Mon document}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\tkzBannerTri
+ [maincolor=olive,customtype=TP,blockwidth=4em,logo=\faAddressBook,height=4em]
+ {7}{Mon document}
+\end{DemoCode}
+
+Il est de ce fait \textit{normalement} possible (à vérifier quand même\ldots) de modifier le comportement de la commande \MontreCode{\textbackslash part}, dans l'optique de l'utilisation avec une table des matières notamment.
+
+\begin{DemoCode}{}
+%redéfinition de \part avec gestion de la version étoilée
+\RenewDocumentCommand\part{ s m D<>{} }{%
+ \addtocounter{part}{1}%
+ \IfBooleanTF{#1}%
+ {%
+ \tkzBannerTri[#3,num=false]{\thepart}{#2}%
+ }%
+ {%
+ \tkzBannerTri[#3]{\thepart}{#2}%
+ %\addcontentsline{toc}{part}{#2}%éventuellement
+ }%
+}
+%modification de la numérotation, avec forçage du 0
+\renewcommand\thepart{\ifnum\value{part}<10\relax0\fi\arabic{part}}
+
+\part{Éléments de logique}<type=TP,logo=\faAirbnb>
+\end{DemoCode}
+
\pagebreak
\section{Patchs divers}
@@ -1395,4 +1486,24 @@ L'exemple suivant illustre les différentes commandes proposées dans ce package
\end{tikzpicture}
\end{DemoCode}
+\subsection{Insertion d'images avec remplissage de l'espace vertical}
+
+L'idée est de proposer une commande pour adapter la hauteur d'une image à la hauteur restante en base de page.
+
+Cela repose en fait simplement sur l'utilisation de \MontreCode{[height=\textbackslash dimexpr\textbackslash pagegoal-\textbackslash pagetotal\textbackslash relax]}.
+
+\begin{DemoCode}{listing only}
+\InsererImage<vRemplir=true/false,vOffset=...,vCentrer=...>[clés includegraphics]<image>
+\end{DemoCode}
+
+La clé \MontreCode{vOffset} permet de spécifier une longueur à retirer au calcul automatique (par défaut elle est fixée à \MontreCode{0pt})..
+
+La clé \MontreCode{vCentrer} (parmi \MontreCode{m/h/b/n} permet de spécifier un type de centrage vertical, si besoin, parmi \MontreCode{milieu/haut/bas/non} (\MontreCode{n} par défaut).
+
+\begin{DemoCode}{listing only}
+\InsererImage<vRemplir,vOffset=5mm,vCentrer=m>{example-image}
+\end{DemoCode}
+
+\InsererImage<vRemplir,vOffset=5mm,vCentrer=m>{example-image}
+
\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/customenvs/customenvs.sty b/Master/texmf-dist/tex/latex/customenvs/customenvs.sty
index af81d0b88dd..535baa0f186 100644
--- a/Master/texmf-dist/tex/latex/customenvs/customenvs.sty
+++ b/Master/texmf-dist/tex/latex/customenvs/customenvs.sty
@@ -3,9 +3,10 @@
% source pencil...: CC-BY-SA 4.0 https://tex.stackexchange.com/questions/504092/replicating-a-fancy-bordered-text-style-in-latex/504145#504145
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{customenvs}[2024/07/13 0.1.8 Custom classic environments]
+\ProvidesPackage{customenvs}[2024/08/20 0.1.9 Custom classic environments]
%====HISTORIQUE
+% v 0.1.9 tkzBanner + tkzBannerTri + includegraphicsfill
% v 0.1.8 Nutriscore
% v 0.1.7 Style perso pour les vignettes
% v 0.1.6 DisplaySkip patch + Patchs pas-tableur
@@ -2107,4 +2108,264 @@
\end{tikzpicture}%
}
+%====vincludegraphics [fr]
+\newlength{\tmp@includegraphics@vfill@offset}
+
+\defKV[vfillincludegphcs]{vOffset=\setlength\tmp@includegraphics@vfill@offset{#1},vCentrer=\def\tmpincludegpvcenter{#1}}
+\setKVdefault[vfillincludegphcs]{vRemplir=false,vOffset=0pt,vCentrer=n}
+
+\NewDocumentCommand\InsererImage{ D<>{} O{} m }{%
+ \restoreKV[vfillincludegphcs]%
+ \setKV[vfillincludegphcs]{#1}%
+ \ifboolKV[vfillincludegphcs]{vRemplir}%
+ {%
+ \IfStrEqCase{\tmpincludegpvcenter}{%
+ {m}{\vfill\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}\vfill}%
+ {h}{\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}\vfill}%
+ {b}{\vfill\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}}%
+ {n}{\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}}%
+ }[{\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}}]%
+ }%
+ {%
+ \includegraphics[#2]{#3}%
+ }%
+}
+
+%===tkzBanner mixte
+\defKV[tkzBannerKeys]{%
+ maincolor=\def\tkzBannermaincol{#1}
+}
+
+\setKVdefault[tkzBannerKeys]{%
+ height=2.1cm,%
+ width=\linewidth,%
+ collight=teal!25,%
+ colmedium=teal!75,%
+ coldark=teal,%
+ coltxt=white,%
+ fonttxt=\sffamily\bfseries,%
+ swap=false,%
+ maincolor={},%
+ num=true
+}
+
+\NewDocumentCommand\tkzBanner{ O{} m m }{%
+ \noindent%
+ \restoreKV[tkzBannerKeys]%
+ \setKV[tkzBannerKeys]{#1}%
+ \pgfmathsetmacro{\tkzBannerscale}{\useKV[tkzBannerKeys]{width}/\linewidth}%
+ \begin{tikzpicture}
+ \IfEq{\tkzBannermaincol}{}%
+ {%
+ \tikzset{tkzbannerdark/.style={\useKV[tkzBannerKeys]{coldark}}}
+ \tikzset{tkzbannermedium/.style={\useKV[tkzBannerKeys]{colmedium}}}
+ \tikzset{tkzbannerlight/.style={\useKV[tkzBannerKeys]{collight}}}
+ }%
+ {%
+ \tikzset{tkzbannerdark/.style={\tkzBannermaincol}}
+ \tikzset{tkzbannermedium/.style={\tkzBannermaincol!75}}
+ \tikzset{tkzbannerlight/.style={\tkzBannermaincol!25}}
+ }%
+ %coordinates
+ \coordinate (tkzBanner-NW) at (0,{\useKV[tkzBannerKeys]{height}}) ;
+ \coordinate (tkzBanner-SW) at (0,0) ;
+ \coordinate (tkzBanner-NE) at ({\useKV[tkzBannerKeys]{width}},{\useKV[tkzBannerKeys]{height}}) ;
+ \coordinate (tkzBanner-SE) at ({\useKV[tkzBannerKeys]{width}},0) ;%
+ %swap or note
+ \ifboolKV[tkzBannerKeys]{swap}%
+ {%
+ \coordinate (tkzBanner-A) at ($(tkzBanner-SE)!0.57!(tkzBanner-SW)$) ;
+ \coordinate (tkzBanner-B) at ($(tkzBanner-NE)!0.91!(tkzBanner-NW)$) ;
+ \coordinate (tkzBanner-C) at ($(tkzBanner-NE)!0.92!(tkzBanner-NW)$) ;
+ \coordinate (tkzBanner-D) at ($(tkzBanner-SE)!0.63!(tkzBanner-SW)$) ;
+ }%
+ {%
+ \coordinate (tkzBanner-A) at ($(tkzBanner-SW)!0.57!(tkzBanner-SE)$) ;
+ \coordinate (tkzBanner-B) at ($(tkzBanner-NW)!0.91!(tkzBanner-NE)$) ;
+ \coordinate (tkzBanner-C) at ($(tkzBanner-NW)!0.92!(tkzBanner-NE)$) ;
+ \coordinate (tkzBanner-D) at ($(tkzBanner-SW)!0.63!(tkzBanner-SE)$) ;
+ }%
+ %drawing
+ \fill[tkzbannerdark] (0,0) rectangle ({\useKV[tkzBannerKeys]{width}},{\useKV[tkzBannerKeys]{height}});
+ \ifboolKV[tkzBannerKeys]{swap}%
+ {%
+ \fill[tkzbannerlight] (tkzBanner-A) to[bend left=8] (tkzBanner-B) -- (tkzBanner-C) to[bend right=7] (tkzBanner-D) -- cycle ;
+ \fill[tkzbannermedium] (tkzBanner-C) to[bend right=7] (tkzBanner-D) -- (tkzBanner-SW) |- cycle ;
+ }%
+ {%
+ \fill[tkzbannerlight] (tkzBanner-A) to[bend right=8] (tkzBanner-B) -- (tkzBanner-C) to[bend left=7] (tkzBanner-D) -- cycle ;
+ \fill[tkzbannermedium] (tkzBanner-C) to[bend left=7] (tkzBanner-D) -- (tkzBanner-SE) |- cycle ;
+ }%
+ %nodes
+ \ifboolKV[tkzBannerKeys]{swap}%
+ {%
+ \node[inner sep=2pt,text={\useKV[tkzBannerKeys]{coltxt}},below left,font={\useKV[tkzBannerKeys]{fonttxt}},scale={2*\tkzBannerscale}] at (tkzBanner-NE) {\vphantom{qÉ}#2};
+ \ifboolKV[tkzBannerKeys]{num}%
+ {%
+ \node[inner sep=2pt,text={\useKV[tkzBannerKeys]{coltxt}},above right,font={\useKV[tkzBannerKeys]{fonttxt}},scale={1.25*\tkzBannerscale}] at (tkzBanner-SW) {\vphantom{qÉ}#3};
+ }%
+ {}%
+ }%
+ {%
+ \ifboolKV[tkzBannerKeys]{num}%
+ {%
+ \node[inner sep=2pt,text={\useKV[tkzBannerKeys]{coltxt}},above left,font={\useKV[tkzBannerKeys]{fonttxt}},scale={1.25*\tkzBannerscale}] at (tkzBanner-SE) {\vphantom{qÉ}#3};
+ }%
+ {}%
+ \node[inner sep=2pt,text={\useKV[tkzBannerKeys]{coltxt}},below right,font={\useKV[tkzBannerKeys]{fonttxt}},scale={2*\tkzBannerscale}] at (tkzBanner-NW) {\vphantom{qÉ}#2};
+ }%
+ \end{tikzpicture}%
+}
+
+%====titre stylisé [fr], à voir avec part ??
+\newlength{\tmp@tkzbanner@autowidthtype}
+\setlength\tmp@tkzbanner@autowidthtype{2.5em}
+\newlength{\tmp@tkzbanner@autowidthnum}
+\setlength\tmp@tkzbanner@autowidthnum{2em}
+\newlength{\tmp@tkzbanner@marginoffsetbanner}
+\setlength\tmp@tkzbanner@marginoffsetbanner{2pt}
+\newlength{\tmp@tkzbanner@autowidth}
+\setlength\tmp@tkzbanner@autowidth{2.5em}
+
+\defKV[tkzBannerpartKeys]{%
+ maincolor=\def\tkzBannermaintricol{#1},%
+ logo=\def\tkzBannermaintrilogo{#1},%
+ type=\def\tkzBannermaintritype{#1},%
+ blockwidth=\def\tkzBannermaintriblockwidth{#1},%
+ customtype=\def\tkzBannermaintritypelibre{#1}
+}
+
+\setKVdefault[tkzBannerpartKeys]{%
+ height=2.5em,%
+ width=\linewidth,%
+ blockwidth=2.75em,%
+ collight=darkgray!25,%
+ colmedium=darkgray!50,%
+ coldark=darkgray,%
+ coltxt=white,%
+ fonttxt=\sffamily\bfseries,%
+ swap=false,%
+ maincolor={},%
+ logo={},%
+ type={},%
+ num=true,
+ dispblock=true,%
+ customtype={}
+}
+
+\NewDocumentCommand\tkzBannerTri{ O{} m m }{%
+ %#1 := clés
+ %#2 := numéro
+ %#3 := titre
+ \noindent%
+ \restoreKV[tkzBannerpartKeys]%
+ \setKV[tkzBannerpartKeys]{#1}%
+ \pgfmathsetmacro{\tkzBannertriscale}{0.75*\useKV[tkzBannerpartKeys]{height}/1.25cm}%
+ \pgfmathsetmacro{\scaletypedoctribanner}{1.05*0.75*\useKV[tkzBannerpartKeys]{height}/1.25cm}%
+ \pgfmathsetmacro{\scaletypedoctribannernum}{2.5*0.75*\useKV[tkzBannerpartKeys]{height}/1.25cm}%
+ \pgfmathsetmacro{\tkzBannertriangle}{0.10*\useKV[tkzBannerpartKeys]{height}/\useKV[tkzBannerpartKeys]{width}}%
+ \IfEq{\tkzBannermaintriblockwidth}{auto}%
+ {%
+ \settowidth{\tmp@tkzbanner@autowidthtype}{\scalebox{\scaletypedoctribanner}[\scaletypedoctribanner]{\sffamily\bfseries\vphantom{qÉ}\tkzBannermaintritype}}%
+ \addtolength{\tmp@tkzbanner@autowidthtype}{4pt}%
+ \settowidth{\tmp@tkzbanner@autowidthnum}{\scalebox{\scaletypedoctribannernum}[\scaletypedoctribannernum]{\sffamily\bfseries\vphantom{qÉ}00}}%
+ \addtolength{\tmp@tkzbanner@autowidthnum}{4pt}%
+ \pgfmathsetlength{\tmp@tkzbanner@autowidth}{max(\tmp@tkzbanner@autowidthtype,\tmp@tkzbanner@autowidthnum)}%
+ }%
+ {%
+ \setlength\tmp@tkzbanner@autowidth{\tkzBannermaintriblockwidth}%
+ }%
+ \begin{tikzpicture}
+ \IfEq{\tkzBannermaintricol}{}%
+ {%
+ \tikzset{tkzbannertridark/.style={\useKV[tkzBannerpartKeys]{coldark}}}
+ \tikzset{tkzbannertrimedium/.style={\useKV[tkzBannerpartKeys]{colmedium}}}
+ \tikzset{tkzbannertrilight/.style={\useKV[tkzBannerpartKeys]{collight}}}
+ }%
+ {%
+ \tikzset{tkzbannertridark/.style={\tkzBannermaintricol}}
+ \tikzset{tkzbannertrimedium/.style={\tkzBannermaintricol!50}}
+ \tikzset{tkzbannertrilight/.style={\tkzBannermaintricol!25}}
+ }%
+ %coordinates
+ \coordinate (tkzBannerTri-NW) at (0,{\useKV[tkzBannerpartKeys]{height}}) ;
+ \coordinate (tkzBannerTri-SW) at (0,0) ;
+ \coordinate (tkzBannerTri-NE) at ({\useKV[tkzBannerpartKeys]{width}},{\useKV[tkzBannerpartKeys]{height}}) ;
+ \coordinate (tkzBannerTri-SE) at ({\useKV[tkzBannerpartKeys]{width}},0) ;%
+ \coordinate (tkzBannerTri-SWd) at ($(tkzBannerTri-SW)!0.05!(tkzBannerTri-NW)$) ;%
+ \coordinate (tkzBannerTri-SEd) at ($(tkzBannerTri-SE)!0.15!(tkzBannerTri-NE)$) ;%
+ %drawing & shadow
+ \fill[lightgray!75] ([yshift=-1pt]tkzBannerTri-SWd) -- ([yshift=-1pt]tkzBannerTri-SEd) -- (tkzBannerTri-NE) -| cycle ;
+ \ifboolKV[tkzBannerpartKeys]{swap}%
+ {%
+ \fill[white] (tkzBannerTri-SWd) -- (tkzBannerTri-SEd) -- (tkzBannerTri-NE) -| cycle ;
+ \draw[line width=1pt,tkzbannertridark] ([shift={(0.5pt,-0.5pt)}]tkzBannerTri-NW) -| ([shift={(-0.5pt,0)}]tkzBannerTri-SEd) -- (tkzBannerTri-SWd) ;
+ }%
+ {%
+ \fill[tkzbannertrimedium] (tkzBannerTri-SWd) -- (tkzBannerTri-SEd) -- (tkzBannerTri-NE) -| cycle ;
+ }%
+ \ifboolKV[tkzBannerpartKeys]{dispblock}%
+ {%
+ \begin{scope}
+ \clip ($(tkzBannerTri-SW)!0.0375!(tkzBannerTri-NW)$) -- ($(tkzBannerTri-SE)!0.1375!(tkzBannerTri-NE)$) -- (tkzBannerTri-NE) -| cycle ;
+ %light
+ \fill[tkzbannertrilight] (tkzBannerTri-NW) --++ ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner},0) -- ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner+1em},{0.5*\useKV[tkzBannerpartKeys]{height}}) -- ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner},0) -- (tkzBannerTri-SW) -- cycle ;
+ \end{scope}
+ \begin{scope}
+ \clip ($(tkzBannerTri-SW)!0.025!(tkzBannerTri-NW)$) -- ($(tkzBannerTri-SE)!0.125!(tkzBannerTri-NE)$) -- (tkzBannerTri-NE) -| cycle ;
+ %medium
+ \fill[tkzbannertrimedium] (tkzBannerTri-NW) --++ ({\tmp@tkzbanner@autowidth+\tmp@tkzbanner@marginoffsetbanner},0) -- ({\tmp@tkzbanner@autowidth+\tmp@tkzbanner@marginoffsetbanner+1em},{0.5*\useKV[tkzBannerpartKeys]{height}}) -- ({\tmp@tkzbanner@autowidth+\tmp@tkzbanner@marginoffsetbanner},0) -- (tkzBannerTri-SW) -- cycle ;
+ \end{scope}
+ \begin{scope}
+ \clip ($(tkzBannerTri-SW)!0.0125!(tkzBannerTri-NW)$) -- ($(tkzBannerTri-SE)!0.1125!(tkzBannerTri-NE)$) -- (tkzBannerTri-NE) -| cycle ;
+ %dark
+ \fill[tkzbannertridark] (tkzBannerTri-NW) --++ ({\tmp@tkzbanner@autowidth},0) -- ({\tmp@tkzbanner@autowidth+1em},{0.5*\useKV[tkzBannerpartKeys]{height}}) -- ({\tmp@tkzbanner@autowidth},0) -- (tkzBannerTri-SW) -- cycle ;
+ \IfEq{\tkzBannermaintritypelibre}{}%
+ {%
+ \ifboolKV[tkzBannerpartKeys]{num}%
+ {%
+ \IfEq{\tkzBannermaintritype}{}%
+ {%
+ \node[inner sep=2pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp@tkzbanner@autowidth},{0.5*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}#2};
+ }%
+ {%
+ \node[inner sep=2pt,below=1pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={1.05*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp@tkzbanner@autowidth},{\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}\tkzBannermaintritype};
+ \node[inner sep=2pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp@tkzbanner@autowidth},{0.425*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}#2};
+ }%
+ }%
+ {}%
+ }%
+ {%
+ \node[inner sep=2pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp@tkzbanner@autowidth},{0.5*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}\tkzBannermaintritypelibre};
+ }%
+ \end{scope}
+ }%
+ {}%
+ %nodes
+ \begin{scope}
+ \clip (tkzBannerTri-SWd) -- (tkzBannerTri-SEd) -- (tkzBannerTri-NE) -| cycle ;
+ \ifboolKV[tkzBannerpartKeys]{swap}%
+ {%
+ \node[inner sep=2pt,right,text=\tkzBannermaintricol,font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.75*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner+1.25em},{0.5*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}#3};
+ %logo
+ \IfEq{\tkzBannermaintrilogo}{}%
+ {}%
+ {%
+ \node[inner sep=2pt,left,text=\tkzBannermaintricol,font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\useKV[tkzBannerpartKeys]{width}},{0.55*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}\tkzBannermaintrilogo};
+ }%
+ }%
+ {%
+ \node[inner sep=2pt,right,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.75*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner+1.25em},{0.5*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}#3};
+ %logo
+ \IfEq{\tkzBannermaintrilogo}{}%
+ {}%
+ {%
+ \node[inner sep=2pt,left,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\useKV[tkzBannerpartKeys]{width}},{0.55*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}\tkzBannermaintrilogo};
+ }%
+ }%
+ \end{scope}
+ \end{tikzpicture}%
+}
+
+
\endinput \ No newline at end of file