Je souhaite créer une macro \tabcomp pour générer un tableau comme celui-ci, avec un appel du type \tabcomp{arg1}{arg2}{arg3}; mais qui fonctionnerait aussi si j'appelle \tabcomp{arg1}{...}{argn} pour évaluer n compétences.

Je ne sais pas vraiment quelle solution TeX élégante utiliser...

Pourriez-vous m'indiquer des outils et m'aider à faire cela proprement ?

Posée 30 Sep, 18:14

louberehc's gravatar image

louberehc
314
Taux d'acceptation : 0%

Modifiée 30 Sep, 20:38

Pathe's gravatar image

Pathe ♦♦
6.1k5105194


Une idée est d'utiliser la commande \docsvlist de l'extension etoolbox :

Ouvrir dans l'éditeur Overleaf
\documentclass[french]{article}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{etoolbox}

\shorthandon{:}
\newcommand{\tabcomp}[1]{%
{\renewcommand*{\do}[1]{##1 & & \\\hline}
\begin{tabular}{|l|c|c|}
\hline
Compétences évaluées: & Auto-évaluation & Évaluation professeur \\
\hline
\docsvlist{#1}
\end{tabular}}}
\shorthandoff{:}

\begin{document}
\tabcomp{arg1,arg2,arg3,arg4,arg5,arg6}

\tabcomp{arg1,arg2,arg3}

\tabcomp{arg1,arg2,arg3,arg4}

\tabcomp{arg1,arg2,arg3,arg4,arg5,arg6}
\end{document}
Lien permanent

Publiée 30 Sep, 18:57

touhami's gravatar image

touhami
7.9k210
Taux d'acceptation : 53%

Ci-dessous une version utilisant xparse :

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[main=french]{babel}
\usepackage{array}
\usepackage{xparse}

\shorthandon{:}
\newcommand{\EcrireUneLigneDeTableau}[1]{#1 & & \\ \hline }

\NewDocumentCommand { \tabcomp }{ > { \SplitList { / } } m }
{
  \begin{tabular}{|l|c|c|}\hline
    Compétences évaluées: & Auto-évaluation & Évaluation professeur \\ \hline
    \ProcessList{#1}{ \EcrireUneLigneDeTableau }
  \end{tabular}
}
\shorthandoff{:}

\begin{document}

\tabcomp{arg1/ arg2/ arg3}

\end{document}

On peut remplacer le caractère / par un autre comme , ou ;.

Si un des arguments contient le caractère de séparation choisi, il faudra bien entendu (comme dans la version de touhami) placé le texte entre accolades.

Lien permanent

Publiée 30 Sep, 20:17

Le%20TeXnicien%20de%20surface's gravatar image

Le TeXnicien de surface
1.5k29
Taux d'acceptation : 34%

Je vous remercie énormément. J'étudierai les deux outils plus en détails quand j'aurai plus de temps, pour l'instant, j'utilise et c'est parfait!

(30 Sep, 22:28) louberehc louberehc's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.

Mots-clés de la question :

×6
×4
×2
×1

Question posée : 30 Sep, 18:14

Question vue : 164 fois

Dernière mise à jour : 01 Oct, 09:15