summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/schulmathematik/schulma-klausur.cls
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/schulmathematik/schulma-klausur.cls')
-rw-r--r--macros/latex/contrib/schulmathematik/schulma-klausur.cls510
1 files changed, 510 insertions, 0 deletions
diff --git a/macros/latex/contrib/schulmathematik/schulma-klausur.cls b/macros/latex/contrib/schulmathematik/schulma-klausur.cls
new file mode 100644
index 0000000000..6026d0d856
--- /dev/null
+++ b/macros/latex/contrib/schulmathematik/schulma-klausur.cls
@@ -0,0 +1,510 @@
+% schulmathematik bundle: document class schulma-klausur
+% Version 1.0
+% 16. Februar 2020
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{schulma-klausur}[2020-02-16 v1.0 Dokumentenklasse fuer Klausuren]
+
+\RequirePackage{xparse}
+\RequirePackage{etoolbox}
+
+\ExplSyntaxOn
+
+\str_new:N \g_schulma_klausur_titel_str
+\str_new:N \g_schulma_klausur_teiltitel_str
+\str_new:N \g_schulma_klausur_bearbeitungszeit_str
+
+\tl_new:N \g_schulma_klausur_nummer_tl
+\tl_new:N \g_schulma_klausur_untertitel_tl
+\tl_new:N \g_schulma_klausur_hilfsmittel_tl
+\tl_new:N \l_schulma_klausur_aufgabentitel_tl
+
+\bool_new:N \g_schulma_klausur_schriftliche_lernkontrolle_bool
+\bool_new:N \g_schulma_klausur_zwei_gruppen_bool
+\bool_new:N \g_schulma_klausur_gruppe_a_bool
+\bool_new:N \g_schulma_klausur_pqformel_bool
+\bool_new:N \g_schulma_klausur_differenzenquotient_bool
+\bool_new:N \g_schulma_klausur_differentialquotient_bool
+\bool_new:N \g_schulma_klausur_musterloesung_bool
+
+\int_new:N \g_schulma_klausur_anzahl_hilfen_int
+
+\clist_new:N \l_schulma_klausur_notenliste_clist
+
+\tl_const:Nn \c_schulma_klausur_pqformel_tl
+ {
+ $p$-$q$-Formel:
+ \[ x\sb{1;2} = - \frac{p}{2} \pm \sqrt { \left(\frac{p}{2}\right)^2-q } \]
+ }
+
+\tl_const:Nn \c_schulma_klausur_differenzenquotient_tl
+ {
+ Differenzenquotient:
+ \[ m = \frac {f(x\sb{2})-f(x\sb{1})} {x\sb{2}-x\sb{1}} \]
+ }
+
+\tl_const:Nn \c_schulma_klausur_differentialquotient_tl
+ {
+ Differentialquotient:
+ \[ f' ( x\sb{0} ) = \lim \sb { x \rightarrow x\sb{0} }
+ \frac {f(x)-f(x\sb{0})} {x-x\sb{0}} \]
+ }
+
+\tl_set:Nn \l_schulma_klausur_aufgabentitel_tl {Aufgabe}
+
+\bool_gset_true:N \g_schulma_klausur_gruppe_a_bool
+
+\DeclareOption {SLK}
+ {
+ \bool_gset_true:N \g_schulma_klausur_schriftliche_lernkontrolle_bool
+ }
+
+\DeclareOption {p-q-Formel}
+ {
+ \int_incr:N \g_schulma_klausur_anzahl_hilfen_int
+ \bool_set_true:N \g_schulma_klausur_pqformel_bool
+ }
+
+\DeclareOption {Differenzenquotient}
+ {
+ \int_incr:N \g_schulma_klausur_anzahl_hilfen_int
+ \bool_set_true:N \g_schulma_klausur_differenzenquotient_bool
+ }
+
+\DeclareOption {Differentialquotient}
+ {
+ \int_incr:N \g_schulma_klausur_anzahl_hilfen_int
+ \bool_set_true:N \g_schulma_klausur_differentialquotient_bool
+ }
+
+\DeclareOption {A5quer}
+ {
+ \PassOptionsToClass {A5quer} {schulma-ab}
+ }
+
+\DeclareOption {GruppeA}
+ {
+ \bool_gset_true:N \g_schulma_klausur_zwei_gruppen_bool
+ }
+
+\DeclareOption {GruppeB}
+ {
+ \bool_gset_true:N \g_schulma_klausur_zwei_gruppen_bool
+ \bool_gset_false:N \g_schulma_klausur_gruppe_a_bool
+ }
+
+\DeclareOption {Musterloesung}
+ {
+ \bool_gset_true:N \g_schulma_klausur_musterloesung_bool
+ }
+
+\DeclareOption*
+ {
+ \PassOptionsToClass {\CurrentOption} {schulma-ab}
+ \PassOptionsToClass {\CurrentOption} {schulma-praes}
+ }
+
+\ProcessOptions \relax
+
+\bool_if:NTF \g_schulma_klausur_schriftliche_lernkontrolle_bool
+ {
+ \str_gset:Nn \g_schulma_klausur_titel_str {Schriftliche~Lernkontrolle}
+ }
+ {
+ \str_gset:Nn \g_schulma_klausur_titel_str {Klausur}
+ }
+
+\PassOptionsToPackage {override} {xcolor}
+
+\NewDocumentCommand \Nr {m}
+ {
+ \tl_gset:Nn \g_schulma_klausur_nummer_tl {#1}
+ }
+
+\bool_if:NTF \g_schulma_klausur_musterloesung_bool
+ {
+ \LoadClass [t] {schulma-praes}
+
+ \tl_set:Nn \g_schulma_praes_nummer_tl
+ {
+ Musterl\"osung~der~
+ \tl_if_empty:NF \g_schulma_klausur_nummer_tl
+ {
+ \g_schulma_klausur_nummer_tl.~
+ }
+ \bool_if:NTF \g_schulma_klausur_schriftliche_lernkontrolle_bool
+ {
+ schriftlichen~Lernkontrolle
+ }
+ {
+ Klausur
+ }
+ \DTMifsaveddate {g_schulma_klausur_klausurdatum}
+ {
+ \c_space_tl
+ vom~
+ \DTMusedate {g_schulma_klausur_klausurdatum}
+ }
+ {} % \DTMifsaveddate hat drei Argumente
+ }
+
+ \newcounter {Aufgabe}
+ \resetcounteronoverlays {Aufgabe}
+
+ \NewDocumentCommand \Aufgabe {s o d()}
+ {
+ \stepcounter {Aufgabe}
+ \frametitle
+ {
+ \l_schulma_klausur_aufgabentitel_tl
+ \c_space_tl
+ \arabic {Aufgabe}
+ \IfValueT {#2} { \c_colon_str \c_space_tl #2 }
+ }
+ \FarbeAufgabe
+ }
+
+ \newcounter {Teilaufgabe} [Aufgabe]
+ \resetcounteronoverlays {Teilaufgabe}
+
+ \newlength \Teilaufgabenabstand
+ \setlength \Teilaufgabenabstand {4.5pt plus2pt minus1pt}
+
+ \NewDocumentEnvironment {Teilaufgaben} { }
+ {
+ \begin {list} { \stepcounter {Teilaufgabe} \alph {Teilaufgabe} ) }
+ {
+ \setlength \topsep {\Teilaufgabenabstand}
+ \setlength \itemsep {\Teilaufgabenabstand}
+ \FarbeAufgabe
+ }
+ }
+ {
+ \end {list}
+ }
+
+ \NewDocumentEnvironment {Lsg} {s}
+ % Stern: Lösung beginnt mit einer Gleichung, kein Abstand erforderlich
+ {
+ \IfBooleanF {#1}
+ {
+ \par
+ \medskip
+ }
+
+ \FarbeLoesung
+ }
+ {
+ }
+
+ \RenewDocumentCommand \Datum {m}
+ {
+ \DTMsavedate {g_schulma_klausur_klausurdatum} {#1}
+ }
+ }
+ {
+ \LoadClass {schulma-ab}
+
+ \AfterEndPreamble { \begin {Aufgaben} }
+ \pretocmd {\enddocument}
+ {
+ \end {Aufgaben}
+ \par
+ \int_compare:nNnT {\g_schulma_klausur_anzahl_hilfen_int} > {1}
+ {
+ \vfill
+ \textsl {Hilfen:}
+ \begin {itemize}
+
+ \bool_if:NT \g_schulma_klausur_pqformel_bool
+ {
+ \item
+ \c_schulma_klausur_pqformel_tl
+ }
+ \bool_if:NT \g_schulma_klausur_differenzenquotient_bool
+ {
+ \item
+ \c_schulma_klausur_differenzenquotient_tl
+ }
+ \bool_if:NT \g_schulma_klausur_differentialquotient_bool
+ {
+ \item
+ \c_schulma_klausur_differentialquotient_tl
+ }
+
+ \end {itemize}
+ }
+ \int_compare:nNnT {\g_schulma_klausur_anzahl_hilfen_int} = {1}
+ {
+ \vfill
+ \textsl {Hilfe:} ~
+
+ \bool_if:NT \g_schulma_klausur_pqformel_bool
+ {
+ \c_schulma_klausur_pqformel_tl
+ }
+ \bool_if:NT \g_schulma_klausur_differenzenquotient_bool
+ {
+ \c_schulma_klausur_differenzenquotient_tl
+ }
+ \bool_if:NT \g_schulma_klausur_differentialquotient_bool
+ {
+ \c_schulma_klausur_differentialquotient_tl
+ }
+ }
+ }{}{} % pretocmd hat vier Argumente
+
+ \RenewDocumentCommand \Aufgabe {s o d()}
+ {
+ \item
+ \stepcounter {Aufgabe}
+ \group_begin:
+ \sffamily \bfseries
+ \l_schulma_klausur_aufgabentitel_tl
+ \c_space_tl
+ \arabic {Aufgabe}
+ \IfValueT {#3}
+ {
+ \mdseries
+ \rmfamily
+ \slshape
+ \c_space_tl
+ (#3~Punkte)
+ }
+ \IfBooleanF {#1} {.}
+ \group_end:
+ \peek_catcode:NF \c_space_token {\c_space_tl}
+ }
+
+ \bool_if:NTF \g_schulma_ab_afuenfquer_bool
+ {
+ \RequirePackage [top=2.7cm, bottom=3cm, hmargin=2.5cm] {geometry}
+ }
+ {
+ \RequirePackage [top=2.7cm, hmargin=2.5cm] {geometry}
+ }
+
+ \addtokomafont {pagefoot} {\slshape}
+ \addtokomafont {pagenumber} {\slshape}
+ \rohead { Name:~ \raisebox {-1mm} { \rule {7cm} {0,4pt} } }
+ \cfoot { Seite~ \pagemark \c_space_tl von~ \pageref {LastPage} }
+
+ \RequirePackage {comment}
+ \excludecomment {Lsg}
+ \RequirePackage {beamerarticle}
+ }
+
+\cs_new:Npn \schulma_klausur_notentabelle:n #1
+ {
+ \clist_set:Nn \l_schulma_klausur_notenliste_clist {#1}
+ \begin {tabular} { * {5} {c|} c }
+ 1 & 2 & 3 & 4 & 5 & 6
+ \tabularnewline
+ \hline
+ \int_step_inline:nnnn {1} {1} {6}
+ {
+ \int_zero:N \l_tmpa_int
+ \clist_map_inline:Nn \l_schulma_klausur_notenliste_clist
+ {
+ \int_compare:nNnT {####1} = {##1}
+ {
+ \int_incr:N \l_tmpa_int
+ }
+ }
+ \int_compare:nNnF {\l_tmpa_int} = {0} {\int_use:N \l_tmpa_int}
+ \int_compare:nNnF {##1} = {6} {&}
+ }
+ \end {tabular}
+ }
+
+\cs_new:Npn \schulma_klausur_notenpunkttabelle:n #1
+ {
+ \clist_set:Nn \l_schulma_klausur_notenliste_clist {#1}
+ \setlength \tabcolsep {0pt}
+ \begin {tabular}
+ {
+ * {5}
+ {
+ > {\centering} p{0,06\linewidth}
+ > {\centering} p{0,06\linewidth}
+ > {\centering} p{0,06\linewidth} |
+ }
+ > {\centering} p{0,06\linewidth}
+ }
+ 15 & 14 & 13 & 12 & 11 & 10 & 9 & 8 & 7 & 6 & 5 & 4 & 3 & 2 & 1 & 0
+ \tabularnewline
+ \hline
+ \int_step_inline:nnnn {15} {-1} {0}
+ {
+ \int_zero:N \l_tmpa_int
+ \clist_map_inline:Nn \l_schulma_klausur_notenliste_clist
+ {
+ \int_compare:nNnT {####1} = {##1}
+ {
+ \int_incr:N \l_tmpa_int
+ }
+ }
+ \int_compare:nNnF {\l_tmpa_int} = {0} {\int_use:N \l_tmpa_int}
+ \int_compare:nNnF {##1} = {0} {&}
+ }
+ \end {tabular}
+ }
+
+\RequirePackage [useregional=text] {datetime2}
+
+% \DTMsetregional % Datum in Langform anzeigen (auskommentiert, da datetime2 z. Zt. erst in dieser Klasse geladen wird)
+
+\NewDocumentCommand \Klausurtitel {m}
+ {
+ \str_gset:Nn \g_schulma_klausur_titel_str {#1}
+ }
+
+\NewDocumentCommand \Klausuruntertitel {m}
+ {
+ \tl_gset:Nn \g_schulma_klausur_untertitel_tl {#1}
+ }
+
+\NewDocumentCommand \Klausurteiltitel {m}
+ {
+ \str_gset:Nn \g_schulma_klausur_teiltitel_str {#1}
+ }
+
+\NewDocumentCommand \Bearbeitungszeit {m}
+ {
+ \str_gset:Nn \g_schulma_klausur_bearbeitungszeit_str {#1}
+ }
+
+\NewDocumentCommand \Hilfsmittel {m}
+ {
+ \tl_gset:Nn \g_schulma_klausur_hilfsmittel_tl {#1}
+ }
+
+\NewDocumentCommand \Loesungsdatum {m}
+ {
+ % \date { \DTMdate {#1} }
+ \date { \printdate {#1} } % isodate-Befehl
+ }
+
+\NewDocumentCommand \Gruppen {mm}
+ {
+ \bool_if:NTF \g_schulma_klausur_gruppe_a_bool {#1} {#2}
+ }
+
+\DeclareDocumentCommand \Aufgabentitel {m}
+ {
+ \tl_set:Nn \l_schulma_klausur_aufgabentitel_tl {#1}
+ }
+
+\NewDocumentCommand \Notenspiegel {m}
+ {
+ \bool_if:NT \g_schulma_klausur_musterloesung_bool
+ {
+ \begin {frame}
+ \frametitle {Notenspiegel}
+ \begin {center}
+ \LARGE
+ \schulma_klausur_notentabelle:n {#1}
+ \end {center}
+ \end {frame}
+ }
+ }
+
+\NewDocumentCommand \Notenpunktspiegel {m}
+ {
+ \bool_if:NT \g_schulma_klausur_musterloesung_bool
+ {
+ \begin {frame}
+ \begin {center}
+ \frametitle {Notenspiegel}
+ \large
+ \schulma_klausur_notenpunkttabelle:n {#1}
+ \end {center}
+ \end {frame}
+ }
+ }
+
+\cs_set:Npn \schulma_ab_kopf:
+ {
+ \noindent
+ \parbox [t] {5cm} {\g_schulma_ab_kurs_tl}
+ \hfill
+ \str_if_empty:NF \g_schulma_ab_datum_str
+ {
+ \DTMdate {\g_schulma_ab_datum_str}
+ }
+
+ \begin {center}
+ \sffamily
+ \bfseries
+ \Large
+ \g_schulma_klausur_titel_str
+ \tl_if_empty:NF \g_schulma_klausur_nummer_tl
+ {
+ \c_space_tl
+ Nr.~
+ \g_schulma_klausur_nummer_tl
+ }
+
+ \bool_if:NT \g_schulma_klausur_zwei_gruppen_bool
+ {
+ \c_space_tl
+ \bool_if:NTF \g_schulma_klausur_gruppe_a_bool {(A)} {(B)}
+ }
+
+ \tl_if_empty:NF \g_schulma_klausur_untertitel_tl
+ {
+ \par \smallskip
+ \normalsize
+ \g_schulma_klausur_untertitel_tl
+ }
+
+ \str_if_empty:NF \g_schulma_klausur_teiltitel_str
+ {
+ \par \vspace {3ex}
+ \large
+ \textit {\g_schulma_klausur_teiltitel_str}
+ }
+
+ \str_if_empty:NF \g_schulma_klausur_bearbeitungszeit_str
+ {
+ \par \smallskip
+ \normalsize
+ \rmfamily
+ \mdseries
+ \textsl {Bearbeitungszeit:} ~
+ \g_schulma_klausur_bearbeitungszeit_str \, min
+ }
+
+ \tl_if_empty:NF \g_schulma_klausur_hilfsmittel_tl
+ {
+ \par \smallskip
+ \normalsize
+ \rmfamily
+ \mdseries
+ \textsl {Hilfsmittel:} ~
+ \g_schulma_klausur_hilfsmittel_tl
+ }
+
+ \end {center}
+ }
+
+\NewDocumentCommand \FarbeAufgabe { }
+ {
+ \usebeamercolor [fg] {frametitle}
+ }
+
+\NewDocumentCommand \FarbeLoesung { }
+ {
+ \usebeamercolor [fg] {normal~text}
+ }
+
+\NewDocumentCommand \NurAufgabe {+m}
+ {
+ \bool_if:NF \g_schulma_klausur_musterloesung_bool {#1}
+ }
+
+\NewDocumentCommand \NurLoesung {+m}
+ {
+ \bool_if:NT \g_schulma_klausur_musterloesung_bool {#1}
+ }
+
+\ExplSyntaxOff