Fix nonce typo
[exsheet.git] / README.markdown
1 ## Präamble
2
3 Die LaTeX Klasse `exsheet2` ist zur Erstellung von Aufgabenblättern und
4 Klausuren, also im weitesten Sinne "exercise sheets". Sie geht aus einer
5 älteren Version `exsheet` hervor, die bislang nicht publiziert wurde und welche
6 ich in den letzten 10 Jahren für diese Anwedungen verwendete.
7
8 Viele Entwurfsaspekte von `exsheet2` stammen aus einer Erhebung am Department
9 for Information Technologies and Digitalisation an der FH Salzburg.
10
11 Ich verwende die Klasse für zwei Kategorien von Anwendungsfällen:
12
13 * Prüfungen, Tests oder Abschlussklausuren
14 * Aufgabenblätter oder Übungsblätter
15
16
17 ## Installation
18
19 Die einfache Lösung ist, dass man `exsheet2.cls` lokal in jedes Verzeichnis
20 gibt, wo es verwendet wird, d.h. wo die betreffenden LaTeX Dokumente liegen.
21
22 Die nachhaltige Lösung ist das Kopieren der Datei `exsheet2.cls` in ein
23 [TEXINPUTS](https://www2.ph.ed.ac.uk/~wjh/tex/documents/environmental.pdf)
24 Verzeichnis. Alternativ bietet sich das Klonen dieses Repositories und das
25 Verlinken von `exsheet2.cls` in ein Verzeichnis in `TEXINPUTS` an. Das macht
26 ein Update über git einfacher.
27
28 Das originale Repository findet sich auf
29 [git.sthu.org](https://git.sthu.org/?p=exsheet.git;a=summary). Ein Klon auf
30 [github.com/shuber2/exsheet](https://github.com/shuber2/exsheet) macht das
31 Verwalten von Issues und Pull Requests einfacher.
32
33
34 ## Allgemeine Features
35
36 Es wird eine Umgebung `exercises` zur Verfügung gestellt, um Aufgaben zu
37 formulieren. Man kann auch die Antwort mitformulieren und über die Option
38 `showanswers` an die Dokumentenklasse diese anzeigen lassen.
39
40 ```latex
41 \begin{exercise}
42 An exercise.
43 \end{exercise}
44
45 \begin{answer}
46 $\vec{a} = \frac{\vec{F}}{m}$
47 \end{answer}
48 ```
49
50 Ein optionales Argument erlaubt es die Punkteanzahl bekanntzugeben. Die
51 Umgebung `choices` erlaubt es single- oder multiple-choice Fragen zu
52 formulieren:
53
54 ```latex
55 \begin{exercise}[4] % Frage mit vier Punkten
56 Kreuzen Sie die richtigen Anworten an:
57 \begin{choices}
58 \item $1 + 1 = 0 \pmod 2$
59 \item $1 + 1 = 1 \pmod 2$
60 \item $1 + 1 = 1 \pmod 3$
61 \item $1 + 1 = 5 \pmod 7$
62 \end{choices}
63 \end{exercise}
64 ```
65
66
67 Über die Optionen `german`, `ngerman` oder `austrian` wird die Sprache
68 entsprechend umgestellt. Die betreffenden Pakete werden geladen.
69
70 Über die Option `exam` lassen sich Klausuren erstellen. Sie weitere
71 Informationen unten.
72
73 Die Optionen `10pt`, `12pt` und `twoside` werden an die Klasse `article`
74 weitergeleitet.
75
76 Es können über folgende Befehle entsprechend die Daten zur Klausur gesetzt
77 werden: `\title`, `\author`, `\date`, `\course`, `\curriculum`, `\semester`,
78 `\institute`, `\school`, `\duration`, `\instructions`. Achtung, `\date` muss
79 das Datum im ISO-Format erhalten, also yyyy-mm-dd. Wenn kein Datum gesetzt
80 wird, dann wird das aktuelle Datum verwendet.
81
82
83 ## Aufgabenblätter
84
85 Die Klassse `exsheet2` erzeugt ohne weitere Optionen einfache Aufgabenblätter.
86 Es werden zwei Sprachen unterstützt und notwendige Pakete entsprechend geladen:
87
88 * american
89 * german, ngerman
90
91 Ein Beispiel [exsheet2-demo-aufgabenblatt.tex](exsheet2-demo-aufgabenblatt.tex)
92 befindet sich als Demo im Repository. Ein einfaches Beispiel für ein
93 Aufgabenblatt mit einer Aufgabe lautet wie folgt:
94
95 ```latex
96 \documentclass[ngerman]{exsheet2}
97
98 \usepackage{fontspec}
99
100 \title{Aufgabenblatt 7}
101 \course{ILV Numerik und Industrielle Algorithmen}
102 \curriculum{ITS}
103
104 \date{2022-10-21}
105 \semester{WS 2022}
106
107 \author{Stefan Huber}
108 \institute{Department IT}
109 \school{FH Salzburg}
110
111 \begin{document}
112
113 \maketitle
114
115 \begin{exercise}
116 Welche Beschleunigung $\vec{a}$ erfährt eine träge Masse $m$ im Kraftfeld
117 $\vec{F}$ nach Newton?
118 \vspace{2cm}
119 \end{exercise}
120
121 \end{document}
122 ```
123
124
125 ## Klausuren
126
127 Klausuren werden durch die Option `exam` für die Klasse `exsheet2`erzeugt. Das
128 führt zu folgendem zusätzlichem Verhalten:
129
130 * Für Klausuren wird ein Deckblatt erzeugt.
131 * Die Punktesumme der Aufgaben wird am Deckblatt angezeigt.
132 * Es wird eine Zufallszahl als
133 [Nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce) generiert, die
134 rechts unten auf den Blättern bedruckt wird. Das ermöglicht die Zuordnung von
135 losen Blättern zu Klausuren und verhindert, dass Blätter von Student·innen
136 vorgeschrieben werden können.
137
138 Durch die automatische Berechnung der Punktesummen wird das **effiziente
139 Generieren von Klausuren** über Fragenkataloge erleichtert: Man kann in einem
140 Sammeldokumente Fragen sammeln, die vom Umfang mehrere Klausuren füllen und für
141 die Erstellung konkreter Klausuren fragen löschen, um auf die gewünschte
142 Punktezahl zu kommen.
143
144 Die Kopfzeile enthält jene Informationen, welche rasch erkennen lassen sollen,
145 um welche Klausur es sich handelt. Das ist für Sammelklausuren, wo gleichzeitig
146 viele verschiedene Klausuren durchgeführt werden, für die Beaufsichtigung
147 wichtig.
148
149 Zwei Beispiele befinden sich als Demo im Repository:
150
151 * [exsheet2-demo-klausur.tex](exsheet2-demo-klausur-en.tex) ist eine deutsche Klausur
152 * [exsheet2-demo-klausur-en.tex](exsheet2-demo-klausur-en.tex) ist eine englische Klausur
153
154
155 ## Abschlussprüfungen
156
157 Abschlussprüfungen, etwa eine Bachelorprüfung, ist ähnlich zu einer Klausur,
158 mit wenigen Unterschieden. Da die Prüfung in unserer Anwendung für
159 Student·innen individualisiert ist, ist der Studierendenname im Titel. Die
160 Formularelement für die Benotung und die Studierendeninformationen sind
161 obsolet. Die Dauer ist durch den Prüfungsprozess vorgegeben und muss nicht am
162 Deckblatt angegeben werden. Auch die Semesterangabe hat keine Bedeutung.
163
164 Um diesen Fall abzubilden werden folgende Features unterstützt:
165 * Wenn `\duration` oder `\semester` nicht gesetzt werden, dann wird die
166 Information nicht angezeigt.
167 * Durch die Option `nostudentinfo` und `nogradeinfo` werden die jeweiligen
168 Formularelemente auf dem Deckblatt nicht angezeigt.
169
170 Ein Beipsiel [exsheet2-demo-bapruefung.tex](exsheet2-demo-bapruefung.tex)
171 befindet sich im Repository.