diff --git a/exam/demo.pdf b/exam/demo.pdf index 604c594..6316a5a 100644 Binary files a/exam/demo.pdf and b/exam/demo.pdf differ diff --git a/exam/demo.typ b/exam/demo.typ index 35c4257..e923321 100644 --- a/exam/demo.typ +++ b/exam/demo.typ @@ -1,4 +1,4 @@ -#import "@y-sec/exam:0.1.0": exam, question, reponse +#import "@y-sec/exam:0.1.0": exam, question, reponse, choix #show: exam( title: "Examen en Typst", subtitle: "Y-Security - Typst Essentials", @@ -25,6 +25,32 @@ Le contenu de la réponse sera uniquement affiché dans le corrigé. #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 @@ -68,3 +94,4 @@ Le makefile suivant permet de générer les deux documents à la suite: %-solution.pdf: %.typ typst compile --input mode=solution $< ``` + diff --git a/exam/lib.typ b/exam/lib.typ index afb128b..eb10e21 100644 --- a/exam/lib.typ +++ b/exam/lib.typ @@ -3,7 +3,11 @@ #let french_month = ("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre") -#let solution_mode = { sys.inputs.at("mode", default: "") == "solution" }; +#let compile_mode = sys.inputs.at("mode", default: ""); + +#let enable_solutions = { compile_mode in ("solution", "notes") }; +#let enable_notes = { compile_mode == "notes" }; + #let points_counter(h) = { // Find the first heading at a level equal or lower (more important) than this one @@ -20,7 +24,7 @@ #let show_points(pts) = [#pts] + if pts < 2 { " pt" } else { " pts" } // Rend les réponses visibles seulement si compilé avec `--input mode=solution` -#let solution(content) = if solution_mode { set text(fill: olive); content } else { hide(content) } +#let solution(content) = if enable_solutions { set text(fill: olive); content } else { hide(content) } #let choix(rep, content) = { if rep and solution_mode { "☒ " } else { "☐ " }