#import "@y-sec/exam:0.1.0": exam, question, reponse, qcm #show: exam( title: "Examen en Typst", subtitle: "Y-Security - Typst Essentials", course: "TES", date: datetime(year: 2050, month: 1, day: 1), author: "Maxime Augier", time: "45 minutes", allowed: "une page A4 (recto-verso) de résumé personnel", ) = Questions et Réponses La commande `#question` permet de définir une question avec un bloc de réponse. Le contenu de la réponse sera uniquement affiché dans le corrigé. #question[ Quelle est la manière la plus simple de fournir une réponse ? ][ Avec un 2e argument à la fonction `question`. ] #question[Est-il possible d'avoir un bloc réponse séparé ?] #reponse[Bien sûr ! Avec la commande `réponse`. ] #question[Comment fonctionne la numérotation des questions ?][ Le compteur global `"question"` est utilisé ] = Page de garde #question[Comment changer les indications de la page de garde ?] #reponse[ Les indications sont passées avec le paramètre `indications` de la fonction `exam`. La valeur par défaut est: ```typst [ - Ce test doit être réalisé en maximum *#time*. - Aucun document n'est admis, excepté #allowed . - L'utilisation de tout type de matériel électronique est interdite. - Ne pas oublier d'inscrire votre nom et prénom à l'endroit prévu à cet effet. - Merci de respecter un silence absolu jusqu'à ce que le dernier étudiant aie rendu sa copie ] ``` ] = Formats alternatifs #question[Préféréz-vous les questions à choix multiples ?] #qcm[ - Clairement oui - Pas trop - La réponse D ] = Comptage des points #question(points: 5)[Comment changer la valeur en points de la question ?] #reponse[Avec l'argument optionnel `points` de la commande `question`] #question(points: 2)[Comment fonctionne le comptage des points ?] #reponse[ Le compteur global `"points"` enregistre le total de points disponibles en partant du début du document. Chaque en-tête de section calcule les points disponibles à partir de la différence de ce compteur entre l'en-tête de section en cours et le prochain en-tête. ] == Sous-sections #question(points: 1)[Et s'il y a des sous-sections ?][ La différence est en fait calculée avec le prochain en-tête de niveau égal ou inférieur, ce qui correspond à la division logique du document. ] = Compilation Le package doit être installé dans l'emplacement adéquat (par défaut: `$HOME/.local/share/typst/packages/y-sec/exam/0.1.0`) #question[Comment contrôler l'affichage des réponses ?][ Passer l'option `--input mode=solution` à `typst` pour activer le mode solution. ] Le makefile suivant permet de générer les deux documents à la suite: ```make %.pdf: %.typ typst compile $< %-solution.pdf: %.typ typst compile --input mode=solution $< ```