This is the latest version of my exam writing library Scrutinize that comes with breaking changes, but is in my opinion a big step forward. I took inspiration from the feature set of other exam libraries on Universe and hope that Scrutinize now covers a wide range of common use cases. 0.3.0 also adds one compatibility check so that it will work on Typst 0.12 (assuming no further breaking changes relative to 0.12.0-rc1).
I hope you enjoy it/find it useful!
Here’s a side-by-side comparison of an exam and its solution:
What you can see here are:
- task kinds: fill-in-the-gaps, free-form text, multiple choice
- gaps and free-form text areas are stretched to provide more writing space than a printed answer would occupy
- free-form text areas can have no, lines, or a grid as background
- gap and free-form questions can have a “placeholder”, e.g. an unfinished diagram that has to be completed
- task metadata: points, arbitrary categorization
- headings use show rules to indicate task metadata
- points are summed up according to filter criteria
- grading key generation
- sample solution generation, based on
--input solution
- solution state can also be toggled manually, e.g. to include an answered example question
Not shown:
- multiple choice questions can also be oriented horizontally
- tasks can have subtasks, organized by heading nesting
- task metadata lookup can be limited to “scopes”, e.g. to have multiple independent exams in the same document (or independent examples in the documentation *wink*)
- Scrutinize has a comprehensive manual (let me know if it really is informative/comprehensible, it can be hard to tell when writing about one’s own work)
What scrutinize does not have/provide:
- exam templates for use with
typst init
- a system for comprehensively changing question styling: task functions have parameters for customization, but not to the extent that set and show rules provide