summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/customenvs
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/customenvs')
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdfbin95687 -> 96017 bytes
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex19
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdfbin203410 -> 321239 bytes
-rw-r--r--macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex161
-rw-r--r--macros/latex/contrib/customenvs/tex/customenvs.sty319
5 files changed, 481 insertions, 18 deletions
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf b/macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf
index 49dd9c958e..820109987c 100644
--- a/macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex b/macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex
index e1bbbe1918..da20b128bc 100644
--- a/macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-en.tex
@@ -34,8 +34,8 @@
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.0}
-\def\TPdate{22/10/2023}
+\def\TPversion{0.1.1}
+\def\TPdate{25/10/2023}
\usepackage{tcolorbox}
\sethlcolor{lightgray!25}
\NewDocumentCommand\MontreCode{ m }{%
@@ -111,6 +111,8 @@
\section{History}
+\verb|v0.1.1|~:~~~~Skills table (only french for the moment...)
+
\verb|v0.1.0|~:~~~~Initial version
\vspace*{5mm}
@@ -121,12 +123,13 @@
\subsection{Idea}
-The idea is to propose some classics environments with customizations :
+The idea is to propose some classics environments with customizations (some are, for the moment, only in french) :
\begin{itemize}
\item write in \textit{multicols}, with spacings enhancements ;
\item present answers for a \textit{MCQ} ;
- \item create a list with \textit{choosen items} (randomly or by numbers).
+ \item create a list with \textit{choosen items} (randomly or by numbers) ;
+ \item present a skill table.
\end{itemize}
\smallskip
@@ -143,15 +146,17 @@ Loaded packages are
\item \MontreCode{xstring}, \MontreCode{simplekv}, \MontreCode{listofitems}, \MontreCode{randomlist} and \MontreCode{xintexpr} ;
\item \MontreCode{enumitem} ;
\item \MontreCode{multicol} ;
- \item \MontreCode{tabularray}.
+ \item \MontreCode{tabularray} ;
+ \item \MontreCode{fontawesome5} ;
\end{itemize}
-Due to limitations, \MontreCode{enumitem} or \MontreCode{multicol} or \MontreCode{tabularray} can be \textit{un}loaded by \MontreCode{customenvs} (user must load them manually) via options :
+Due to limitations, \MontreCode{enumitem}/\MontreCode{multicol}/\MontreCode{tabularray}\MontreCode{fontawesome5} can be \textit{un}loaded by \MontreCode{customenvs} (user must load them manually) via options :
\begin{itemize}
\item \MontreCode{$\mathtt{\langle}$noenum$\mathtt{\rangle}$} ;
\item \MontreCode{$\mathtt{\langle}$nomulticol$\mathtt{\rangle}$} ;
- \item \MontreCode{$\mathtt{\langle}$notblr$\mathtt{\rangle}$}.
+ \item \MontreCode{$\mathtt{\langle}$notblr$\mathtt{\rangle}$} ;
+ \item \MontreCode{$\mathtt{\langle}$nofa$\mathtt{\rangle}$} ;
\end{itemize}
\begin{codehigh}[language=latex/latex3,style/main=teal!25,style/code=teal!25]
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf
index 8729772ec0..0b7ef6f8b4 100644
--- a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
index 5e610ba0dc..969dde4575 100644
--- a/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
+++ b/macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
@@ -39,8 +39,8 @@
\usepackage[margin=1.5cm]{geometry}
\setlength{\parindent}{0pt}
-\def\TPversion{0.1.0}
-\def\TPdate{22 octobre 2023}
+\def\TPversion{0.1.1}
+\def\TPdate{25 octobre 2023}
\usepackage[most]{tcolorbox}
\tcbuselibrary{listingsutf8}
\newtcblisting{DemoCode}[1]{%
@@ -57,19 +57,19 @@
commentstyle={\itshape\color{gray}},
keywordstyle={\color{blue}},%
classoffset=0,%
- keywords={usepackage,displaystyle,frac,infty,begin,end,lipsum,centering,par,baselineskip,item,bullet,int,color},%
+ keywords={usepackage,displaystyle,frac,infty,begin,end,lipsum,centering,par,baselineskip,item,bullet,int,color,NewDocumentCommand},%
alsoletter={-},%
keywordstyle={\color{blue}},%
classoffset=1,%
alsoletter={-},%
- morekeywords={center,justify},%
+ morekeywords={center,justify,\LstDeuxNiv,\LstTroisNiv,\LstQuatreNiv,\NoticeDeuxNiv,\NoticeTroisNiv,\NoticeQuatreNiv,\DeuxNivBatterie,\TroisNivBatterie,\QuatreNivBatterie,\DeuxNivSmiley,\TroisNivSmiley,\QuatreNivSmiley,\vcenterfa,\faIcon},%
keywordstyle={\color{violet}},%
classoffset=2,%
alsoletter={-},%
- morekeywords={\ReponsesQCM,MultiCols,\CreerListeItems,\ListeChoixItems},%
+ morekeywords={\ReponsesQCM,MultiCols,\CreerListeItems,\ListeChoixItems,\TableauCompetences},%
keywordstyle={\color{green!50!black}},%
classoffset=3,%
- morekeywords={Largeur,Filets,EspacesCL,NbCols,Labels,PoliceLabels,EspaceLabels,Swap,Type,CoeffEspVert,EpTrait,Alea},%
+ 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},%
keywordstyle={\color{orange}}
},%
#1
@@ -149,6 +149,8 @@
\section{Historique}
+\verb|v0.1.1|~:~~~~Tableaux de compétences
+
\verb|v0.1.0|~:~~~~Version initiale
\vspace*{5mm}
@@ -166,7 +168,8 @@ L'idée est de proposer des commandes ou environnements classiques avec quelques
\item \textit{centrer} avec gestion des espacements autour ;
\item écrire en \textit{multi-colonnes} avec gestion des espacements autour ;
\item mettre en forme des réponses à des \textit{QCM} ;
- \item créer une liste avec \textit{choix des items} (de manière aléatoire ou par saisie directe).
+ \item créer une liste avec \textit{choix des items} (de manière aléatoire ou par saisie directe) ;
+ \item créer un tableau de \textit{compétences}.
\end{itemize}
\smallskip
@@ -192,15 +195,19 @@ Les packages chargés sont :
\item \MontreCode{xstring}, \MontreCode{simplekv}, \MontreCode{listofitems}, \MontreCode{randomlist} et \MontreCode{xintexpr} ;
\item \MontreCode{enumitem} ;
\item \MontreCode{multicol} ;
- \item \MontreCode{tabularray}.
+ \item \MontreCode{tabularray} ;
+ \item \MontreCode{xcolor} ;
+ \item \MontreCode{fontawesome5}.
\end{itemize}
-À noter que, pour des raisons de compatibilité (ou d'incompatibilité), les packages \MontreCode{enumitem} ou \MontreCode{multicol} ou \MontreCode{tabularray} peuvent ne pas être chargés par \MontreCode{customenvs} (auxquels cas l'utilisateur devra les avoir chargés pour faire fonctionner certains environnements) via les options :
+À noter que, pour des raisons de compatibilité (ou d'incompatibilité), les packages \MontreCode{enumitem}/\MontreCode{multicol}/\MontreCode{tabularray}/\MontreCode{xcolor}/\MontreCode{fontawesome5} peuvent ne pas être chargés par \MontreCode{customenvs} (auxquels cas l'utilisateur devra les avoir chargés pour faire fonctionner certains environnements) via les options :
\begin{itemize}
\item \MontreCode{$\mathtt{\langle}$nonenum$\mathtt{\rangle}$} ;
\item \MontreCode{$\mathtt{\langle}$nonmulticol$\mathtt{\rangle}$} ;
- \item \MontreCode{$\mathtt{\langle}$nontblr$\mathtt{\rangle}$}.
+ \item \MontreCode{$\mathtt{\langle}$nontblr$\mathtt{\rangle}$} ;
+ \item \MontreCode{$\mathtt{\langle}$nonxcolor$\mathtt{\rangle}$} ;
+ \item \MontreCode{$\mathtt{\langle}$nonfa$\mathtt{\rangle}$}.
\end{itemize}
\begin{DemoCode}{listing only}
@@ -556,4 +563,138 @@ Le dernier argument, optionnel et entre \MontreCode{<...>} correspond à des opt
\ListeChoixItems[Type=item]{\malisteditemsb}{ListeItemsB}(7,2,1,5,3)<label=$\bullet$>
\end{DemoCode}
+\pagebreak
+
+\section{Tableau de compétences}
+
+\subsection{Principe et fonctionnement}
+
+L'idée est de proposer un environnement pour créer un tableau de compétences, via 2/3/4 niveaux :
+
+\begin{itemize}
+ \item basé sur \MontreCode{tblr}, qui doit donc être chargé (par défaut il l'est) ;
+ \item basé sur \MontreCode{xcolor}, qui doit donc être chargé (par défaut il l'est) ;
+ \item avec personnalisations possibles.
+\end{itemize}
+
+Si \MontreCode{xcolor} est déjà chargé, avec des options particulières, le package peut ne pas le charger, grâce à l'option \MontreCode{nonxcolor}.
+
+\begin{DemoCode}{listing only}
+\TableauCompetences[clés]{listecompétences}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+\TableauCompetences{Compétence A § Compétence B}
+\end{DemoCode}
+
+\subsection{Éléments prédéfinis}
+
+Pour simplifier la saisie de certains paramètres, certaines macros ont été définies en interne, et pourront être utilisées, ou redéfinies si besoin.
+
+\begin{DemoCode}{listing only}
+%patch fa vcenter
+\NewDocumentCommand{\vcenterfa}{ O{} m }{$\vcenter{\hbox{\faIcon[#1]{#2}}}$}
+%labelnote
+\def\LabelNoteComp{Note}
+%listeniveaux
+\def\LstDeuxNiv{NA § A}
+\def\LstTroisNiv{NA § ECA § A}
+\def\LstQuatreNiv{NA § PA § ECA § A}
+%noticeniveaux
+\def\NoticeDeuxNiv{Non acquis § Acquis}
+\def\NoticeTroisNiv{Non acquis § En cours d'acquis. § Acquis}
+\def\NoticeQuatreNiv{Non acquis § Part. acquis § En cours d'acquis. § Acquis}
+\end{DemoCode}
+
+\begin{DemoCode}{text only}
+Niveaux par \og batterie \fg :
+
+\MontreCode{\textbackslash DeuxNivBatterie} : \DeuxNivBatterie\\
+\MontreCode{\textbackslash TroisNivBatterie} : \TroisNivBatterie \\
+\MontreCode{\textbackslash QuatreNivBatterie} : \QuatreNivBatterie\\
+
+Niveaux par \og smiley \fg :
+
+\MontreCode{\textbackslash DeuxNivSmiley} : \DeuxNivSmiley\\
+\MontreCode{\textbackslash TroisNivSmiley} : \TroisNivSmiley\\
+\MontreCode{\textbackslash QuatreNivSmiley} : \QuatreNivSmiley
+\end{DemoCode}
+
+\pagebreak
+
+Les \MontreCode{clés} disponibles sont :
+
+\begin{itemize}
+ \item \MontreCode{Largeur} : largeur globale du tableau ; \MontreCode{0.95\textbackslash linewidth} par défaut
+ \item \MontreCode{LargeurNivs} : largeur des colonnes Niv + Note (séparées par \MontreCode{§}) ; \MontreCode{0.75cm § 1.25cm} par défaut
+ \item \MontreCode{Niveaux} : liste des niveaux (séparés par \MontreCode{§}) ; \MontreCode{NA § ECA § A} par défaut
+ \item \MontreCode{NoticeNiveaux} : notice des niveaux (séparés par \MontreCode{§}) ; \MontreCode{Non acquis § En cours d'acquisition § Acquis} par défaut ;
+ \item \MontreCode{Titre} : titre du tableau ; \MontreCode{DS01} par défaut
+ \item \MontreCode{PolTitre} : police de la 1\up{ere} ligne ; \MontreCode{\textbackslash small\textbackslash sffamily\textbackslash bfseries} par défaut
+ \item \MontreCode{PolNotice} : police de la notice (dernière ligne) ; \MontreCode{\textbackslash small\textbackslash sffamily\textbackslash bfseries} par défaut
+ \item \MontreCode{PolComp} : police des lignes des compétences ; \MontreCode{\textbackslash small\textbackslash sffamily} par défaut
+ \item \MontreCode{LigneSep} : séparation entre les lignes ; \MontreCode{2pt} par défaut
+ \item \MontreCode{CouleurNotice} : couleur de la notice ; \MontreCode{black} par défaut
+ \item \MontreCode{CouleurNiveaux} : couleur de la première ligne ; \MontreCode{black} par défaut
+ \item \MontreCode{CouleurFond} : fond de la première ligne; \MontreCode{lightgray!25} par défaut
+ \item \MontreCode{Note} : booléen pour afficher la colonne note ; \MontreCode{true} par défaut
+ \item \MontreCode{Notice} : booléen pour afficher la ligne notice; \MontreCode{true} par défaut.
+\end{itemize}
+
+L'argument, obligatoire et entre \MontreCode{\{...\}} est la liste des compétences, sous la forme \MontreCode{Comp A § Comp B § ...}.
+
+À noter que les clés \MontreCode{Niveaux} et \MontreCode{NoticeNiveaux} doivent avoir le même nombre d'éléments.
+
+\subsection{Exemples}
+
+\begin{DemoCode}{}
+%Note + Notice
+\TableauCompetences{Utiliser le compas § Utiliser l'équerre}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%- Note + Notice
+\TableauCompetences[Note=false]{Utiliser le compas § Utiliser l'équerre}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%Note - Notice
+\TableauCompetences[Notice=false]{Utiliser le compas § Utiliser l'équerre}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%- Note - Notice
+\TableauCompetences[Note=false,Notice=false]{Utiliser le compas § Utiliser l'équerre}
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%Personnalisations
+\TableauCompetences[Titre=Eval n°01,Niveaux=\TroisNivBatterie]{Utiliser le compas § Utiliser l'équerre}\par
+\TableauCompetences[Titre={},Niveaux=\TroisNivSmiley]{Utiliser le compas § Utiliser l'équerre}\par
+\TableauCompetences[Largeur=10cm,Notice=false,Titre={},Niveaux=\TroisNivSmiley]{Utiliser le compas § Utiliser l'équerre}\par
+\end{DemoCode}
+
+\begin{DemoCode}{}
+%deux niveaux
+\TableauCompetences[Niveaux=\LstDeuxNiv,NoticeNiveaux=\NoticeDeuxNiv]{Utiliser le compas § Utiliser l'équerre}\par
+\TableauCompetences[Largeur=10cm,Titre={},Niveaux=\DeuxNivBatterie, NoticeNiveaux=\NoticeDeuxNiv]{Utiliser le compas § Utiliser l'équerre}
+\end{DemoCode}
+
+\pagebreak
+
+\begin{DemoCode}{}
+%quatre niveaux, personnalisation 'complète'
+\def\LabelNoteComp{Appréc.}
+\TableauCompetences[%
+ Largeur=14cm,%
+ LargeurNivs={1cm§3.5cm},%
+ Niveaux={N0§N1§N2§N3},
+ NoticeNiveaux={Très bof§Bof§Moyen§Bien},
+ CouleurNotice=orange,%
+ CouleurNiveaux=blue,%
+ PolTitre=\large\ttfamily\itshape\bfseries
+ ]%
+ {Utiliser la règle § Utiliser le compas § Utiliser l'équerre}
+\end{DemoCode}
+
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/customenvs/tex/customenvs.sty b/macros/latex/contrib/customenvs/tex/customenvs.sty
index e444e4e1f0..b58ff0ca36 100644
--- a/macros/latex/contrib/customenvs/tex/customenvs.sty
+++ b/macros/latex/contrib/customenvs/tex/customenvs.sty
@@ -2,9 +2,10 @@
% licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{customenvs}[2023/10/22 0.1.0 Custom classic environments]
+\ProvidesPackage{customenvs}[2023/10/25 0.1.1 Custom classic environments]
%====HISTORIQUE
+% v 0.1.1 Ajout de tableaux de compétences
% v 0.1.0 Version initiale
%====OPTIONS FR ET EN
@@ -17,10 +18,22 @@
\newif\if@multicol\@multicoltrue%
\DeclareOption{nonmulticol}{\@multicolfalse}%
\DeclareOption{nomulticol}{\@multicolfalse}%
+\newif\if@xcolor\@xcolortrue%
+\DeclareOption{nonxcolor}{\@xcolorfalse}%
+\DeclareOption{noxcolor}{\@xcolorfalse}%
+\newif\if@fa\@fatrue%
+\DeclareOption{nonfa}{\@fafalse}%
+\DeclareOption{nofa}{\@fafalse}%
\DeclareOption*{}
\ProcessOptions\relax
%====PACKAGES UTILES À CHARGER
+\if@xcolor
+ \RequirePackage{xcolor}
+\fi
+\if@fa
+ \RequirePackage{fontawesome5}
+\fi
\if@enum
\RequirePackage{enumitem}
\fi
@@ -264,6 +277,310 @@
}%
}
+%====TABLEAU DE COMPÉTENCES
+%patch fa vcenter
+\NewDocumentCommand{\vcenterfa}{ O{} m }{$\vcenter{\hbox{\faIcon[#1]{#2}}}$}
+
+%labelnote
+\def\LabelNoteComp{Note}
+%listeniveaux
+\def\LstDeuxNiv{NA § A}
+\def\LstTroisNiv{NA § ECA § A}
+\def\LstQuatreNiv{NA § PA § ECA § A}
+%noticeniveaux
+\def\NoticeDeuxNiv{Non acquis § Acquis}
+\def\NoticeTroisNiv{Non acquis § En cours d'acquis. § Acquis}
+\def\NoticeQuatreNiv{Non acquis § Part. acquis § En cours d'acquis. § Acquis}
+%nivparbatteries
+\def\DeuxNivBatterie{\vcenterfa[solid]{battery-quarter} § \vcenterfa[solid]{battery-full}}
+\def\TroisNivBatterie{\vcenterfa[solid]{battery-quarter} § \vcenterfa[solid]{battery-half} § \vcenterfa[solid]{battery-full}}
+\def\QuatreNivBatterie{\vcenterfa[solid]{battery-empty} § \vcenterfa[solid]{battery-quarter} § \vcenterfa[solid]{battery-half} § \vcenterfa[solid]{battery-full}}
+%nivparsmileys
+\def\DeuxNivSmiley{\vcenterfa[regular]{angry} § \vcenterfa[regular]{smile}}
+\def\TroisNivSmiley{\vcenterfa[regular]{angry} § \vcenterfa[regular]{frown} § \vcenterfa[regular]{smile}}
+\def\QuatreNivSmiley{\vcenterfa[regular]{angry} § \vcenterfa[regular]{frown} § \vcenterfa[regular]{smile} § \vcenterfa[regular]{grin}}
+
+% ========================tableau compétences
+\defKV[tblcomp]{%
+ Largeur=\def\COMPETlargeur{#1},%
+ LargeurNivs=\def\COMPETlargeurs{#1},%
+ Niveaux=\def\COMPETniveaux{#1},%
+ NoticeNiveaux=\def\COMPETnoticeniveaux{#1},%
+ Titre=\def\COMPETtitre{#1},%
+ PolTitre=\def\COMPETlegende{#1},%
+ PolComp=\def\COMPETcomp{#1},%
+ PolNotice=\def\COMPETnotice{#1},%
+ LigneSep=\def\COMPETsep{#1}
+}
+
+\setKVdefault[tblcomp]{%
+ Largeur=0.95\linewidth,%
+ LargeurNivs={0.75cm § 1.25cm},%niv + note
+ Niveaux={NA § ECA § A},%
+ NoticeNiveaux={Non acquis § En cours d'acquisition § Acquis},%
+ Titre=DS01,%
+ PolTitre=\small\sffamily\bfseries,%
+ PolNotice=\small\sffamily\bfseries,%
+ PolComp=\small\sffamily,%
+ LigneSep=2pt,%
+ CouleurNotice=black,%
+ CouleurNiveaux=black,%
+ CouleurFond=lightgray!25,%
+ Note=true,%
+ Notice=true
+}
+
+%pour créer le body du tableau (j'ai encore du mal avec ça...)
+\long\def\tblcompaddto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
+
+\NewDocumentCommand{\TableauCompetences}{ O{} m }{%1=options,2=liste compétences
+ \useKVdefault[tblcomp]%
+ \setKV[tblcomp]{#1}% on paramètres les nouvelles clés et on les simplifie
+ \setsepchar{§}%
+ \readlist*\ListeCompetences{#2}%
+ \readlist*\ListeNiveaux{\COMPETniveaux}%
+ \readlist*\ListeLargeurs{\COMPETlargeurs}%
+ \readlist*\ListeNoticeNiveaux{\COMPETnoticeniveaux}%
+ \def\CPtabledatacomp{}%
+ \xintifboolexpr{\ListeNiveauxlen == 2}%avec 3 niveaux de compétences
+ {%
+ \ifboolKV[tblcomp]{Note}%
+ {%
+ \tblcompaddto\CPtabledatacomp{\COMPETtitre & \ListeNiveaux[1] & \ListeNiveaux[2] & \LabelNoteComp \\}%
+ \xintFor* ##1 in {\xintSeq{1}{\ListeCompetenceslen}}\do{%
+ \tblcompaddto\CPtabledatacomp{\ListeCompetences[\the\numexpr\therownum-1\relax] & & & \\}%
+ }%
+ \ifboolKV[tblcomp]{Notice}%
+ {%
+ \tblcompaddto\CPtabledatacomp{{\ListeNiveaux[1]} : {\ListeNoticeNiveaux[1]} / {\ListeNiveaux[2]} : {\ListeNoticeNiveaux[2]} & & & \\}
+ %creation du tableau note+notice
+ \begin{tblr}[expand=\CPtabledatacomp]%
+ {%
+ width={\COMPETlargeur},%
+ hlines,vlines,colspec={X[l,b]*{2}{Q[c,b,\ListeLargeurs[1]]}Q[c,b,\ListeLargeurs[2]]},%
+ rowsep=\COMPETsep,%
+ row{1}={font=\COMPETlegende,fg=\useKV[tblcomp]{CouleurNiveaux},bg=\useKV[tblcomp]{CouleurFond}},%
+ row{2-Y}={font=\COMPETcomp},%
+ row{Z}={font=\COMPETnotice,fg=\useKV[tblcomp]{CouleurNotice}},%
+ cell{2}{Z}={r=\the\numexpr\ListeCompetenceslen+1\relax}{},%
+ cell{Z}{1}={c=3}{}
+ }%
+ \CPtabledatacomp
+ \end{tblr}%
+ }%
+ {%
+ %creation du tableau note-notice
+ \begin{tblr}[expand=\CPtabledatacomp]%
+ {%
+ width={\COMPETlargeur},%
+ hlines,vlines,colspec={X[l,b]*{2}{Q[c,b,\ListeLargeurs[1]]}Q[c,b,\ListeLargeurs[2]]},%
+ rowsep=\COMPETsep,%
+ row{1}={font=\COMPETlegende,fg=\useKV[tblcomp]{CouleurNiveaux},bg=\useKV[tblcomp]{CouleurFond}},%
+ row{2-Z}={font=\COMPETcomp},%
+ cell{2}{Z}={r=\the\numexpr\ListeCompetenceslen\relax}{}
+ }%
+ \CPtabledatacomp
+ \end{tblr}%
+ }%
+ }%
+ {%
+ \tblcompaddto\CPtabledatacomp{\COMPETtitre & \ListeNiveaux[1] & \ListeNiveaux[2] \\}%
+ \xintFor* ##1 in {\xintSeq{1}{\ListeCompetenceslen}}\do{%
+ \tblcompaddto\CPtabledatacomp{\ListeCompetences[\the\numexpr\therownum-1\relax] & & \\}%
+ }%
+ \ifboolKV[tblcomp]{Notice}%
+ {%
+ \tblcompaddto\CPtabledatacomp{{\ListeNiveaux[1]} : {\ListeNoticeNiveaux[1]} / {\ListeNiveaux[2]} : {\ListeNoticeNiveaux[2]} & & \\}
+ %creation du tableau -note+notice
+ \begin{tblr}[expand=\CPtabledatacomp]%
+ {%
+ width={\COMPETlargeur},%
+ hlines,vlines,colspec={X[l,b]*{2}{Q[c,b,\ListeLargeurs[1]]}},%
+ rowsep=\COMPETsep,%
+ row{1}={font=\COMPETlegende,fg=\useKV[tblcomp]{CouleurNiveaux},bg=\useKV[tblcomp]{CouleurFond}},%
+ row{2-Y}={font=\COMPETcomp},%
+ row{Z}={font=\COMPETnotice,fg=\useKV[tblcomp]{CouleurNotice}},%
+ cell{Z}{1}={c=3}{}
+ }%
+ \CPtabledatacomp
+ \end{tblr}%
+ }%
+ {%
+ %creation du tableau -note-notice
+ \begin{tblr}[expand=\CPtabledatacomp]%
+ {%
+ width={\COMPETlargeur},%
+ hlines,vlines,colspec={X[l,b]*{2}{Q[c,b,\ListeLargeurs[1]]}},%
+ rowsep=\COMPETsep,%
+ row{1}={font=\COMPETlegende,fg=\useKV[tblcomp]{CouleurNiveaux},bg=\useKV[tblcomp]{CouleurFond}},%
+ row{2-Z}={font=\COMPETcomp}
+ }%
+ \CPtabledatacomp
+ \end{tblr}%
+ }%
+ }%
+ }%
+ {}%
+ \xintifboolexpr{\ListeNiveauxlen == 3}%avec 3 niveaux de compétences
+ {%
+ \ifboolKV[tblcomp]{Note}%
+ {%
+ \tblcompaddto\CPtabledatacomp{\COMPETtitre & \ListeNiveaux[1] & \ListeNiveaux[2] & \ListeNiveaux[3] & \LabelNoteComp \\}%
+ \xintFor* ##1 in {\xintSeq{1}{\ListeCompetenceslen}}\do{%
+ \tblcompaddto\CPtabledatacomp{\ListeCompetences[\the\numexpr\therownum-1\relax] & & & & \\}%
+ }%
+ \ifboolKV[tblcomp]{Notice}%
+ {%
+ \tblcompaddto\CPtabledatacomp{{\ListeNiveaux[1]} : {\ListeNoticeNiveaux[1]} / {\ListeNiveaux[2]} : {\ListeNoticeNiveaux[2]} / {\ListeNiveaux[3]} : {\ListeNoticeNiveaux[3]} & & & & \\}
+ %creation du tableau note+notice
+ \begin{tblr}[expand=\CPtabledatacomp]%
+ {%
+ width={\COMPETlargeur},%
+ hlines,vlines,colspec={X[l,b]*{3}{Q[c,b,\ListeLargeurs[1]]}Q[c,b,\ListeLargeurs[2]]},%
+ rowsep=\COMPETsep,%
+ row{1}={font=\COMPETlegende,fg=\useKV[tblcomp]{CouleurNiveaux},bg=\useKV[tblcomp]{CouleurFond}},%
+ row{2-Y}={font=\COMPETcomp},%
+ row{Z}={font=\COMPETnotice,fg=\useKV[tblcomp]{CouleurNotice}},%
+ cell{2}{Z}={r=\the\numexpr\ListeCompetenceslen+1\relax}{},%
+ cell{Z}{1}={c=4}{}
+ }%
+ \CPtabledatacomp
+ \end{tblr}%
+ }%
+ {%
+ %creation du tableau note-notice
+ \begin{tblr}[expand=\CPtabledatacomp]%
+ {%
+ width={\COMPETlargeur},%
+ hlines,vlines,colspec={X[l,b]*{3}{Q[c,b,\ListeLargeurs[1]]}Q[c,b,\ListeLargeurs[2]]},%
+ rowsep=\COMPETsep,%
+ row{1}={font=\COMPETlegende,fg=\useKV[tblcomp]{CouleurNiveaux},bg=\useKV[tblcomp]{CouleurFond}},%
+ row{2-Z}={font=\COMPETcomp},%
+ cell{2}{Z}={r=\the\numexpr\ListeCompetenceslen\relax}{}
+ }%
+ \CPtabledatacomp
+ \end{tblr}%
+ }%
+ }%
+ {%
+ \tblcompaddto\CPtabledatacomp{\COMPETtitre & \ListeNiveaux[1] & \ListeNiveaux[2] & \ListeNiveaux[3] \\}%
+ \xintFor* ##1 in {\xintSeq{1}{\ListeCompetenceslen}}\do{%
+ \tblcompaddto\CPtabledatacomp{\ListeCompetences[\the\numexpr\therownum-1\relax] & & & \\}%
+ }%
+ \ifboolKV[tblcomp]{Notice}%
+ {%
+ \tblcompaddto\CPtabledatacomp{{\ListeNiveaux[1]} : {\ListeNoticeNiveaux[1]} / {\ListeNiveaux[2]} : {\ListeNoticeNiveaux[2]} / {\ListeNiveaux[3]} : {\ListeNoticeNiveaux[3]} & & & \\}
+ %creation du tableau -note+notice
+ \begin{tblr}[expand=\CPtabledatacomp]%
+ {%
+ width={\COMPETlargeur},%
+ hlines,vlines,colspec={X[l,b]*{3}{Q[c,b,\ListeLargeurs[1]]}},%
+ rowsep=\COMPETsep,%
+ row{1}={font=\COMPETlegende,fg=\useKV[tblcomp]{CouleurNiveaux},bg=\useKV[tblcomp]{CouleurFond}},%
+ row{2-Y}={font=\COMPETcomp},%
+ row{Z}={font=\COMPETnotice,fg=\useKV[tblcomp]{CouleurNotice}},%
+ cell{Z}{1}={c=4}{}
+ }%
+ \CPtabledatacomp
+ \end{tblr}%
+ }%
+ {%
+ %creation du tableau -note-notice
+ \begin{tblr}[expand=\CPtabledatacomp]%
+ {%
+ width={\COMPETlargeur},%
+ hlines,vlines,colspec={X[l,b]*{3}{Q[c,b,\ListeLargeurs[1]]}},%
+ rowsep=\COMPETsep,%
+ row{1}={font=\COMPETlegende,fg=\useKV[tblcomp]{CouleurNiveaux},bg=\useKV[tblcomp]{CouleurFond}},%
+ row{2-Z}={font=\COMPETcomp}
+ }%
+ \CPtabledatacomp
+ \end{tblr}%
+ }%
+ }%
+ }%
+ {}%
+ \xintifboolexpr{\ListeNiveauxlen == 4}%maintenant avec 4 niveaux de compétences
+ {%
+ \ifboolKV[tblcomp]{Note}%
+ {%
+ \tblcompaddto\CPtabledatacomp{\COMPETtitre & \ListeNiveaux[1] & \ListeNiveaux[2] & \ListeNiveaux[3] & \ListeNiveaux[4] & \LabelNoteComp \\}%
+ \xintFor* ##1 in {\xintSeq{1}{\ListeCompetenceslen}}\do{%
+ \tblcompaddto\CPtabledatacomp{\ListeCompetences[\the\numexpr\therownum-1\relax] & & & & & \\}%
+ }%
+ \ifboolKV[tblcomp]{Notice}%
+ {%
+ \tblcompaddto\CPtabledatacomp{{\ListeNiveaux[1]} : {\ListeNoticeNiveaux[1]} / {\ListeNiveaux[2]} : {\ListeNoticeNiveaux[2]} / {\ListeNiveaux[3]} : {\ListeNoticeNiveaux[3]} / {\ListeNiveaux[4]} : {\ListeNoticeNiveaux[4]} & & & & & \\}
+ %creation du tableau note+notice
+ \begin{tblr}[expand=\CPtabledatacomp]%
+ {%
+ width={\COMPETlargeur},%
+ hlines,vlines,colspec={X[l,b]*{4}{Q[c,b,\ListeLargeurs[1]]}Q[c,b,\ListeLargeurs[2]]},%
+ rowsep=\COMPETsep,%
+ row{1}={font=\COMPETlegende,fg=\useKV[tblcomp]{CouleurNiveaux},bg=\useKV[tblcomp]{CouleurFond}},%
+ row{2-Y}={font=\COMPETcomp},%
+ row{Z}={font=\COMPETnotice,fg=\useKV[tblcomp]{CouleurNotice}},%
+ cell{2}{Z}={r=\the\numexpr\ListeCompetenceslen+1\relax}{},%
+ cell{Z}{1}={c=5}{}
+ }%
+ \CPtabledatacomp
+ \end{tblr}%
+ }%
+ {%
+ %creation du tableau note-notice
+ \begin{tblr}[expand=\CPtabledatacomp]%
+ {%
+ width={\COMPETlargeur},%
+ hlines,vlines,colspec={X[l,b]*{4}{Q[c,b,\ListeLargeurs[1]]}Q[c,b,\ListeLargeurs[2]]},%
+ rowsep=\COMPETsep,%
+ row{1}={font=\COMPETlegende,fg=\useKV[tblcomp]{CouleurNiveaux},bg=\useKV[tblcomp]{CouleurFond}},%
+ row{2-Z}={font=\COMPETcomp},%
+ cell{2}{Z}={r=\the\numexpr\ListeCompetenceslen\relax}{}
+ }%
+ \CPtabledatacomp
+ \end{tblr}%
+ }%
+ }%
+ {%
+ \tblcompaddto\CPtabledatacomp{\COMPETtitre & \ListeNiveaux[1] & \ListeNiveaux[2] & \ListeNiveaux[3] & \ListeNiveaux[4] \\}%
+ \xintFor* ##1 in {\xintSeq{1}{\ListeCompetenceslen}}\do{%
+ \tblcompaddto\CPtabledatacomp{\ListeCompetences[\the\numexpr\therownum-1\relax] & & & & \\}%
+ }%
+ \ifboolKV[tblcomp]{Notice}%
+ {%
+ \tblcompaddto\CPtabledatacomp{{\ListeNiveaux[1]} : {\ListeNoticeNiveaux[1]} / {\ListeNiveaux[2]} : {\ListeNoticeNiveaux[2]} / {\ListeNiveaux[3]} : {\ListeNoticeNiveaux[3]} / {\ListeNiveaux[4]} : {\ListeNoticeNiveaux[4]} & & & & \\}
+ %creation du tableau -note+notice
+ \begin{tblr}[expand=\CPtabledatacomp]%
+ {%
+ width={\COMPETlargeur},%
+ hlines,vlines,colspec={X[l,b]*{4}{Q[c,b,\ListeLargeurs[1]]}},%
+ rowsep=\COMPETsep,%
+ row{1}={font=\COMPETlegende,fg=\useKV[tblcomp]{CouleurNiveaux},bg=\useKV[tblcomp]{CouleurFond}},%
+ row{2-Y}={font=\COMPETcomp},%
+ row{Z}={font=\COMPETnotice,fg=\useKV[tblcomp]{CouleurNotice}},%
+ cell{Z}{1}={c=5}{}
+ }%
+ \CPtabledatacomp
+ \end{tblr}%
+ }%
+ {%
+ %creation du tableau -note-notice
+ \begin{tblr}[expand=\CPtabledatacomp]%
+ {%
+ width={\COMPETlargeur},%
+ hlines,vlines,colspec={X[l,b]*{4}{Q[c,b,\ListeLargeurs[1]]}},%
+ rowsep=\COMPETsep,%
+ row{1}={font=\COMPETlegende,fg=\useKV[tblcomp]{CouleurNiveaux},bg=\useKV[tblcomp]{CouleurFond}},%
+ row{2-Z}={font=\COMPETcomp}
+ }%
+ \CPtabledatacomp
+ \end{tblr}%
+ }%
+ }%
+ }%
+ {}%
+}
+
%%----COMMANDES EN
%====QCMs