From f08c30f12bfcf20f5e5ba229697b29a01fe36e07 Mon Sep 17 00:00:00 2001 From: Maxime Augier Date: Thu, 23 May 2024 18:43:15 +0200 Subject: [PATCH] Prototype better syntax for QCM --- exam/demo.pdf | Bin 98864 -> 99098 bytes exam/demo.typ | 8 +++++++- exam/lib.typ | 21 ++++++++++++++++++--- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/exam/demo.pdf b/exam/demo.pdf index 6316a5acaee594571a7179babf21cee33e2b315b..189e8288de426f400b44d5e98b00fc146195c079 100644 GIT binary patch delta 21735 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

v{?U_)4bI*EX)Mf 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 diff --git a/exam/demo.typ b/exam/demo.typ index e923321..e4b40d9 100644 --- a/exam/demo.typ +++ b/exam/demo.typ @@ -1,4 +1,4 @@ -#import "@y-sec/exam:0.1.0": exam, question, reponse, choix +#import "@y-sec/exam:0.1.0": exam, question, reponse, qcm #show: exam( title: "Examen en Typst", subtitle: "Y-Security - Typst Essentials", @@ -57,6 +57,12 @@ de la fonction `exam`. La valeur par défaut est: #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 ?] diff --git a/exam/lib.typ b/exam/lib.typ index eb10e21..2d44818 100644 --- a/exam/lib.typ +++ b/exam/lib.typ @@ -9,6 +9,7 @@ #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 let headings_after = query(selector(heading) @@ -26,11 +27,25 @@ // Rend les réponses visibles seulement si compilé avec `--input mode=solution` #let solution(content) = if enable_solutions { set text(fill: olive); content } else { hide(content) } -#let choix(rep, content) = { - if rep and solution_mode { "☒ " } else { "☐ " } - content +#let qcm(qcm_list) = { + //let checked_box = "☑"; + //let unchecked_box = "☐"; + let checked_box = box(stroke: black, outset: 0.2em, "X") + " "; + let unchecked_box = box(stroke: black, outset: 0.2em, hide("X")) + " "; + set list(marker: unchecked_box, indent: 2em) + if enable_solutions { + show : i => { + show box: b => checked_box; + set text(fill: olive); + i + }; + qcm_list + } else { + qcm_list + } } + #let exam(title: "Exam", course: none, date: none, class: none, year: none, author: none, subtitle: none, indications: none, time: none, allowed: none) = doc => {