diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/schulmathematik/schulma-klausur.cls')
-rw-r--r-- | Master/texmf-dist/tex/latex/schulmathematik/schulma-klausur.cls | 510 |
1 files changed, 510 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/schulmathematik/schulma-klausur.cls b/Master/texmf-dist/tex/latex/schulmathematik/schulma-klausur.cls new file mode 100644 index 00000000000..6026d0d8569 --- /dev/null +++ b/Master/texmf-dist/tex/latex/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 |