summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/schulmathematik/schulma-ab.cls
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/schulmathematik/schulma-ab.cls')
-rw-r--r--macros/latex/contrib/schulmathematik/schulma-ab.cls255
1 files changed, 255 insertions, 0 deletions
diff --git a/macros/latex/contrib/schulmathematik/schulma-ab.cls b/macros/latex/contrib/schulmathematik/schulma-ab.cls
new file mode 100644
index 0000000000..ba6e098cc9
--- /dev/null
+++ b/macros/latex/contrib/schulmathematik/schulma-ab.cls
@@ -0,0 +1,255 @@
+% schulmathematik bundle: document class schulma-ab
+% Version 1.0
+% 16. Februar 2020
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{schulma-ab}[2020-02-16 v1.0 Dokumentenklasse fuer Arbeitsblaetter]
+
+\RequirePackage{xparse}
+
+\ExplSyntaxOn
+
+\tl_new:N \g_schulma_ab_kurs_tl
+\tl_new:N \g_schulma_ab_thema_tl
+\tl_new:N \g_schulma_ab_bearbeiter_tl
+
+\str_new:N \g_schulma_ab_datum_str
+\str_new:N \g_schulma_ab_nummer_str
+
+\bool_new:N \g_schulma_ab_afuenfquer_bool
+\bool_new:N \g_schulma_ab_oesterreich_bool
+
+\DeclareOption {A5quer}
+ {
+ \PassOptionsToClass {a5paper} {scrartcl}
+ \bool_gset_true:N \g_schulma_ab_afuenfquer_bool
+ }
+
+\DeclareOption {AT}
+ {
+ \bool_gset_true:N \g_schulma_ab_oesterreich_bool
+ }
+
+\DeclareOption*
+ {
+ \PassOptionsToClass {\CurrentOption} {scrartcl}
+ }
+
+\ProcessOptions\relax
+
+\NewDocumentCommand \Kurs {m}
+ {
+ \tl_gset:Nn \g_schulma_ab_kurs_tl {#1}
+ }
+
+\NewDocumentCommand \Datum {m}
+ {
+ \str_set:Nn \g_schulma_ab_datum_str {#1}
+ }
+
+\NewDocumentCommand \Thema {o m}
+ {
+ \IfValueT{#1}
+ {
+ \tl_gset:Nn \g_schulma_ab_nummer_str {#1}
+ }
+ \tl_gset:Nn \g_schulma_ab_thema_tl {#2}
+ }
+
+\NewDocumentCommand \Bearbeiter {m}
+ {
+ \tl_gset:Nn \g_schulma_ab_bearbeiter_tl {#1}
+ }
+
+\LoadClass [DIV=14] {scrartcl}
+
+\RequirePackage {adjustbox}
+
+\bool_if:NTF \g_schulma_ab_oesterreich_bool
+ {
+ \RequirePackage [naustrian] {babel}
+ \RequirePackage [naustrian] {isodate}
+ }
+ {
+ \RequirePackage [ngerman] {babel}
+ \RequirePackage [ngerman] {isodate}
+ }
+
+%\RequirePackage [useregional=numeric] {datetime2} % zeigt Tag und Monat z. Zt. zweistellig an
+\RequirePackage {schulma}
+\RequirePackage {schulma-physik}
+\RequirePackage {tasks}
+\RequirePackage {enumitem}
+\RequirePackage {scrlayer-scrpage}
+
+\bool_if:NT \g_schulma_ab_afuenfquer_bool
+ {
+ \KOMAoption {paper} {landscape}
+ \KOMAoption {DIV} {11}
+ }
+
+\ExplSyntaxOff
+
+\BeforeClosingMainAux{\addtocounter{page}{-1}\label{LastPage}}
+
+\setlength\parindent{0pt}
+
+% tasks: j überspringen
+\newcommand*\@schulmaalph[1]{\ifnum #1>9 \@alph{\numexpr #1+1}\else \@alph{#1}\fi}
+\newcommand*\schulmaalph[1]{\@schulmaalph{\value{#1}}}
+
+\settasks{label-align=right,
+ item-indent=2.2em,
+ label-offset=0.5em,
+ label-width=1.3em,
+ label=\schulmaalph*),
+ after-skip=4.5pt plus2pt minus1pt}
+
+\settasks{before-skip=4.5pt plus2pt minus1pt}
+
+\addtokomafont{pagefoot}{\upshape}
+\cfoot{\pagemark/\pageref{LastPage}}
+
+%\DTMlangsetup*{twodigits=false,datesep={.\thinspace}} % Option twodigits z. Zt. nicht implementiert
+
+% isodate: Monat ggf. einstellig anzeigen:
+\numdate[arabic]
+% isodate: Tag ggf. einstellig anzeigen:
+\isotwodigitdayfalse
+% isodate: Abstand zwischen Monat und Jahr im numerischen Format:
+\monthyearsepgerman{\,}{\,}
+
+\ExplSyntaxOn
+
+\cs_new: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}
+ \printdate {\g_schulma_ab_datum_str} % isodate-Befehl
+ }
+ \tl_if_empty:NF \g_schulma_ab_thema_tl
+ {
+ \section*
+ {
+ \str_if_empty:NF \g_schulma_ab_nummer_str
+ {
+ \g_schulma_ab_nummer_str
+ \hspace {0,5em}
+ }
+ \g_schulma_ab_thema_tl
+ }
+ }
+ \tl_if_empty:NF \g_schulma_ab_bearbeiter_tl
+ {
+ \lofoot
+ {
+ \footnotesize
+ \g_schulma_ab_bearbeiter_tl
+ ,~
+ \today
+ }
+ }
+ }
+
+%\AfterEndPreamble {\schulma_ab_kopf:}
+\AtBeginDocument {\schulma_ab_kopf:}
+
+\cs_new_protected:Npn \schulma_ab_kreis:n #1
+ {
+ \tikz [ baseline = (Zahl.base) ]
+ {
+ \node [ shape=circle, fill=black!60, minimum~width=5.5mm, inner~sep=0pt ]
+ (Zahl) { \textcolor {white} { \small \sffamily #1 } } ;
+ }
+ }
+
+\NewDocumentEnvironment {Kreisliste} { }
+ {
+ \begin {enumerate} [ label=\schulma_ab_kreis:n {\arabic*},
+ labelsep=0.8em, leftmargin=1.2cm ]
+ }
+ {
+ \end {enumerate}
+ }
+
+\tl_new:N \l_schulma_ab_aufgabentitel_tl
+\tl_set:Nn \l_schulma_ab_aufgabentitel_tl {Aufgabe}
+
+\NewDocumentCommand \Aufgabentitel {m}
+ {
+ \tl_set:Nn \l_schulma_ab_aufgabentitel_tl {#1}
+ }
+
+\newcounter {Aufgabe}
+
+\newlength \Aufgabenabstand
+\setlength \Aufgabenabstand {24pt plus12pt minus8pt}
+
+\NewDocumentEnvironment {Aufgaben} { }
+ {
+ \begin {list} { }
+ {
+ \setlength \leftmargin {0pt}
+ \setlength \partopsep {0pt}
+ \setlength \topsep {0.75\Aufgabenabstand}
+ \setlength \itemsep {\Aufgabenabstand}
+ }
+ % innerhalb der Liste Originalwert verwenden
+ \setlength \topsep {9pt plus3pt minus5pt}
+ }
+ {
+ \end {list}
+ }
+
+% #1 (Stern): ohne Punkt
+\NewDocumentCommand \Aufgabe {s}
+ {
+ \item
+ \stepcounter {Aufgabe}
+ \group_begin:
+ \sffamily \bfseries
+ \l_schulma_ab_aufgabentitel_tl
+ \c_space_tl
+ \arabic {Aufgabe}
+ \IfBooleanF {#1} {.~}
+ \group_end:
+ }
+
+% #1 (Stern): ohne Punkt
+\NewDocumentCommand \Uebung {s}
+ {
+ \group_begin:
+ \tl_set:Nn \l_schulma_ab_aufgabentitel_tl {\"Ubung}
+ \Aufgabe
+ \IfBooleanT {#1} {*}
+ \group_end:
+ }
+
+\newcounter {Teilaufgabe} [Aufgabe]
+
+\newlength \Teilaufgabenabstand
+\setlength \Teilaufgabenabstand {4.5pt plus2pt minus1pt}
+
+\NewDocumentEnvironment {Teilaufgaben} { }
+ {
+ \renewcommand \labelenumi { ( \roman {enumi} ) }
+
+ \begin {list} { \stepcounter {Teilaufgabe} \alph {Teilaufgabe} ) }
+ {
+ \setlength \topsep {\Teilaufgabenabstand}
+ \setlength \itemsep {\Teilaufgabenabstand}
+ }
+ }
+ {
+ \end {list}
+ }
+
+\NewDocumentCommand \Luecke {m}
+ {
+ \raisebox {-1,5mm} { \rule {#1} {0,4pt} }
+ }
+
+\ExplSyntaxOff