texlive[72112] Master/texmf-dist: customenvs (26aug24)

commits+karl at tug.org commits+karl at tug.org
Mon Aug 26 22:06:58 CEST 2024


Revision: 72112
          https://tug.org/svn/texlive?view=revision&revision=72112
Author:   karl
Date:     2024-08-26 22:06:58 +0200 (Mon, 26 Aug 2024)
Log Message:
-----------
customenvs (26aug24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.pdf
    trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex
    trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdf
    trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex
    trunk/Master/texmf-dist/doc/latex/customenvs/envtexo_exemples.pdf
    trunk/Master/texmf-dist/doc/latex/customenvs/envtexo_exemples.tex
    trunk/Master/texmf-dist/tex/latex/customenvs/customenvs.sty

Modified: trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex	2024-08-26 20:06:47 UTC (rev 72111)
+++ trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-en.tex	2024-08-26 20:06:58 UTC (rev 72112)
@@ -34,8 +34,8 @@
 \usepackage[margin=1.5cm]{geometry}
 \setlength{\parindent}{0pt}
 
-\def\TPversion{0.1.9}
-\def\TPdate{20/08/2024}
+\def\TPversion{0.2.0}
+\def\TPdate{26/08/2024}
 \usepackage{tcolorbox}
 \sethlcolor{lightgray!25}
 \NewDocumentCommand\MontreCode{ m }{%
@@ -111,6 +111,8 @@
 
 \section{History}
 
+\verb|v0.1.9|~:~~~~Skills with stars (\textsf{fontawesome5} or \TikZ)
+
 \verb|v0.1.9|~:~~~~Title banner
 
 \verb|v0.1.8|~:~~~~Score banner
@@ -633,5 +635,34 @@
 
 It's possible to redefine \MontreCode{\textbackslash part} (for example).
 
+\pagebreak
 
+\section{Various commands}
+
+\subsection{Difficulty levels with stars (fontawesome5)}
+
+\begin{codehigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\DiffLevelStars[max level (3)]{level}
+\end{codehigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\DiffLevelStars{0}\par
+\DiffLevelStars{2.5}\par
+\textcolor{teal}{\LARGE\DiffLevelStars[5]{4}}\par
+\DiffLevelStars[5]{1.5}\par
+\end{demohigh}
+
+\subsection{Difficulty levels with stars (tikz)}
+
+\begin{codehigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzLevelStars[colframe=...,colback=...,offset=...,maxlevel=...,valign=...]{level}
+\end{codehigh}
+
+\begin{demohigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
+\tkzLevelStars{2.5}\par
+{\LARGE We ty inline \tkzLevelStars{2.25} with score 2.25}\par
+{\LARGE We ty inline \tkzLevelStars[valign=false]{1.75} with score 1.75}\par
+\tkzLevelStars[colframe=red,colback=yellow,maxlevel=5]{3}
+\end{demohigh}
+
 \end{document}
\ No newline at end of file

Modified: trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex	2024-08-26 20:06:47 UTC (rev 72111)
+++ trunk/Master/texmf-dist/doc/latex/customenvs/customenvs-doc-fr.tex	2024-08-26 20:06:58 UTC (rev 72112)
@@ -39,8 +39,8 @@
 \usepackage[margin=1.5cm]{geometry}
 \setlength{\parindent}{0pt}
 
-\def\TPversion{0.1.9}
-\def\TPdate{20 août 2024}
+\def\TPversion{0.2.0}
+\def\TPdate{26 août 2024}
 \usepackage{tcolorbox}
 \tcbuselibrary{listingsutf8}
 \newtcblisting{DemoCode}[1]{%
@@ -66,10 +66,10 @@
 		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,\InsererImage,\tkzBannerTri},%
+		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,\NiveauDiffExos,\tkzEtoiles},%
 		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,vRemplir,vOffset,vCentrer,height,width,blockwidth,collight,colmedium,coldar,coltxt,fonttxt,swap,maincolor,logo,type,num,dispblock,customtype},%
+		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,Couleur,AlignV,Offset,NiveauMax},%
 		keywordstyle={\color{orange}}
 	},%
 	#1
@@ -149,6 +149,8 @@
 
 \section{Historique}
 
+\verb|v0.2.0|~:~~~Étoiles pour des niveaux de difficultés (compatible avec \texttt{EnvtExo})
+
 \verb|v0.1.9|~:~~~Bannière de titre + Insertion d'images en remplissage vertical
 
 \verb|v0.1.8|~:~~~Nutriscore
@@ -956,6 +958,8 @@
 \begin{itemize}
 	\item le libellé via la clé \MontreCode{[Libelle]}, qui vaut \MontreCode{Exercice~} par défaut ;
 	\item la couleur via la clé \MontreCode{[Couleur]}, qui vaut \MontreCode{blue!50!black} par défaut ;
+	\item la couleur de la décoration (si textuelle) via la clé \MontreCode{[CouleurDeco]}, qui vaut \MontreCode{blue!50!black} par défaut ;
+	\item la couleur de fond la décoration (si il existe) via la clé \MontreCode{[CouleurFondDeco]}, qui vaut 50\,\% de \MontreCode{blue!50!black} par défaut ;
 	\item la police via la clé \MontreCode{[Police]}, qui vaut \MontreCode{\textbackslash bfseries\textbackslash LARGE\textbackslash sffamily} par défaut ;
 	\item l'épaisseur du trait (éventuel) via la clé \MontreCode{[EpTrait]}, qui vaut \MontreCode{1.1pt} par défaut.
 \end{itemize}
@@ -1003,6 +1007,7 @@
 		\item des points, sous la forme \texttt{(xx points)} ;
 		\item une image, via \texttt{graphicx}, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
 		\item une icône, via \texttt{fontawesome5}, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
+		\item des étoiles, via \texttt{fontawesome5} ou \TikZ, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
 		\item un petit chronomètre, via \texttt{pictochrono}, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
 		\item une ceinture colorée, via \texttt{coloredbelts}, dont la hauteur est adaptée à la hauteur de la ligne en cours ;
 	\end{itemize}
@@ -1009,8 +1014,6 @@
 	\item le compteur (nommé \MontreCode{numeroexo}) peut être désactivé et \textit{adpaté} via les commandes classiques de compteurs.
 \end{itemize}
 
-\pagebreak
-
 Les \MontreCode{clés} disponibles, à donner entre \MontreCode{[...]}, sont :
 
 \begin{itemize}
@@ -1026,6 +1029,8 @@
 		\item \MontreCode{Ceinture/...} := afficher la ceinture couleur \MontreCode{...} à la fin de la ligne ;
 		\item \MontreCode{Chrono/...} := afficher le chrono de durée \MontreCode{...} à la fin de la ligne ;
 		\item \MontreCode{Points/...} := afficher les points \MontreCode{(... points)} à la fin de la ligne ;
+		\item \MontreCode{faEtoiles/...} := afficher des étoiles de difficultés à la fin de la ligne ;
+		\item \MontreCode{tkzEtoiles/...} := afficher des étoiles de difficultés à la fin de la ligne ;
 	\end{itemize}
 	\item \MontreCode{Trait} : choix du trait parmi :
 	\begin{itemize}
@@ -1036,6 +1041,34 @@
 	\end{itemize}
 \end{itemize}
 
+La commande d'affichage des étoiles de difficultés est indépendante de l'environnement \MontreCode{EnvtExo}, la clé \MontreCode{Decoration=xxxEtoiles/niv} ou \MontreCode{Decoration=xxxEtoiles/niv§max} permet de l'y intégrer.
+
+\begin{DemoCode}{listing only}
+%commande d'étoiles (max=3 par défaut) avec fontawesome5
+\NiveauDiffExos[max]{nb}
+
+%commande d'étoiles (max=3 par défaut) avec tikz
+\tkzEtoiles[Couleur=...,CouleurFond=...,Offset=...,NiveauMax=...,AlignV=...]{nb}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%des demies étoiles sont possibles
+\NiveauDiffExos{0}\par
+\NiveauDiffExos{2.5}\par
+\textcolor{teal}{\LARGE\NiveauDiffExos[5]{4}}\par
+\NiveauDiffExos[5]{1.5}\par
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%des portions d'étoiles sont possibles
+%Offset=... permet de gérer l'espacement horizontal
+%AlignV est un booléen pour décaler verticalement les étoiles (inline)
+\tkzEtoiles{2.5}\par
+{\LARGE On essaye en ligne \tkzEtoiles{2.5} avec une note de 2.5}\par
+{\LARGE On essaye en ligne \tkzEtoiles[AlignV=false]{2.5} avec une note de 2.5}\par
+\tkzEtoiles[Couleur=red,CouleurFond=yellow,NiveauMax=5]{3.5}
+\end{DemoCode}
+
 \subsection{Exemples}
 
 Les exemples suivants ont été obtenus via un document externe (fourni avec le package), du fait du chargement de packages spécifiques.
@@ -1063,58 +1096,40 @@
 \pagebreak
 
 \begin{DemoCode}{listing only}
-\begin{EnvtExo}%exo1
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo1
 
-\begin{EnvtExo}[Trait=pointilles]%exo2
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Trait=pointilles]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo2
 
-\begin{EnvtExo}[Trait=dashilles]%exo3
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Trait=dashilles]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo3
 
-\begin{EnvtExo}[Decoration=Icone/\faPython]%exo4
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=Icone/\faPython]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo4
 
-\begin{EnvtExo}[Decoration=Ceinture/rouge]%exo5
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=Ceinture/rouge]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo5
 
-\begin{EnvtExo}[Decoration=Chrono/20]%exo6
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=Chrono/20]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo6
 
-\begin{EnvtExo}[Decoration=Image/goku_ssj4]%exo7
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=Image/goku_ssj4]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo7
 
-\begin{EnvtExo}[Decoration=Image/sseiya_shura]%exo8
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=faEtoiles/1.5§4]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo8
 
-\begin{EnvtExo}[Decoration=Points/7]%exo9
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=tkzEtoiles/3.5§5]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo8
 
-\begin{EnvtExo}[Type=Perso/{Titre perso }]%exo10
-\ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\begin{EnvtExo}[Decoration=Points/7]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo9
 
-\StyleEnvtExo[Couleur=red,Police=\bfseries\ttfamily,EpTrait=2pt,Libelle={Exercice n°}]
+\begin{EnvtExo}[Type=Perso/{Titre perso }]\ipsum<Lang=FR,Type=sent>\end{EnvtExo}%exo10
 
-\begin{EnvtExo}[Decoration=Icone/\faAddressBook]%exo11
+\StyleEnvtExo[Couleur=red,CouleurDeco=teal,Police=\bfseries\ttfamily,EpTrait=2pt, Libelle={Exercice n°}]
+
+\begin{EnvtExo}[Decoration=Icone/\faAddressBook]
 \ipsum<Lang=FR,Type=sent>
-\end{EnvtExo}
+\end{EnvtExo}%exo11
 
-\begin{EnvtExo}[Type=Perso/{Titre perso },Decoration=Chrono/25,Couleur=red,Trait=dashilles]%exo12
+
+\begin{EnvtExo}[Type=Perso/{Titre perso },Decoration=Chrono/25,Trait=dashilles]%exo12
 \ipsum<Lang=FR,Type=sent>
 \end{EnvtExo}
 
 \StyleEnvtExoDefaut
-
 \begin{EnvtExo}%
 	[Type=Perso/{Titre perso~},Decoration=Image/goku_ssj4,Trait=non,Compteur=false]%exo13
 \ipsum<Lang=FR,Type=sent>
@@ -1121,7 +1136,6 @@
 \end{EnvtExo}
 
 \TitreExo[Type=Perso/{Annexe Exercice 3},Compteur=false,Decoration=Image/sseiya_aiolos]%exo14
-
 \ipsum<Lang=FR,Type=sent>
 \end{DemoCode}
 

Modified: trunk/Master/texmf-dist/doc/latex/customenvs/envtexo_exemples.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/customenvs/envtexo_exemples.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/customenvs/envtexo_exemples.tex	2024-08-26 20:06:47 UTC (rev 72111)
+++ trunk/Master/texmf-dist/doc/latex/customenvs/envtexo_exemples.tex	2024-08-26 20:06:58 UTC (rev 72112)
@@ -15,6 +15,8 @@
 \setlength{\parindent}{0pt}
 
 \begin{document}
+	
+\pagestyle{empty}
 
 \begin{EnvtExo}%exo1
 	\ipsum<Lang=FR,Type=sent>
@@ -44,10 +46,14 @@
 	\ipsum<Lang=FR,Type=sent>
 \end{EnvtExo}
 
-\begin{EnvtExo}[Decoration=Image/sseiya_shura]%exo8
+\begin{EnvtExo}[Decoration=faEtoiles/1.5§4]%exo8
 	\ipsum<Lang=FR,Type=sent>
 \end{EnvtExo}
 
+\begin{EnvtExo}[Decoration=tkzEtoiles/3.5§5]%exo8
+	\ipsum<Lang=FR,Type=sent>
+\end{EnvtExo}
+
 \begin{EnvtExo}[Decoration=Points/7]%exo9
 	\ipsum<Lang=FR,Type=sent>
 \end{EnvtExo}
@@ -56,13 +62,13 @@
 	\ipsum<Lang=FR,Type=sent>
 \end{EnvtExo}
 
-\StyleEnvtExo[Couleur=red,Police=\bfseries\ttfamily,EpTrait=2pt,Libelle={Exercice n°}]
+\StyleEnvtExo[Couleur=red,,CouleurDeco=teal,Police=\bfseries\ttfamily,EpTrait=2pt,Libelle={Exercice n°}]
 
 \begin{EnvtExo}[Decoration=Icone/\faAddressBook]%exo11
 	\ipsum<Lang=FR,Type=sent>
 \end{EnvtExo}
 
-\begin{EnvtExo}[Type=Perso/{Titre perso },Decoration=Chrono/25,Couleur=red,Trait=dashilles]%exo12
+\begin{EnvtExo}[Type=Perso/{Titre perso },Decoration=Chrono/25,Trait=dashilles]%exo12
 	\ipsum<Lang=FR,Type=sent>
 \end{EnvtExo}
 

Modified: trunk/Master/texmf-dist/tex/latex/customenvs/customenvs.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/customenvs/customenvs.sty	2024-08-26 20:06:47 UTC (rev 72111)
+++ trunk/Master/texmf-dist/tex/latex/customenvs/customenvs.sty	2024-08-26 20:06:58 UTC (rev 72112)
@@ -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/08/20 0.1.9 Custom classic environments]
+\ProvidesPackage{customenvs}[2024/08/26 0.2.0 Custom classic environments]
 
 %====HISTORIQUE
+% v 0.2.0	Ajout d'étoiles pour les difficultés d'exercices (2 versions)
 % v 0.1.9	tkzBanner + tkzBannerTri + includegraphicsfill
 % v 0.1.8	Nutriscore
 % v 0.1.7	Style perso pour les vignettes
@@ -678,7 +679,153 @@
 }
 
 %====EXERCICE PERSO
+\newlength{\largstarsempty}
+\newlength{\largstarsmid}
+\newlength{\largstarfull}
+\newlength{\largmaxstars}
 
+%commande annexe tkzlevelstars [en] + [fr]
+\usetikzlibrary{shapes.geometric}
+
+\newlength{\tmphauteuretoiles}
+\newlength{\tmpprofondeuretoiles}
+\newlength{\tmpoffsetetoiles}\setlength{\tmpoffsetetoiles}{0.25pt}
+
+\defKV[levelstars]{%
+	colframe=\def\tkzLevelStarsColor{#1},
+	colback=\def\tkzLevelStarsColorBg{#1},
+	offset=\setlength{\tmpoffsetetoiles}{#1},
+	maxlevel=\def\tkzLevelStarsMaxLevel{#1}
+}
+
+\setKVdefault[levelstars]{%
+	colframe=black,
+	colback=gray,
+	offset={0.025em},
+	maxlevel=3,
+	valign=true
+}
+
+\NewDocumentCommand{\tkzLevelStars}{ O{} m }{%
+	%lectures des clés
+	\restoreKV[levelstars]%
+	\setKV[levelstars]{#1}%
+	%dimensions
+	\settototalheight{\tmphauteuretoiles}{\hbox{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}}%
+	\ifboolKV[levelstars]{valign}%
+		{%
+			\settodepth{\tmpprofondeuretoiles}{\hbox{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}}%
+			\begin{tikzpicture}[baseline={-\tmpprofondeuretoiles},fill=\tkzLevelStarsColorBg,draw=\tkzLevelStarsColor,rounded corners={0.05\tmphauteuretoiles},line width={0.04\tmphauteuretoiles}]
+		}%
+		{%
+			\begin{tikzpicture}[fill=\tkzLevelStarsColorBg,draw=\tkzLevelStarsColor,rounded corners={0.05\tmphauteuretoiles},line width={0.04\tmphauteuretoiles}]
+		}%
+		\foreach \X in {1,...,\tkzLevelStarsMaxLevel}{%
+			\xdef\tmpxfill{\xintfloateval{min(1,max(1+#2-\X,0))}}%
+			%\pgfmathsetmacro{\tmpxfill}{min(1,max(1+#2-\X,0))}
+			\path ({\X*(\tmphauteuretoiles+\tmpoffsetetoiles)},0) node[star,draw,star point height={0.25\tmphauteuretoiles},minimum size={\tmphauteuretoiles},inner sep=0pt,path picture={\fill (path picture bounding box.south west) rectangle  ([xshift=\tmpxfill*0.9515*\tmphauteuretoiles]path picture bounding box.north west);}]{};
+		}
+	\end{tikzpicture}%
+}
+
+\defKV[tkznivetoiles]{%
+	Couleur=\def\tkzLevelStarsColor{#1},
+	CouleurFond=\def\tkzLevelStarsColorBg{#1},
+	Offset=\setlength{\tmpoffsetetoiles}{#1},
+	NiveauMax=\def\tkzLevelStarsMaxLevel{#1}
+}
+
+\setKVdefault[tkznivetoiles]{%
+	Couleur=black,
+	CouleurFond=gray,
+	Offset={0.025em},
+	NiveauMax=3,
+	AlignV=true
+}
+
+\NewDocumentCommand{\tkzEtoiles}{ O{} m }{%
+	%lectures des clés
+	\restoreKV[tkznivetoiles]%
+	\setKV[tkznivetoiles]{#1}%
+	%dimensions
+	\settototalheight{\tmphauteuretoiles}{\hbox{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}}%
+	\ifboolKV[tkznivetoiles]{AlignV}%
+		{%
+			\settodepth{\tmpprofondeuretoiles}{\hbox{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}}%
+			\begin{tikzpicture}[baseline={-\tmpprofondeuretoiles},fill=\tkzLevelStarsColorBg,draw=\tkzLevelStarsColor,rounded corners={0.05\tmphauteuretoiles},line width={0.04\tmphauteuretoiles}]
+		}%
+		{%
+			\begin{tikzpicture}[fill=\tkzLevelStarsColorBg,draw=\tkzLevelStarsColor,rounded corners={0.05\tmphauteuretoiles},line width={0.04\tmphauteuretoiles}]
+		}%
+		\foreach \X in {1,...,\tkzLevelStarsMaxLevel}{%
+			\xdef\tmpxfill{\xintfloateval{min(1,max(1+#2-\X,0))}}%
+			%\pgfmathsetmacro{\tmpxfill}{min(1,max(1+#2-\X,0))}
+			\path ({\X*(\tmphauteuretoiles+\tmpoffsetetoiles)},0) node[star,draw,star point height={0.25\tmphauteuretoiles},minimum size={\tmphauteuretoiles},inner sep=0pt,path picture={\fill (path picture bounding box.south west) rectangle  ([xshift=\tmpxfill*0.9515*\tmphauteuretoiles]path picture bounding box.north west);}]{};
+		}
+	\end{tikzpicture}%
+}
+
+%commande annexe ;-)
+\NewDocumentCommand\NiveauDiffExos{ O{3} m }{%avec des demis ??
+	%les tailles de boîtes
+	\settowidth{\largstarsempty}{{\faStar[regular]}}%
+	\settowidth{\largstarsmid}{{\faIcon{star-half-alt}}}%
+	\settowidth{\largstarfull}{{\faStar}}%
+	\pgfmathsetlength{\largmaxstars}{max(\largstarsempty,\largstarsmid,\largstarfull)}%
+	%les calculs intermédiaires
+	\xintifboolexpr{#1 < 0}{\xdef\tmpstarsmax{3}}{\xdef\tmpstarsmax{#1}}%on met à 3 si pas valide
+	\xintifboolexpr{#2 >= 0 'and' #2 <= \tmpstarsmax 'and' isint(2*#2) == 1}{\xdef\tmpstars{#2}}{\xdef\tmpstars{0}}%on met à zéro si pas valide
+	%
+	\xintifboolexpr{isint(\tmpstars) == 1}%
+	{%
+		\xdef\tmpstarsexosfull{\tmpstars}%
+		\xdef\tmpstarsexosmid{0}%
+		\xdef\tmpstarsexosempty{\xinteval{\tmpstarsmax-\tmpstars}}%
+	}%
+	{%
+		\xdef\tmpstarsexosmid{1}%
+		\xdef\tmpstarsexosfull{\xinteval{(\tmpstars-0.5)}}%
+		\xdef\tmpstarsexosempty{\xinteval{\tmpstarsmax-1-\tmpstarsexosfull}}%
+	}%
+	%affichage des full
+	\xintifboolexpr{\tmpstarsexosfull > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosfull}}\do{\makebox[\largmaxstars][c]{\faStar}}}{}%
+	%affichage des mid
+	\xintifboolexpr{\tmpstarsexosmid > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosmid}}\do{\makebox[\largmaxstars][c]{\faIcon{star-half-alt}}}}{}%
+	%affichage des vides
+	\xintifboolexpr{\tmpstarsexosempty > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosempty}}\do{\makebox[\largmaxstars][c]{\faStar[regular]}}}{}%
+}
+
+%commande annexe [en] ;-)
+\NewDocumentCommand\DiffLevelStars{ O{3} m }{%avec des demis ??
+	%les tailles de boîtes
+	\settowidth{\largstarsempty}{{\faStar[regular]}}%
+	\settowidth{\largstarsmid}{{\faIcon{star-half-alt}}}%
+	\settowidth{\largstarfull}{{\faStar}}%
+	\pgfmathsetlength{\largmaxstars}{max(\largstarsempty,\largstarsmid,\largstarfull)}%
+	%les calculs intermédiaires
+	\xintifboolexpr{#1 < 0}{\xdef\tmpstarsmax{3}}{\xdef\tmpstarsmax{#1}}%on met à 3 si pas valide
+	\xintifboolexpr{#2 >= 0 'and' #2 <= \tmpstarsmax 'and' isint(2*#2) == 1}{\xdef\tmpstars{#2}}{\xdef\tmpstars{0}}%on met à zéro si pas valide
+	%
+	\xintifboolexpr{isint(\tmpstars) == 1}%
+	{%
+		\xdef\tmpstarsexosfull{\tmpstars}%
+		\xdef\tmpstarsexosmid{0}%
+		\xdef\tmpstarsexosempty{\xinteval{\tmpstarsmax-\tmpstars}}%
+	}%
+	{%
+		\xdef\tmpstarsexosmid{1}%
+		\xdef\tmpstarsexosfull{\xinteval{(\tmpstars-0.5)}}%
+		\xdef\tmpstarsexosempty{\xinteval{\tmpstarsmax-1-\tmpstarsexosfull}}%
+	}%
+	%affichage des full
+	\xintifboolexpr{\tmpstarsexosfull > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosfull}}\do{\makebox[\largmaxstars][c]{\faStar}}}{}%
+	%affichage des mid
+	\xintifboolexpr{\tmpstarsexosmid > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosmid}}\do{\makebox[\largmaxstars][c]{\faIcon{star-half-alt}}}}{}%
+	%affichage des vides
+	\xintifboolexpr{\tmpstarsexosempty > 0}{\xintFor* ##1 in {\xintSeq{1}{\tmpstarsexosempty}}\do{\makebox[\largmaxstars][c]{\faStar[regular]}}}{}%
+}
+
+%code ppal
 \newcounter{numeroexo}
 \setcounter{numeroexo}{0}
 \newlength{\eptraitexo}
@@ -689,6 +836,8 @@
 \newlength{\tmp at image@profondeur}
 
 \colorlet{macouleurexo}{blue!50!black}
+\colorlet{macouleurexodeco}{blue!50!black}
+\colorlet{macouleurexodecofond}{blue!50!black}
 
 \newcommand\tmpstyleexo{\bfseries\LARGE\sffamily}%
 \newcommand\tmplabelexo{Exercice~}%
@@ -696,15 +845,21 @@
 \defKV[globalstyleexo]{%
 	Libelle=\renewcommand\tmplabelexo{#1},%
 	Couleur=\colorlet{macouleurexo}{#1},%
+	CouleurDeco=\colorlet{macouleurexodeco}{#1},%
+	CouleurFondDeco=\colorlet{macouleurexodecofond}{#1},%
 	Police=\renewcommand\tmpstyleexo{#1},%
-	EpTrait=\setlength{\eptraitexo}{#1}
+	EpTrait=\setlength{\eptraitexo}{#1},%
+	EchelleEtoiles=\def\tmpscalestarsexos{#1}
 }
 
 \setKVdefault[globalstyleexo]{%
 	Libelle={Exercice~},%
 	Couleur={blue!50!black},%
+	CouleurDeco={blue!50!black},%
+	CouleurFondDeco={macouleurexodeco!50},%
 	Police={\bfseries\LARGE\sffamily},%
-	EpTrait={1.1pt}
+	EpTrait={1.1pt},%
+	EchelleEtoiles=0.85
 }
 
 \NewDocumentCommand\StyleEnvtExo{ O{} }{%
@@ -719,7 +874,6 @@
 	Type=\def\EnvtExoType{#1},%
 	ComplementTitre=\def\EnvtExoCpltTitre{#1},%
 	CodeDebut=\def\EnvtExoCodeAvant{#1},%
-	%Couleur=\def\EnvtExoCouleur{#1},%
 	EchelleImage=\def\EnvtExoScaleImg{#1},%
 	Decoration=\def\EnvtExoDeco{#1},%
 	Trait=\def\EnvtExoTrait{#1}
@@ -728,7 +882,6 @@
 	Type=Classique,%
 	ComplementTitre={},%
 	CodeDebut={},%
-	%Couleur=macouleurexo,%
 	EchelleImage=1.15,%
 	Compteur=true,%
 	Decoration={},%
@@ -753,12 +906,13 @@
 				{pointilles}{\,\dotfill}%
 				{dashilles}{\,\hdashrule{\fill}{\eptraitexo}{\eptraitexospace}}%
 				{non}{\hfill}%
+				{aucun}{~}%
 			}%
 			%décoration éventuelle
 			\IfSubStr{\EnvtExoDeco}{Icone}%
 				{%
 					\StrBehind{\EnvtExoDeco}{/}[\EnvtExoIcon]%
-					\,\scalebox{0.85}[0.85]{\EnvtExoIcon}%
+					\,\textcolor{macouleurexodeco}{\scalebox{0.85}[0.85]{\EnvtExoIcon}}%
 				}{}%
 			\IfSubStr{\EnvtExoDeco}{Ceinture}%
 				{%
@@ -768,13 +922,13 @@
 			\IfSubStr{\EnvtExoDeco}{Chrono}%
 				{%
 					\StrBehind{\EnvtExoDeco}{/}[\EnvtExoChrono]%
-					\,\pictochrono[ColTime=macouleurexo!50]{\EnvtExoChrono}%
+					\,\pictochrono[ColTime=macouleurexodeco!50]{\EnvtExoChrono}%
 				}{}%
 			\IfSubStr{\EnvtExoDeco}{Points}%
 				{%
 					\StrBehind{\EnvtExoDeco}{/}[\EnvtExoPts]%
 					\IfStrEq{\EnvtExoPts}{1}{\def\pts{point}}{\def\pts{points}}%
-					\,(\EnvtExoPts\ \pts)%
+					\,\textcolor{macouleurexodeco}{(\EnvtExoPts\ \pts)}%
 				}{}%
 			\IfSubStr{\EnvtExoDeco}{Image}%
 				{%
@@ -782,6 +936,30 @@
 					\settototalheight{\tmp at image@hauteur at totale}{\hbox{\tmpstyleexo qB}}%
 					\,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp at image@hauteur at totale]{\EnvtExoImg}}}$%
 				}{}%
+			\IfSubStr{\EnvtExoDeco}{faEtoiles}%
+				{%
+					\StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+					\IfSubStr{\EnvtExoStars}{§}%
+						{%
+							\StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+							\textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos[\EnvtExoStarTot]{\EnvtExoStarNb}}}%
+						}%
+						{%
+							\textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos{\EnvtExoStars}}}%
+						}%
+				}{}%
+			\IfSubStr{\EnvtExoDeco}{tkzEtoiles}%
+				{%
+					\StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+					\IfSubStr{\EnvtExoStars}{§}%
+						{%
+							\StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+							\tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+						}%
+						{%
+							\tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoStars}%
+						}%
+				}{}%
 		}{}%
 	\IfSubStr{\EnvtExoType}{Perso}%OK perso____déco
 		{%
@@ -799,7 +977,7 @@
 			\IfSubStr{\EnvtExoDeco}{Icone}%
 				{%
 					\StrBehind{\EnvtExoDeco}{/}[\EnvtExoIcon]%
-					\,\scalebox{0.85}[0.85]{\EnvtExoIcon}%
+					\,\textcolor{macouleurexodeco}{\scalebox{0.85}[0.85]{\EnvtExoIcon}}%
 				}{}%
 			\IfSubStr{\EnvtExoDeco}{Ceinture}%
 				{%
@@ -809,13 +987,13 @@
 			\IfSubStr{\EnvtExoDeco}{Chrono}%
 				{%
 					\StrBehind{\EnvtExoDeco}{/}[\EnvtExoChrono]%
-					\,\pictochrono[ColTime=macouleurexo!50]{\EnvtExoChrono}%
+					\,\pictochrono[ColTime=macouleurexodeco!50]{\EnvtExoChrono}%
 				}{}%
 			\IfSubStr{\EnvtExoDeco}{Points}%
 				{%
 					\StrBehind{\EnvtExoDeco}{/}[\EnvtExoPts]%
 					\IfStrEq{\EnvtExoPts}{1}{\def\pts{point}}{\def\pts{points}}%
-					\,(\EnvtExoPts\ \pts)%
+					\,\textcolor{macouleurexodeco}{(\EnvtExoPts\ \pts)}%
 				}{}%
 			\IfSubStr{\EnvtExoDeco}{Image}%
 				{%
@@ -823,6 +1001,30 @@
 					\settototalheight{\tmp at image@hauteur at totale}{\hbox{\tmpstyleexo qB}}%
 					\,$\vcenter{\hbox{\includegraphics[height=\EnvtExoScaleImg\tmp at image@hauteur at totale]{\EnvtExoImg}}}$%
 				}{}%
+			\IfSubStr{\EnvtExoDeco}{faEtoiles}%
+				{%
+					\StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+					\IfSuStr{\EnvtExoStars}{§}%
+						{%
+							\StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+							\textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos[\EnvtExoStarTot]{\EnvtExoStarNb}}}%
+						}%
+						{%
+							\textcolor{macouleurexodeco}{\scalebox{\tmpscalestarsexos}[\tmpscalestarsexos]{\NiveauDiffExos{\EnvtExoStars}}}%
+						}%
+				}{}%
+			\IfSubStr{\EnvtExoDeco}{tkzEtoiles}%
+				{%
+					\StrBehind{\EnvtExoDeco}{/}[\EnvtExoStars]%
+					\IfSubStr{\EnvtExoStars}{§}%
+						{%
+							\StrCut{\EnvtExoStars}{§}{\EnvtExoStarNb}{\EnvtExoStarTot}%
+							\tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond,NiveauMax=\EnvtExoStarTot]{\EnvtExoStarNb}%
+						}%
+						{%
+							\tkzEtoiles[Couleur=macouleurexodeco,CouleurFond=macouleurexodecofond]{\EnvtExoStars}%
+						}%
+				}{}%
 		}{}%
 	\endgroup%
 	\def\hrulefill{\leavevmode\leaders\hrule height 0.4pt\hfill\kern\z@}%
@@ -2237,7 +2439,7 @@
 
 \setKVdefault[tkzBannerpartKeys]{%
 	height=2.5em,%
-	width=\linewidth,%
+	width={\linewidth-0.5pt},%
 	blockwidth=2.75em,%
 	collight=darkgray!25,%
 	colmedium=darkgray!50,%
@@ -2260,10 +2462,10 @@
 	\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}}%
+	\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 at tkzbanner@autowidthtype}{\scalebox{\scaletypedoctribanner}[\scaletypedoctribanner]{\sffamily\bfseries\vphantom{qÉ}\tkzBannermaintritype}}%
@@ -2309,17 +2511,17 @@
 				\begin{scope}
 					\clip ($(tkzBannerTri-SW)!0.0375!(tkzBannerTri-NW)$) -- ($(tkzBannerTri-SE)!0.1375!(tkzBannerTri-NE)$) -- (tkzBannerTri-NE) -| cycle ;
 					%light
-					\fill[tkzbannertrilight] (tkzBannerTri-NW) --++ ({\tmp at tkzbanner@autowidth+2*\tmp at tkzbanner@marginoffsetbanner},0) -- ({\tmp at tkzbanner@autowidth+2*\tmp at tkzbanner@marginoffsetbanner+1em},{0.5*\useKV[tkzBannerpartKeys]{height}}) -- ({\tmp at tkzbanner@autowidth+2*\tmp at tkzbanner@marginoffsetbanner},0) -- (tkzBannerTri-SW) -- cycle ;
+					\fill[tkzbannertrilight] (tkzBannerTri-NW) --++ ({\tmp at tkzbanner@autowidth+2*\tmp at tkzbanner@marginoffsetbanner},0) -- ({\tmp at tkzbanner@autowidth+2*\tmp at tkzbanner@marginoffsetbanner+1em},{0.5*(\useKV[tkzBannerpartKeys]{height})}) -- ({\tmp at tkzbanner@autowidth+2*\tmp at 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 at tkzbanner@autowidth+\tmp at tkzbanner@marginoffsetbanner},0) -- ({\tmp at tkzbanner@autowidth+\tmp at tkzbanner@marginoffsetbanner+1em},{0.5*\useKV[tkzBannerpartKeys]{height}}) -- ({\tmp at tkzbanner@autowidth+\tmp at tkzbanner@marginoffsetbanner},0) -- (tkzBannerTri-SW) -- cycle ;
+					\fill[tkzbannertrimedium] (tkzBannerTri-NW) --++ ({\tmp at tkzbanner@autowidth+\tmp at tkzbanner@marginoffsetbanner},0) -- ({\tmp at tkzbanner@autowidth+\tmp at tkzbanner@marginoffsetbanner+1em},{0.5*(\useKV[tkzBannerpartKeys]{height})}) -- ({\tmp at tkzbanner@autowidth+\tmp at 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 at tkzbanner@autowidth},0) -- ({\tmp at tkzbanner@autowidth+1em},{0.5*\useKV[tkzBannerpartKeys]{height}}) -- ({\tmp at tkzbanner@autowidth},0) -- (tkzBannerTri-SW) -- cycle ;
+					\fill[tkzbannertridark] (tkzBannerTri-NW) --++ ({\tmp at tkzbanner@autowidth},0) -- ({\tmp at tkzbanner@autowidth+1em},{0.5*(\useKV[tkzBannerpartKeys]{height})}) -- ({\tmp at tkzbanner@autowidth},0) -- (tkzBannerTri-SW) -- cycle ;
 					\IfEq{\tkzBannermaintritypelibre}{}%
 						{%
 							\ifboolKV[tkzBannerpartKeys]{num}%
@@ -2326,17 +2528,17 @@
 								{%
 									\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 at tkzbanner@autowidth},{0.5*\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 at 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 at 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 at 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 at 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 at tkzbanner@autowidth},{0.5*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}\tkzBannermaintritypelibre};
+							\node[inner sep=2pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp at tkzbanner@autowidth},{0.5*(\useKV[tkzBannerpartKeys]{height})}) {\vphantom{qÉ}\tkzBannermaintritypelibre};
 						}%
 				\end{scope}
 			}%
@@ -2346,21 +2548,21 @@
 			\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 at tkzbanner@autowidth+2*\tmp at tkzbanner@marginoffsetbanner+1.25em},{0.5*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}#3};
+					\node[inner sep=2pt,right,text=\tkzBannermaintricol,font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.75*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\tmp at tkzbanner@autowidth+2*\tmp at 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,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 at tkzbanner@autowidth+2*\tmp at tkzbanner@marginoffsetbanner+1.25em},{0.5*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}#3};
+					\node[inner sep=2pt,right,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.75*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\tmp at tkzbanner@autowidth+2*\tmp at 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};
+							\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}



More information about the tex-live-commits mailing list.