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