J'utilise le package exercise pour faire des sélections d'exercices. Chaque exercice est étiqueté par un label. Une liste de labels entre accolades permet de faire une sélection.

Mon problème apparaît lorsque je veux stocker cette liste de labels dans une variable.

Voici un exemple minimal :

\documentclass[12pt,french]{article}
\usepackage{exercise}
\begin{document}
\ExerciseSelect[label={exo1,exo2}]
\begin{Exercise}[label={exo1}]Bonjour 1\end{Exercise}
\begin{Exercise}[label={exo2}]Bonjour 2\end{Exercise}
\begin{Exercise}[label={exo3}]Bonjour 3\end{Exercise}
\ExerciseStopSelect
\def\listeExos{exo4,exo5}
\ExerciseSelect[label={\listeExos}]
\begin{Exercise}[label={exo4}]Bonjour 4\end{Exercise}
\begin{Exercise}[label={exo5}]Bonjour 5\end{Exercise}
\begin{Exercise}[label={exo6}]Bonjour 6\end{Exercise}
\ExerciseStopSelect
\end{document}

Les exercices 1 et 2 s'affichent, mais pas les 4 et 5. Avez-vous une idée ?

Posée 22 Mai, 20:36

SylvainDuLez's gravatar image

SylvainDuLez
531
Taux d'acceptation : 0%

Modifiée 23 Mai, 10:34

denis's gravatar image

denis ♦♦
7.1k1510

Bienvenue sur TeXnique.fr !

(23 Mai, 10:23) denis ♦♦ denis's gravatar image

Les formules de politesse et les signatures sont à éviter : celle(s) de votre contribution a (ont) été supprimée(s).

(23 Mai, 10:24) denis ♦♦ denis's gravatar image

La valeur de la clé label n'est pas développée (au sens de TeX). On peut écrire une nouvelle fonction \ExerciseSelectBis qui développe tout son argument entre crochets avant exécution.

\documentclass[12pt,french]{article}
\usepackage{exercise}

\begin{document}

\ExplSyntaxOn
\NewDocumentCommand{\ExerciseSelectBis}{o}
  { \use:x { \exp_not:N \ExerciseSelect[#1] } }
\ExplSyntaxOff

\ExerciseSelect[label={exo1,exo2}]
\begin{Exercise}[label={exo1}]Bonjour 1\end{Exercise}
\begin{Exercise}[label={exo2}]Bonjour 2\end{Exercise}
\begin{Exercise}[label={exo3}]Bonjour 3\end{Exercise}
\ExerciseStopSelect
\def\listeExos{exo4,exo5}
\ExerciseSelectBis[label={\listeExos}]
\begin{Exercise}[label={exo4}]Bonjour 4\end{Exercise}
\begin{Exercise}[label={exo5}]Bonjour 5\end{Exercise}
\begin{Exercise}[label={exo6}]Bonjour 6\end{Exercise}
\ExerciseStopSelect

\end{document}
Lien permanent

Publiée 23 Mai, 10:40

fpantigny's gravatar image

fpantigny
1.3k44
Taux d'acceptation : 36%

J'ai bien une solution mais c'est un tantinet pénible

remplacer

\ExerciseSelect[label={\listeExos}]

par

\let\EXP=\expandafter
 \EXP\ExerciseSelect\EXP[\EXP l\EXP a\EXP b\EXP e\EXP l\EXP=\EXP{\listeExos}]

jeqça

Lien permanent

Publiée 23 Mai, 09:52

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

Le TeXnicien de surface
2.0k814
Taux d'acceptation : 27%

Merci beaucoup !! Ça résout bien le problème. Il me reste juste à comprendre comment ça marche xD Encore merci, ça faisait un moment que j'étais bloqué dessus.

(23 Mai, 10:13) SylvainDuLez SylvainDuLez's gravatar image

@SylvainDuLez Attention ! Ce commentaire ne comporte qu'une confirmation de solution et c'est à éviter au profit de l'acceptation de la réponse (la plus appropriée quand il y en a plusieurs).

(23 Mai, 10:24) denis ♦♦ denis'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.