%!TEX pdflatex
\documentclass{article}
\usepackage[left=1.5cm, right=1cm, top=1.5cm, bottom=1.5cm]{geometry}
\usepackage{tabularx}
\usepackage{xinttools}
\usepackage{tabularray}
\usepackage{listofitems}
\usepackage{simplekv}
%=========================tableau compétences version alternative
\defKV[tblcomp]{%
listecomp=\def\COMPETlistecomp{#1},%
listecrit=\def\COMPETlistecrit{#1},%
largeurs=\def\COMPETlargeurs{#1},%
lignesep=\def\COMPETsep{#1}
}
\setKVdefault[tblcomp]{%
listecomp={Compétence A § Compétence B § Compétence C § Compétence D § Compétence E},%
listecrit={Critère A § Critère B Critère C § Critère D § Critère E},%
largeurs={2.5cm § 8.5cm § 0.5cm § 1.5cm},%comp + critères + niveaux + note
lignesep=2pt,%
centre=false
}
%pour créer le body du tableau (j'ai encore un peu de mal avec ça...)
\long\def\CPaddto#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
\newcommand\tblrcompter[1][]{%
\useKVdefault[tblcomp]%
\setKV[tblcomp]{#1}% on paramètres les nouvelles clés et on les simplifie
\setsepchar{§}%
\readlist*\ListeCompetences\COMPETlistecomp%
\readlist*\ListeLargeurs\COMPETlargeurs%
\readlist*\ListeCriteres\COMPETlistecrit%
%création du "body" grâce au compteur de lignes \rownum et boucle xintfor
\def\CPtabledatacomp{}%les lignes à créer
\xintFor* ##1 in {\xintSeq{1}{\ListeCompetenceslen}}\do{%
\CPaddto\CPtabledatacomp{\ListeCompetences[\the\numexpr\therownum-1\relax] & \ListeCriteres[\the\numexpr\therownum-1\relax] & & & & & \\}%
}
%le tableau
\ifboolKV[tblcomp]{centre}{\begin{center}}{}
\begin{tblr}[expand=\CPtabledatacomp]%
{%
hlines,vlines,colspec={%
Q[l,m,\ListeLargeurs[1]]%
Q[l,m,\ListeLargeurs[2]]%
*{4}{Q[c,m,\ListeLargeurs[3]]}%
Q[c,m,\ListeLargeurs[4]]%
},%
rowsep=\COMPETsep,%
row{1}={font=\bfseries},%
cell{2}{7} = {r=\ListeCompetenceslen}{c}
}
Compétences & Critères & V+ & V & O & R & Note\\
\CPtabledatacomp
\end{tblr}
\ifboolKV[tblcomp]{centre}{\end{center}}{}
}
\begin{document}
\tblrcompter[%
listecomp={Calculer § Communiquer § Chercher},%
listecrit={Respecter les priorités de calcul § Rédiger correctement la réponse à un problème § Extraire les informations d'un document},%
centre
]
\begin{center}
\begin{tabular}{|m{2.5cm}|m{8.5cm}|m{0.5cm}|m{0.5cm}|m{0.5cm}|m{0.5cm}|m{2cm}|}
\hline
\textbf{Compétences} & \textbf{Critères d'évaluation} & V+ & V & O & R & Note\\
\hline
Calculer & Respecter les priorités de calcul & & & & & \\
\cline{1-6}
Communiquer & Rédiger correctement la réponse à un problème & & & & & \\
\cline{1-6}
Chercher & Extraire les informations d'un document & & & & & \\
\hline
\end{tabular}
\end{center}
\end{document}