% schulmathematik bundle: document class schulma-gutachten % Version 1.0 % 16. Februar 2020 \NeedsTeXFormat{LaTeX2e} \ProvidesClass{schulma-gutachten}[2020-02-16 v1.0 Dokumentenklasse fuer Gutachten ueber schriftliche Abiturklausuren] \RequirePackage{xparse} \ExplSyntaxOn \bool_new:N \g_schulma_gutachten_bell_bool \bool_new:N \g_schulma_gutachten_oesterreich_bool \bool_new:N \g_schulma_gutachten_referent_weiblich_bool \bool_new:N \g_schulma_gutachten_korreferent_weiblich_bool \DeclareOption {BELL} { \bool_gset_true:N \g_schulma_gutachten_bell_bool } \DeclareOption {AT} { \bool_gset_true:N \g_schulma_gutachten_oesterreich_bool } \DeclareOption {Referentin} { \bool_gset_true:N \g_schulma_gutachten_referent_weiblich_bool } \DeclareOption {Korreferentin} { \bool_gset_true:N \g_schulma_gutachten_korreferent_weiblich_bool } \DeclareOption* { \PassOptionsToClass {\CurrentOption} {scrartcl} } \ProcessOptions \relax \tl_new:N \g_schulma_gutachten_schulname_tl \tl_new:N \g_schulma_gutachten_schulort_tl \tl_new:N \g_schulma_gutachten_fach_tl \tl_new:N \l_schulma_gutachten_vorname_tl \tl_new:N \l_schulma_gutachten_nachname_tl \tl_new:N \l_schulma_gutachten_note_tl \int_new:N \g_schulma_gutachten_gesamtpunktzahl_int \int_new:N \l_schulma_gutachten_notenpunkte_int \int_new:N \l_schulma_gutachten_notenpunkte_vor_abwertung_int \bool_new:N \l_schulma_gutachten_pruefling_weiblich_bool \fp_new:N \l_schulma_gutachten_punktzahl_fp \fp_new:N \l_schulma_gutachten_prozentsatz_fp \msg_new:nnn {schulma-gutachten} {Schule fehlt} { Bitte~geben~Sie~mit~Hilfe~des~Befehls~\Schule~den~Namen~der~Schule~an. } \msg_new:nnn {schulma-gutachten} {Ort fehlt} { Bitte~geben~Sie~mit~Hilfe~des~Befehls~\Ort~den~Namen~der~Schule~an. } \msg_new:nnn {schulma-gutachten} {Fach fehlt} { Bitte~geben~Sie~mit~Hilfe~des~Befehls~\Fach~das~Prüfungsfach~an. } \msg_new:nnn {schulma-gutachten} {Gesamtpunktzahl fehlt} { Bitte~geben~Sie~mit~Hilfe~des~Befehls~\Gesamtpunktzahl~die~in~der~Klausur~ erreichbare~Gesamtpunktzahl~an. } \cs_generate_variant:Nn \tl_if_eq:nnTF {V} \cs_new:Npn \schulma_gutachten_notenpunkte_ermitteln: { \int_set:Nn \l_schulma_gutachten_notenpunkte_int {15} \fp_compare:nNnT {\l_schulma_gutachten_prozentsatz_fp} < {95.0}{ \int_set:Nn \l_schulma_gutachten_notenpunkte_int {14}} \fp_compare:nNnT {\l_schulma_gutachten_prozentsatz_fp} < {90}{ \int_set:Nn \l_schulma_gutachten_notenpunkte_int {13}} \fp_compare:nNnT {\l_schulma_gutachten_prozentsatz_fp} < {85}{ \int_set:Nn \l_schulma_gutachten_notenpunkte_int {12}} \fp_compare:nNnT {\l_schulma_gutachten_prozentsatz_fp} < {80}{ \int_set:Nn \l_schulma_gutachten_notenpunkte_int {11}} \fp_compare:nNnT {\l_schulma_gutachten_prozentsatz_fp} < {75}{ \int_set:Nn \l_schulma_gutachten_notenpunkte_int {10}} \fp_compare:nNnT {\l_schulma_gutachten_prozentsatz_fp} < {70}{ \int_set:Nn \l_schulma_gutachten_notenpunkte_int {09}} \fp_compare:nNnT {\l_schulma_gutachten_prozentsatz_fp} < {65}{ \int_set:Nn \l_schulma_gutachten_notenpunkte_int {08}} \fp_compare:nNnT {\l_schulma_gutachten_prozentsatz_fp} < {60}{ \int_set:Nn \l_schulma_gutachten_notenpunkte_int {07}} \fp_compare:nNnT {\l_schulma_gutachten_prozentsatz_fp} < {55}{ \int_set:Nn \l_schulma_gutachten_notenpunkte_int {06}} \fp_compare:nNnT {\l_schulma_gutachten_prozentsatz_fp} < {50}{ \int_set:Nn \l_schulma_gutachten_notenpunkte_int {05}} \fp_compare:nNnT {\l_schulma_gutachten_prozentsatz_fp} < {45}{ \int_set:Nn \l_schulma_gutachten_notenpunkte_int {04}} \fp_compare:nNnT {\l_schulma_gutachten_prozentsatz_fp} < {40}{ \int_set:Nn \l_schulma_gutachten_notenpunkte_int {03}} \fp_compare:nNnT {\l_schulma_gutachten_prozentsatz_fp} < {33}{ \int_set:Nn \l_schulma_gutachten_notenpunkte_int {02}} \fp_compare:nNnT {\l_schulma_gutachten_prozentsatz_fp} < {27}{ \int_set:Nn \l_schulma_gutachten_notenpunkte_int {01}} \fp_compare:nNnT {\l_schulma_gutachten_prozentsatz_fp} < {20}{ \int_set:Nn \l_schulma_gutachten_notenpunkte_int {00}} } \cs_new:Npn \schulma_gutachten_note_ermitteln: { \int_case:nn {\l_schulma_gutachten_notenpunkte_int} { {15} {\tl_set:Nn \l_schulma_gutachten_note_tl {sehr~gut}} {14} {\tl_set:Nn \l_schulma_gutachten_note_tl {sehr~gut}} {13} {\tl_set:Nn \l_schulma_gutachten_note_tl {sehr~gut}} {12} {\tl_set:Nn \l_schulma_gutachten_note_tl {gut}} {11} {\tl_set:Nn \l_schulma_gutachten_note_tl {gut}} {10} {\tl_set:Nn \l_schulma_gutachten_note_tl {gut}} {09} {\tl_set:Nn \l_schulma_gutachten_note_tl {befriedigend}} {08} {\tl_set:Nn \l_schulma_gutachten_note_tl {befriedigend}} {07} {\tl_set:Nn \l_schulma_gutachten_note_tl {befriedigend}} {06} {\tl_set:Nn \l_schulma_gutachten_note_tl {ausreichend}} {05} {\tl_set:Nn \l_schulma_gutachten_note_tl {ausreichend}} {04} {\tl_set:Nn \l_schulma_gutachten_note_tl {ausreichend}} {03} {\tl_set:Nn \l_schulma_gutachten_note_tl {mangelhaft}} {02} {\tl_set:Nn \l_schulma_gutachten_note_tl {mangelhaft}} {01} {\tl_set:Nn \l_schulma_gutachten_note_tl {mangelhaft}} {00} {\tl_set:Nn \l_schulma_gutachten_note_tl {ungen\"ugend}} } } \cs_new:Npn \schulma_gutachten_notenpunktausgabe:N #1 { \num [minimum-integer-digits=2] { \int_use:N #1 } ~ \int_compare:nNnTF {#1} = {1} {Notenpunkt} {Notenpunkten} } \NewDocumentCommand \Schule {m} { \tl_gset:Nn \g_schulma_gutachten_schulname_tl {#1} } \NewDocumentCommand \Ort {m} { \tl_gset:Nn \g_schulma_gutachten_schulort_tl {#1} } \NewDocumentCommand \Datum {m} { \DTMsavedate{g_schulma_gutachten_datum} {#1} } \NewDocumentCommand \Fach {m} { \tl_gset:Nn \g_schulma_gutachten_fach_tl {#1} } \NewDocumentCommand \Gesamtpunktzahl {m} { \int_gset:Nn \g_schulma_gutachten_gesamtpunktzahl_int {#1} } \NewDocumentCommand \Name { } { \bool_if:NTF \l_schulma_gutachten_pruefling_weiblich_bool {Frau~} {Herr~} \l_schulma_gutachten_nachname_tl } \NewDocumentCommand \NameDativ { } { \bool_if:NTF \l_schulma_gutachten_pruefling_weiblich_bool {Frau~} {Herrn~} \l_schulma_gutachten_nachname_tl } % #1: Vorname, #2: Nachname % #3: Geschlecht (m/w) % #4: Punktzahl % #5: Abwertung in Notenpunkten \NewDocumentEnvironment {Gutachten} {m m m m o} { \tl_set:Nn \l_schulma_gutachten_vorname_tl {#1} \tl_set:Nn \l_schulma_gutachten_nachname_tl {#2} \tl_if_eq:nnT {#3} {w} { \bool_set_true:N \l_schulma_gutachten_pruefling_weiblich_bool } \noindent \tl_if_empty:NTF \g_schulma_gutachten_schulname_tl { \msg_warning:nn {schulma-gutachten} {Schule fehlt} } { \g_schulma_gutachten_schulname_tl \hfill } Abiturpr\"ufung~ \DTMifsaveddate {g_schulma_gutachten_datum} { \DTMfetchyear{g_schulma_gutachten_datum} } { \the\year } \bigskip \begin {center} \huge \textbf {Gutachten} \\[1mm] \normalsize \bool_if:nTF {\g_schulma_gutachten_bell_bool} {\"uber~die~schriftliche~Dokumentation~zur~besonderen~Lernleistung} {\"uber~die~schriftliche~Pr\"ufungsarbeit} \\ des~Pr\"uf\babelshorthand{"|}lings \\ \Large \textbf { \l_schulma_gutachten_vorname_tl \c_space_tl \l_schulma_gutachten_nachname_tl } \\[1mm] \normalsize \tl_if_empty:NTF \g_schulma_gutachten_fach_tl { \msg_warning:nn {schulma-gutachten} {Fach fehlt} } { im~Fach~ \g_schulma_gutachten_fach_tl } \end{center} \bigskip } { \bool_if:nF {\g_schulma_gutachten_bell_bool} { \fp_set:Nn \l_schulma_gutachten_punktzahl_fp {#4} \int_compare:nNnTF {\g_schulma_gutachten_gesamtpunktzahl_int} = {0} { \msg_warning:nn {schulma-gutachten} {Gesamtpunktzahl fehlt} } { \fp_set:Nn \l_schulma_gutachten_prozentsatz_fp { round ( \l_schulma_gutachten_punktzahl_fp*100 /\g_schulma_gutachten_gesamtpunktzahl_int, 1, 1 ) } } \schulma_gutachten_notenpunkte_ermitteln: \IfValueT {#5} { \int_set:Nn \l_schulma_gutachten_notenpunkte_vor_abwertung_int { \l_schulma_gutachten_notenpunkte_int } \int_set:Nn \l_schulma_gutachten_notenpunkte_int { \l_schulma_gutachten_notenpunkte_vor_abwertung_int - #5 } } \schulma_gutachten_note_ermitteln: \bigskip \par \noindent \bool_if:NTF \l_schulma_gutachten_pruefling_weiblich_bool { Frau } { Herr } \c_space_tl \l_schulma_gutachten_nachname_tl \c_space_tl erreicht~ \num { \fp_to_decimal:N \l_schulma_gutachten_punktzahl_fp } ~von~ \int_use:N \g_schulma_gutachten_gesamtpunktzahl_int \c_space_tl Bewertungseinheiten;~ dies~entspricht~ \SI { \fp_to_decimal:N \l_schulma_gutachten_prozentsatz_fp } {\percent} .~ \IfValueTF {#5} { Auf~dieser~Grundlage~w\"are~die~Arbeit~mit~ \schulma_gutachten_notenpunktausgabe:N \l_schulma_gutachten_notenpunkte_vor_abwertung_int \c_space_tl zu~bewerten.~Aufgrund~der~beschriebenen~formalen~Fehler~wird~ die~Arbeit~um~ \int_compare:nNnTF {#5} = {1} {einen~Notenpunkt} {zwei~Notenpunkte} \c_space_tl abgewertet.~Sie~ } { Die~Arbeit~ } ist~daher~ \l_schulma_gutachten_note_tl \c_space_tl und~wird~mit \begin {center} \schulma_gutachten_notenpunktausgabe:N \l_schulma_gutachten_notenpunkte_int \end {center} bewertet. } \vfill \bigskip \par \noindent \tl_if_empty:NTF \g_schulma_gutachten_schulort_tl { \msg_warning:nn {schulma-gutachten} {Ort fehlt} } { \g_schulma_gutachten_schulort_tl,~den~ } \DTMifsaveddate {g_schulma_gutachten_datum} { \DTMusedate {g_schulma_gutachten_datum} } { \today } \hfill \begin {tabular} [t] {p{6cm}} \\ \hline \footnotesize Referent \bool_if:NT \g_schulma_gutachten_referent_weiblich_bool {in} \end{tabular} \medskip \par \noindent Ich~schlie\ss e~mich~der~Bewertung~an. \vspace {6mm} \par \noindent \tl_if_empty:NF \g_schulma_gutachten_schulort_tl { \g_schulma_gutachten_schulort_tl,~den~ } \begin {tabular} {p{5cm}} \\ \hline \end{tabular} \hfill \begin {tabular} [t] {p{6cm}} \\ \hline \footnotesize Korreferent \bool_if:NT \g_schulma_gutachten_korreferent_weiblich_bool {in} \end {tabular} \clearpage } \LoadClass [ DIV=13, fontsize=12 ] {scrartcl} \bool_if:NTF \g_schulma_gutachten_oesterreich_bool { \RequirePackage [naustrian] {babel} } { \RequirePackage [ngerman] {babel} } \RequirePackage [useregional=text] {datetime2} \RequirePackage [locale=DE] {siunitx} \pagestyle {empty} \ExplSyntaxOff