diff options
author | Karl Berry <karl@freefriends.org> | 2024-08-20 19:32:12 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-08-20 19:32:12 +0000 |
commit | fe63c4e3772e6df81e35c9e19ab67001a35dc13e (patch) | |
tree | 1d57ebe4b7978f39f744b95932b00164361dbe0d /Master | |
parent | 91ea755522f6f395f46c132ab3480e4a67301fa0 (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.pdf | bin | 191562 -> 199070 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex | 80 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdf | bin | 1472616 -> 1503490 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex | 121 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/customenvs/customenvs.sty | 263 |
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 Binary files differindex 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 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 Binary files differindex 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 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 |