\NeedsTeXFormat{LaTeX2e}[1999/01/01] \ProvidesPackage{macros}[2020/11/04] % Déclaration des options % ********************************************************************* %% Option noir et blanc %\newif\if@noiretblanc \@noiretblancfalse %\DeclareOption{noiretblanc}{\@noiretblanctrue} % Option mots-cles (affichage des mots-cles) \newif\if@motscles \@motsclesfalse \DeclareOption{motscles}{\@motsclestrue} \DeclareOption*{}%% Ne rien faire quand une option est inconnue \ProcessOptions % ****************************************** % Intitulés standards des niveaux % ****************************************** \def\niveauA{Novice} \def\niveauB{Interm\'{e}diaire} \def\niveauC{Comp\'{e}tent} % ************************************** % Variables globales % ************************************** \newcounter{cptressource} % domaines de ressources (ex. domains) \newcounter{cptparcours} % compteur de parcours \newcounter{cptcomp} % compteur de compétences tout parcours confondu \newcounter{cptcompspe} % compteur de compétences spécifiques à un parcours confondu \newcounter{cptcompcommune} % compteur de compétences communes \newcounter{cptmetier} %\newcounter{attenduG} %\newcounter{attenduTS} %\newcounter{attenduH} %\newcounter{domainsl} %\newcounter{matrix} \xdef\compoloop{A,B,C,D,E,F} % Composantes essentielles : Maxi 6 composantes \xdef\situloop{A,B,C,D} % Situation professionnelle : Maxi 4 %\xdef\defiloop{A,B,C,D,E} %F,G,H} %\xdef\attenduloop{A,B,C,D,E} %,F,G,H} \xdef\apploop{A,B,C,D,E,F} % Apprentissages critiques : Maxi 6 %\xdef\metierloop{A,B,C,D,E} %,F,G,H,I,J} \xdef\nivloop{A,B,C} % La boucle sur les niveaux : Maxi 3 %\parcoursnumloop{} % boucle sur les parcours % **************************************** % La spécialité % **************************************** \def\specialite#1{\def\specialitename{#1}} % ***************************************** % Domaine de ressources % ***************************************** \def\nouveaudomaine#1{ \addtocounter{domains}{1} \expandafter\def\csname domaine\Alph{domains}\endcsname{#1} \ifnum\value{domains}=1\xdef\domainsloop{\Alph{domains}} \else\xdef\domainsloop{\domainsloop,\Alph{domains}} \fi} % **************************************** % Parcours (numéroté avec \parcours) % **************************************** % \nouveauparcours{Nom du parcours}{Abbréviation} \def\nouveauparcours#1#2{ \addtocounter{cptparcours}{1} % Incrémente le compteur de parcours \setcounter{cptmetier}{0} % RAZ du compteur de métiers \xdef\currentparcours{#2} % L'abbréviation du parcours courant \setcounter{cptcompspe}{0} % RAZ du compteur de competences spécifiques \expandafter\def\csname parcoursname\currentparcours\endcsname{#1} \expandafter\def\csname parcoursabbr\currentparcours\endcsname{#2} % Incrémente la boucle sur les parcours \ifnum\value{cptparcours}=1\relax \xdef\loopabbrparcours{\currentparcours} \else \xdef\loopabbrparcours{\loopabbrparcours,\currentparcours} \fi %\expandafter\xdef\newcounter{\csname cptcomp#2\endcsname} %cptcompt#1#2} % Compétences du parcours => ajout des comp communes \newcounter{cptcompparcours\currentparcours} % compteur %\expandafter\xdef\csname loopcompparcours#2\endcsname{} % Boucle sur les compétences du parcours \addtocounter{cptcompparcours\currentparcours}{\value{cptcompcommune}} % Ajoute les comp communes \ifnum\value{cptcompparcours\currentparcours}=0\relax % Ajoute la comp à la boucle de compétences du parcours \expandafter\xdef\csname loopcompparcours\currentparcours\endcsname{} % CyberA/S/A \else \expandafter\xdef\csname loopcompparcours\currentparcours\endcsname{\loopcompcommune} % \fi \expandafter\xdef\csname loopmetier#1\endcsname{} % Boucle métier } %% Attendu ParcourSup %%%% général %\def\nouvelattendugeneral#1{ %\addtocounter{attenduG}{1} %\expandafter\def\csname attenduG\Alph{attenduG}\endcsname{#1} %\ifnum\value{attenduG}=1\xdef\attenduGloop{\Alph{attenduG}} %\else\xdef\attenduGloop{\attenduGloop,\Alph{attenduG}}\fi} %%%% technique %\def\nouvelattendutech#1{\addtocounter{attenduTS}{1}\expandafter\def\csname attenduTS\Alph{attenduTS}\endcsname{#1}\ifnum\value{attenduTS}=1\xdef\attenduTSloop{\Alph{attenduTS}}\else\xdef\attenduTSloop{\attenduTSloop,\Alph{attenduTS}}\fi} %%%% humain %\def\nouvelattenduhumain#1{ %\addtocounter{attenduH}{1}\expandafter\def\csname attenduH\Alph{attenduH}\endcsname{#1}\ifnum\value{attenduH}=1\xdef\attenduHloop{\Alph{attenduH}}\else\xdef\attenduHloop{\attenduHloop,\Alph{attenduH}}\fi %} %***************************** % Métiers accessibles via parcours %***************************** % \ajoutmetier{desc métier} au parcours courant \def\ajoutmetier#1{ \addtocounter{cptmetier}{1} \expandafter\xdef\csname metier\currentparcours\Alph{cptmetier}\endcsname{#1} \expandafter\xdef\csname metiermark\currentparcours\Alph{cptmetier}\endcsname{$\bullet$} \ifnum\value{cptmetier}=1\relax % Incrémente les éléments des boucles de parcours \expandafter\xdef\csname loopmetier\currentparcours\endcsname{\Alph{cptmetier}} % loopmetierCyber{A, B, C...} \else \expandafter\xdef\csname loopmetier\currentparcours\endcsname{\csname loopmetier\currentparcours\endcsname,\Alph{cptmetier}} \fi } %***************************** % Bloc de compétences % **************************** % Bloc de compétences spécifique d'un parcours : % \nouvellecompetence % #1 {nom_de_la_compétence} CC % #2 {lettre_numerotant_la_competence} % #3 {intitule_competence} "Administrer les réseaux et l'Internet" % #4 {definition_competence} % #5 {type_competence} C (commune) ou S (spécifique) % #6 {code_competence} code eg CCA ou PilPro % #7 {verbe_competence} un verbe % \def\nouvellecompetence#1#2#3#4#5#6#7{ \addtocounter{cptcomp}{1} % Ajoute une compétence \def\currentcomp{#1#2} % Compétence courante CCA ou CyberB \expandafter\def\csname compname\currentcomp\endcsname{#3} % compSA + nomduparcours \expandafter\def\csname compdef\currentcomp\endcsname{#4} % la définition \expandafter\def\csname compcode\currentcomp\endcsname{#6} \expandafter\def\csname compverbe\currentcomp\endcsname{#7} % la définition \newcounter{cptniveau\currentcomp} % le compteur de niveaux pour la compétence, mis à 0 \newcounter{cptcompo\currentcomp} % le compteur pour les composantes essentielles \newcounter{cptsitupro\currentcomp} % le compteur de situations professionnelles par compétence %\newcounter{compdef#1}\addtocounter{compdef#1}{1}\newcounter{compapp#1A}\newcounter{compapp#1B}\newcounter{compapp#1C} % Incrémente la boucle de parcours sur toutes les compétences \ifnum\value{cptcomp}=1\relax \expandafter\xdef\csname loopcomp\endcsname{\currentcomp/#5/#2} % CCA/C/A \else \expandafter\xdef\csname loopcomp\endcsname{\loopcomp,\currentcomp/#5/#2} % \fi } % Ajoute une compétence commune existante à un parcours en l'intégrant à la boucle des compétences (par ex: loopcompparcoursCyber) %\ajoutcompetencecommune{intitule}{description}{verbe}{code_competence} \def\ajoutcompetencecommune#1#2#3#4{ \addtocounter{cptcompcommune}{1} % Incrémente le compteur de compétences spécifiques du parcours \xdef\lettrecomp{\Alph{cptcompcommune}} % La lettre de la compétence \xdef\abbrcomp{CC\lettrecomp} % L'abbréviation de la compétence : CCA % Crée la compétence commune : \nouvellecompetence{CC}{\lettrecomp}{#1}{#2}{C}{#4}{#3} \ifnum\value{cptcompcommune}=1\relax \expandafter\xdef\csname loopcompcommune\endcsname{\abbrcomp/C/\lettrecomp} % boucle composante d'un parcours : nom/type/lettre \else \expandafter\xdef\csname loopcompcommune\endcsname{\csname loopcompcommune\endcsname,\abbrcomp/C/\lettrecomp} % \fi } % Ajoute une compétence (spécifique) au parcours courant en l'intégrant à la boucle des compétences (par ex: loopcompparcoursCyber) %\ajoutcompetence{intitule}{description}{verbe}{code_competence} \def\ajoutcompetence#1#2#3#4{ \addtocounter{cptcompspe}{1} % Incrémente le compteur de compétences spécifiques du parcours \xdef\lettrecomp{\Alph{cptcompspe}} % La lettre de la compétence \xdef\abbrcomp{\currentparcours\lettrecomp} % L'abbréviation de la compétence : CyberA \nouvellecompetence{\currentparcours}{\lettrecomp}{#1}{#2}{S}{#4}{#3} % Créé la compétence spécifique \addtocounter{cptcompparcours\currentparcours}{1} % Incrémente le compteur de compétences du parcours \ifnum\csname thecptcompparcours\currentparcours\endcsname=1\relax % Ajoute la comp à la boucle de compétences du parcours \expandafter\xdef\csname loopcompparcours\currentparcours\endcsname{\abbrcomp/S/\lettrecomp} % CyberA/S/A \else \expandafter\xdef\csname loopcompparcours\currentparcours\endcsname{\csname loopcompparcours\currentparcours\endcsname,\abbrcomp/S/\lettrecomp} % \fi } % ************************************* % Niveaux d'un bloc de compétences % ************************************* % \ajout_niveau{nom_de_la_competence}{lettre}{titre_court}{description} \def\ajoutniveau#1#2{ \addtocounter{cptniveau\currentcomp}{1} % Incrémente le compteur de niveau dans la compétence courante \def\currentniveau{\Alph{cptniveau\currentcomp}} % La lettre du niveau courant : A,B,C \newcounter{cptappr\currentcomp\Alph{cptniveau\currentcomp}} % Compteur d'apprentissages critiques \expandafter\xdef\csname niveaudesc\currentcomp\Alph{cptniveau\currentcomp}\endcsname{#2}% \ifx#1\relax\relax % Si le titre court n'est pas fourni : novice/intermédiaire/expet \expandafter\xdef\csname niveauname\currentcomp\Alph{cptniveau\currentcomp}\endcsname{\csname niveau\Alph{cptniveau\currentcomp}\endcsname}% \else% \expandafter\xdef\csname niveauname\currentcomp\Alph{cptniveau\currentcomp}\endcsname{#1}% \fi } % *************************************** % Composantes essentielles % *************************************** % \ajoutcompo{description_composante_essentielle_sans_En} à la compétence currente \def\ajoutcompo#1{ \addtocounter{cptcompo\currentcomp}{1} % compteur cptcompoCCA \expandafter\def\csname componame\currentcomp\Alph{cptcompo\currentcomp}\endcsname{#1} } % *************************************** % Situations professionnelles % *************************************** % \ajoutsitupro{description_situation_professionnelle} à la compétence courant \def\ajoutsitupro#1{ \addtocounter{cptsitupro\currentcomp}{1} % compteur de situations professionnelles par compétence incrémenté \expandafter\def\csname situproname\currentcomp\Alph{cptsitupro\currentcomp}\endcsname{#1} } % *************************************** % Apprentissages critiques % *************************************** % \ajoutapprentissage{description_apprentissage} à la compétence courante et au niveau courant \def\ajoutapprentissage#1{ \addtocounter{cptappr\currentcomp\currentniveau}{1} % compteur cptapprCCAA % comp A, niveau A \expandafter \def\csname apprdesc\currentcomp\currentniveau\Alph{cptappr\currentcomp\currentniveau}\endcsname{#1}% %\setcounter{domainsl}{0} %\xdef\varloop{#4} %\ifx#4\relax\relax\xdef\varloop{0}\else\relax\fi %\foreach \matrixpoint in \varloop { %\addtocounter{domainsl}{1} %\setcounter{matrix}{\matrixpoint} %\ifnum\value{matrix}=1\relax %\expandafter\xdef\csname comp#1niv#2app\Alph{compapp#1#2}dom\Alph{domainsl}\endcsname{\matrixpoint}% %\else\relax\fi %} } % ************************************* \definecolor{colormotscle}{RGB}{120, 185, 235} \def\motscles#1{ \if@motscles \small \textcolor{colormotscle}{(#1)} \fi }