typst-ysec/exam/0.2.0/demo.typ
2024-09-18 14:35:23 +02:00

104 lines
2.8 KiB
Plaintext

#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 <yes>
- Pas trop
- La réponse D <yes>
]
= 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 $<
```