Referentiel_Competences/modeles/frame_parcours_niveaux.tex

142 lines
6.9 KiB
TeX

%%%%%%%%%%%%%%%%%%%%%% FRAME PARCOURS / COMPETENCES / NIVEAUX (1/parcours)
% 1 parcours = 1 frame
% Usage : \frameParcoursCompetencesNiveaux{abbr_parcours}{n°_parcours}
\newcommand\frameParcoursCompetencesNiveaux[2]{
\xdef\PARABBR{#1} % Nom du parcours : Cyber
\xdef\COUPAR{#2} % N° du parcours : Cyber
%\def\PARABBR{Cyber}
%\def\COUPAR{1}
\begin{frame}[plain]{}
%\csname loopcompparcours\PARABBR\endcsname
% Titre de la frame
\begin{tikzpicture}[overlay, remember picture]
\coordinate(topleftcorner) at ($ (current page.north west) + (10mm,-12mm) $); % Dimension de la frame
\coordinate(toprightcorner) at ($ (current page.north east) + (-10mm,-10mm) $);
\coordinate(lastpoint) at ($ (current page.north west) + (10mm,-12mm) $);
\coordinate(toprightcorner) at ($ (current page.north east) + (-12mm,-12mm) $);
\coordinate(splitpoint) at ($ (lastpoint) + (20cm,-12mm) $);
\coordinate(splitpointbis) at ($ (splitpoint) + (1cm,2mm) $);
\coordinate(titleright) at ($ (splitpoint) + (4cm, 0cm)$);
\coordinate(refpoint) at ($ (lastpoint)+(25mm,0mm) $);
\node[text=titlebg] [%
outer sep=0,inner sep=0mm,%
fit=(lastpoint)(titleright),
align=left%
] (xtitle) {\fontsize{20}{40}\bfseries\selectfont Parcours \PARABBR~: niveaux de développement des compétences};
\fill[shade,left color=titlebg,right color=white] (xtitle.south west) rectangle ($ (xtitle.south east) + (0,1mm) $);
\coordinate(lastpoint) at ($ (xtitle.south west) + (0,-4mm) $);
\coordinate (topleft) at ($ (lastpoint)+(2mm,-2mm) $);
\coordinate (offset) at (54mm,0); % 45
\coordinate (bottomright) at ($ (lastpoint)+(49mm,-32mm) $); % Réglage largeur des compétences initialement 41
% 1 colonne par compétence
\xdef\loopcompparcours{\csname loopcompparcours\PARABBR \endcsname}
\foreach \CNOM/\CTYPE/\CLETTRE [count=\COUXX] in \loopcompparcours { % Boucle sur les compétences : 1 compétence = 1 colonne
\ifcsdef{compname\CNOM}{ %compname#1#2\endcsname{#3}
\node[%
outer sep=0,inner sep=2mm,%
text width=38mm,%
fit=(topleft)(bottomright),%
align=flush center,%
fill=comp\CTYPE\CLETTRE,text=comp\CTYPE\CLETTRE p,%
blur shadow={shadow blur steps=5}%
] (headbox\CNOM) {\textbf{\csname compcode\CNOM\endcsname}\\
\begin{hyphenrules}{nohyphenation}
\large \csname compname\CNOM\endcsname\end{hyphenrules}}; % Le nom de la compétence
\coordinate(highright) at ($ (bottomright)+(2mm,-5mm) $);
\coordinate(highleft) at ($ (highright-|topleft)+(-2mm,0) $);
\coordinate(highmid) at ($ .5*(highright)+.5*(highleft) $);
\coordinate(sep0) at ($ (highright)+(0,1mm) $);
\ifthenelse{\equal{\CTYPE}{S}}{ % type S décalage lié à l'absence de niveau en 1ère année A
\coordinate(lowright) at ($ (highright)+(0mm,-30mm) $);
\coordinate(lowleft) at ($ (highleft)+(0mm,-30mm) $);
\coordinate(lowmid) at ($ .5*(lowright)+.5*(lowleft)+(0,-5mm) $);
\coordinate(highright) at ($ (lowright)+(0,-2mm) $);
\coordinate(highleft) at ($ (lowleft)+(0,-2mm) $);
\coordinate(highmid) at ($ .5*(highright)+.5*(highleft) $);
\coordinate (sep1) at ($ (lowright)+(0,-1mm) $); % le sepS1S2
}{};
\foreach \NIV [count=\COUNIV] in \nivloop {% boucle sur les niveaux : 1 niveau = 1 flèche
% niveaudesc#1#2\Alph{cptniveau#1#2}
\ifcsdef{niveauname\CNOM\NIV}{ % si le niveau existe
\coordinate(lowright) at ($ (highright)+(0mm,-30mm) $); %
\coordinate(lowleft) at ($ (highleft)+(0mm,-30mm) $);
\coordinate(lowmid) at ($ .5*(lowright)+.5*(lowleft)+(0,-5mm) $);
\draw[thick,%
fill=comp\CTYPE\CLETTRE!\csname niveaufill\NIV\endcsname!white,
draw=comp\CTYPE\CLETTRE!\csname niveaupath\NIV\endcsname!white,
blur shadow={shadow blur steps=5}
](highright)--(highmid)--(highleft)--(lowleft)--(lowmid)--(lowright)--cycle; % pourtour
\node[%
outer sep=0,inner sep=0mm,%
text width=30mm,%
fit=(highmid)(lowleft)(lowright),%
align=flush center,%
fill=comp\CTYPE\CLETTRE!\csname niveaufill\NIV\endcsname!white,
text=comp\CTYPE\CLETTRE p!\csname niveauink\NIV\endcsname!black,
] (headbox\CNOM\NIV) {
\textbf{\csname niveauname\CNOM\NIV\endcsname}\\
\begin{hyphenrules}{nohyphenation}\csname niveaudesc\CNOM\NIV\endcsname\end{hyphenrules}
};
\coordinate(highright) at ($ (lowright)+(0,-2mm) $);
\coordinate(highleft) at ($ (lowleft)+(0,-2mm) $);
\coordinate(highmid) at ($ (lowmid)+(0,-2mm) $);
}{
\coordinate(lowright) at ($ (highright)+(0mm,-30mm) $);
\coordinate(lowleft) at ($ (highleft)+(0mm,-30mm) $);
\coordinate(lowmid) at ($ .5*(lowright)+.5*(lowleft)+(0,-5mm) $);
\coordinate(highright) at ($ (lowright)+(0,-2mm) $);
\coordinate(highleft) at ($ (lowleft)+(0,-2mm) $);
\coordinate(highmid) at ($ (lowmid)+(0,-2mm) $);
}% fin du test sur l'existence du niveau
\ifthenelse{\equal{\CTYPE}{C}}{ % comp communes
\coordinate (sep\COUNIV) at ($ (lowright)+(0,-1mm) $);
}{ % comp spécif
\pgfmathparse{int(\COUNIV+1)};
\coordinate (sep\pgfmathresult) at ($ (lowright)+(0,-1mm) $);
}
} % fin de la boucle sur le niveau
}{} % fin du test sur l'existence de la compétence
\coordinate (topleft) at ($ (topleft)+(offset) $);
\coordinate (bottomright) at ($ (bottomright)+(offset) $);
%% Background = la ligne des semestres
\begin{pgfonlayer}{background}
\foreach \NIV [count=\COUNIV] in \nivloop {%
\draw[draw=black,dashed,thin] (sep\COUNIV-|topleftcorner)--(sep\COUNIV-|toprightcorner);
\pgfmathparse{int(\COUNIV*2)};
\edef\mylabel{\pgfmathresult}
\node[anchor=north east,rotate=-90,xshift=-5mm] at (sep\COUNIV-|toprightcorner) {S\mylabel};
\pgfmathparse{int(\COUNIV*2-1)};
\edef\mylabel{\pgfmathresult}
\pgfmathparse{int(\COUNIV-1)};
\edef\mylabelb{\pgfmathresult}
\node[anchor=north west,rotate=-90,xshift=5mm] at (sep\mylabelb-|toprightcorner) {S\mylabel};
}
\end{pgfonlayer}
} % fin de la boucle sur les compétences
% Le numero de pages
\node[inner sep=0,outer sep=0,text width=33mm,anchor=north,align=center] (testarrow) at ($ (bottomrightcorner)+(0mm,0mm) $) {
\insertframenumber{}~/~\inserttotalframenumber{}
};
\end{tikzpicture}
\end{frame}
}