diff --git a/README.md b/README.md index 5e796c0..cadd37b 100644 --- a/README.md +++ b/README.md @@ -8,85 +8,95 @@ A summary is then printed on the front page. #### Using `typship` - typship download -n local https://imsc.uni-graz.at/git/gjankowiak/typst-exam/ +```bash +typship download -n local https://imsc.uni-graz.at/git/gjankowiak/typst-exam/ +``` #### Manually - mkdir -p ~/.local/share/typst/packages/local/exam - cd ~/.local/share/typst/packages/local/exam - curl https://imsc.uni-graz.at/git/gjankowiak/typst-exam/archive/v0.1.0.tar.gz | tar zx --xform 's/typst-exam/0.1.0/' +```bash +mkdir -p ~/.local/share/typst/packages/local/exam +cd ~/.local/share/typst/packages/local/exam +curl https://imsc.uni-graz.at/git/gjankowiak/typst-exam/archive/v0.1.0.tar.gz | tar zx --xform 's/typst-exam/0.1.0/' +``` ## Usage Writing an exam is now easy (see [API](#api) for all options): - #import "@local/exam:0.1.0": exam, exercise, exercise-items, mtext +```typ +#import "@local/exam:0.1.0": exam, exercise, exercise-items, mtext - #show: exam.with( - title: "Exam", +#show: exam.with( + title: "Exam", - course_title: [Abstract Binary Computation & Elegent Finite Graphs], + course_title: [Abstract Binary Computation & Elegent Finite Graphs], - institution: [Super University], + institution: [Super University], - date: "1. January 1970", - course_short_title: "ABC & EFG", + date: "1. January 1970", + course_short_title: "ABC & EFG", - course_code: "π", - duration_minutes: "90", + course_code: "π", + duration_minutes: "90", - ask_trainer_name: false, - ask_group: true, + ask_trainer_name: false, + ask_group: true, - language: "en", - ) + language: "en", +) +``` ### Defining exercises and items A new exercise can be started using `#exercise("title", nb_points)`, for example: - #exercise("Relations and their properties", 2) - - Consider the relation $R subset NN^2$, defined as follows: - - $ (x, y) in R #h(0.5cm) <==> #h(0.5cm) x + y #mtext[is odd]. $ - - Is $R$ reflexive? transitive? symmetric? antisymmetric? +```typ +#exercise("Relations and their properties", 2) + +Consider the relation $R subset NN^2$, defined as follows: + +$ (x, y) in R #h(0.5cm) <==> #h(0.5cm) x + y #mtext[is odd]. $ + +Is $R$ reflexive? transitive? symmetric? antisymmetric? +``` On can also defined (sub-)items for the exercise using `#exercise-items(override_points:true, numbering:"a)", items)`, where `items` is an array of `(nb_points, statement)`. By default, the number of points the exercise is worth is recomputed as the sum of points for all items. This behaviour can be turned off by setting `override_points: false`. - #exercise("Properties of functions", 3) - - Let $f : (0, +infinity) → (0, +infinity)$ with $f (x) = e^(-x)$. - - #exercise-items(( - (1, [Is $f$ injective?]), - (1, [Is $f$ surjective?]), - (1, [Is $f$ bijective?]), - )) +```typ +#exercise("Properties of functions", 3) - #exercise("Logical operators", 3.14) +Let $f : (0, +infinity) → (0, +infinity)$ with $f (x) = e^(-x)$. - Consider the following truthtable: +#exercise-items(( + (1, [Is $f$ injective?]), + (1, [Is $f$ surjective?]), + (1, [Is $f$ bijective?]), +)) - #align(center, table( - stroke: frame(0.5pt), - columns: (auto, auto, auto), - align: center, - [$A$], [$B$], [$A or B$], - [1], [1], [1], - [1], [0], [1], - [0], [1], [1], - [0], [0], [1] - )) +#exercise("Logical operators", 3.14) - #exercise-items(override-points: false, numbering: "i)", ( - (1, [Is the truthtable correct?]), - (1, [If not, fix it.]), - )) +Consider the following truthtable: + +#align(center, table( + stroke: frame(0.5pt), + columns: (auto, auto, auto), + align: center, + [$A$], [$B$], [$A or B$], + [1], [1], [1], + [1], [0], [1], + [0], [1], [1], + [0], [0], [1] +)) + +#exercise-items(override-points: false, numbering: "i)", ( + (1, [Is the truthtable correct?]), + (1, [If not, fix it.]), +)) +``` All together, this should output something like: @@ -103,7 +113,7 @@ top and bottom lines are bold. ### API ```typ -exam( +#exam( title: "%KLAUSUR or EXAM%", course-title: [%COURSE_TITLE_FIRST_LINE% \ %COURSE_TITLE_SECOND_LINE%],