summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/schule
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-10-09 03:05:28 +0000
committerNorbert Preining <norbert@preining.info>2023-10-09 03:05:28 +0000
commit55c62aa6d5cc8ce94c28ac255b66a13ccd2375b2 (patch)
tree1b5eb4f2e66d4ee007cac50ea4d0f34c11cda50f /macros/latex/contrib/schule
parent9f6bac4b7884af8d5a457275e30fc5e253ff9de8 (diff)
CTAN sync 202310090305
Diffstat (limited to 'macros/latex/contrib/schule')
-rw-r--r--macros/latex/contrib/schule/README4
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.pdfbin166495 -> 167783 bytes
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.tex8
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.pdfbin183367 -> 184607 bytes
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.tex16
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_text.pdfbin0 -> 17050 bytes
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_text.tex5
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.pdfbin194670 -> 196889 bytes
-rw-r--r--macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.tex6
-rw-r--r--macros/latex/contrib/schule/doc/changelog.tex6
-rw-r--r--macros/latex/contrib/schule/doc/modulAufgaben.tex1
-rw-r--r--macros/latex/contrib/schule/doc/modulAufgabenpool.tex29
-rw-r--r--macros/latex/contrib/schule/doc/schule.pdfbin1424850 -> 1431361 bytes
-rw-r--r--macros/latex/contrib/schule/doc/schule.tex4
-rw-r--r--macros/latex/contrib/schule/latex/schule.mod.Aufgaben.code.tex8
-rw-r--r--macros/latex/contrib/schule/latex/schule.mod.Aufgabenpool.code.tex82
-rw-r--r--macros/latex/contrib/schule/latex/schule.mod.Lizenzen.code.tex24
-rw-r--r--macros/latex/contrib/schule/latex/schule.mod.Lizenzen.pakete.tex20
-rw-r--r--macros/latex/contrib/schule/latex/schule.sty2
19 files changed, 171 insertions, 44 deletions
diff --git a/macros/latex/contrib/schule/README b/macros/latex/contrib/schule/README
index 7aa5b47b5e..55cf949be6 100644
--- a/macros/latex/contrib/schule/README
+++ b/macros/latex/contrib/schule/README
@@ -12,8 +12,8 @@ sequence diagrams, object diagrams and class diagrams) as well as into
classes for written exams (tests, quizzes, teaching observations,
information sheets, worksheets, and answer keys).
------------------------------------------------------------------------
-Version: 0.8.4
-Last change: 2023/03/19
+Version: 0.9.0
+Last change: 2023/10/07
The package is still a work in progress. Open development steps are
shown in the documentation.
diff --git a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.pdf b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.pdf
index 5185edb7aa..564095dce7 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.pdf
+++ b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.tex b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.tex
index 872746a48e..994f41a4b8 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.tex
+++ b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe1/bsp_aufgabe_01.tex
@@ -13,6 +13,10 @@
\title{Beispielaufgabe 1}
\begin{document}
+ \begin{aufgabenpoolHinweis}
+ Dieses ist nur eine Beispielaufgabe, die ohne weitere Optionen auskommt.
+ \end{aufgabenpoolHinweis}
+
\begin{aufgabe}[subtitle=Erste Beispielaufgabe]
Blah blah blub.
@@ -20,7 +24,6 @@
\teilaufgabe[2] Male ein X.
\teilaufgabe[3] Schreibe einen Satz.
-
\end{teilaufgaben}
\begin{erwartungen}
\erwartung{malt ein X}{2}
@@ -37,8 +40,7 @@
\caption{Ein x}
\label{fig:x}
\end{figure}
-
\teilaufgabe Eine möglicher Satz.
\end{teilaufgaben}
\end{loesung}
-\end{document} \ No newline at end of file
+\end{document}
diff --git a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.pdf b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.pdf
index c5eb581df8..cfa4297177 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.pdf
+++ b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.tex b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.tex
index 653c53fde4..6949983ad7 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.tex
+++ b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_aufgabe.tex
@@ -12,7 +12,11 @@
\date{xx.xx.xxxx}
\title{Beispielaufgabe}
+\setAufgabenpoolOptionen{optionA,optionB}
+
\begin{document}
+ \inputOnce{bsp_text}
+
\begin{aufgabe}[subtitle=Beispielaufgabe, points=6]
Ein wirklich anderer Text für eine Aufgabe. Dazu gibt es auch die \autoref{fig:objektdiagramm}
@@ -23,7 +27,15 @@
\label{fig:objektdiagramm}
\end{figure}
- Mache etwas damit.
+ \ifAufgabenpoolOptionTF{optionA}{
+ Mache etwas damit.
+ }{
+ Dieses ist total egal.
+ }%
+ Sei glücklich.%
+ \ifAufgabenpoolOptionT{optionB}{
+ Aber mache etwas wirklich gutes.
+ }
\begin{erwartungen}
\erwartung{macht etwas damit}{5}
@@ -33,4 +45,4 @@
\begin{loesung}
Eigentlich ist es ganz egal.
\end{loesung}
-\end{document} \ No newline at end of file
+\end{document}
diff --git a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_text.pdf b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_text.pdf
new file mode 100644
index 0000000000..476f386745
--- /dev/null
+++ b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_text.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_text.tex b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_text.tex
new file mode 100644
index 0000000000..b4d4ed94bc
--- /dev/null
+++ b/macros/latex/contrib/schule/doc/Beispiele/bsp_aufgabe2/bsp_text.tex
@@ -0,0 +1,5 @@
+\documentclass[a4paper]{scrartcl}
+
+\begin{document}
+ Dieses ist ein einfacher Beispieltext. Er steht vor einer Aufgabe und erklärt etwas allgemeines.
+\end{document}
diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.pdf b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.pdf
index 09e1116c33..6be283a536 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.pdf
+++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.tex b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.tex
index 7226e7bed3..a5952eb424 100644
--- a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.tex
+++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.tex
@@ -15,7 +15,9 @@
\title{Beispiel für Aufgabenpool}
\begin{document}
+ \aufgabeninput[optionA]{bsp_aufgabe2}{bsp_aufgabe}
+
\aufgabeninput{bsp_aufgabe1}{bsp_aufgabe_01}
- \aufgabeninput{bsp_aufgabe2}{bsp_aufgabe}
-\end{document} \ No newline at end of file
+ \aufgabeninput[optionB]{bsp_aufgabe2}{bsp_aufgabe}
+\end{document}
diff --git a/macros/latex/contrib/schule/doc/changelog.tex b/macros/latex/contrib/schule/doc/changelog.tex
index aa61bf67b6..149be23c76 100644
--- a/macros/latex/contrib/schule/doc/changelog.tex
+++ b/macros/latex/contrib/schule/doc/changelog.tex
@@ -2,6 +2,12 @@
Im Laufe der Jahre wurde das Paket immer wieder erweitert. Nicht nur die Anpassung an veränderte Anforderungen, etwa bei den Unterrichtsbesuchen, sondern auch neue Funktionalitäten fließen in das Paket ein.
Die folgende Liste bietet eine Übersicht über die letzten Änderungen.
\begin{itemize}
+ \item \textbf{0.9.0} -- 2023-10-07
+ \begin{itemize}
+ \item Modul Aufgabenpool ausgebaut, damit es variable einsetzbar ist
+ \item Aufgabentemplate auch für Lösungen setzbar gemacht
+ \item Reihenfolge beim Laden von Lizenzen geändert um Problemen mit hyperxmp besser aus dem Weg zu gehen
+ \end{itemize}
\item \textbf{0.8.4} -- 2023-03-19
\begin{itemize}
\item Modul Aufgabenpool hinzugefügt
diff --git a/macros/latex/contrib/schule/doc/modulAufgaben.tex b/macros/latex/contrib/schule/doc/modulAufgaben.tex
index a9710b49e7..904f48336c 100644
--- a/macros/latex/contrib/schule/doc/modulAufgaben.tex
+++ b/macros/latex/contrib/schule/doc/modulAufgaben.tex
@@ -52,6 +52,7 @@ Die vom Schulepaket gemachten Ergänzungen sind voll kompatibel zu \pkg{xsim}, s
\begin{commands}
\command{setzeAufgabentemplate}[\marg{Templatename}] setzt das Template mit dem die folgenden Aufgaben dargestellt werden.
+ \command{setzeLoesungentemplate}[\marg{Templatename}] setzt das Template mit dem die folgenden Lösungen dargestellt werden. Diese sind identisch mit denen der Aufgaben.
\end{commands}
\subsection{Teilaufgaben}
diff --git a/macros/latex/contrib/schule/doc/modulAufgabenpool.tex b/macros/latex/contrib/schule/doc/modulAufgabenpool.tex
index f4c6d49888..9b736eb0f6 100644
--- a/macros/latex/contrib/schule/doc/modulAufgabenpool.tex
+++ b/macros/latex/contrib/schule/doc/modulAufgabenpool.tex
@@ -2,10 +2,12 @@
\label{modul:aufgabenpool}
Die Idee für das Modul \module{Aufgabenpool} bestand darin, dass Aufgaben einfach bei verschiedenen Klassenarbeiten oder Klausuren wieder genutzt werden können. Diese Aufgaben dürfen auch in verschiedenen Verzeichnissen liegen und sich einzeln setzen lassen. Besondere Berücksichtigung benötigen dabei eingebundene Dateien, wie z.\,B. Bilder oder Programmdateien, die relativ zur Aufgabendatei, an einem anderen Ort liegen als die Quelldatei für die Klausur. Für diesen Fall wird auf ein \textit{basedir} gesetzt, dass für jede eingebundene Aufgabe entsprechend gesetzt wird. Mit der Nutzung über \cs{getBasedir} lässt sich jede Datei relativ zur Aufgabendatei einbinden. Dieses gilt auch innerhalb der \env{loesung}-Umgebung.
+Zur Verwendung einer Aufgabe aus dem Aufgabenpool lassen sich auch Hinweise in der Aufgabe ablegen. Diese werden dann nicht mit ausgegeben, wenn die Aufgabe in einer Klassenarbeit bzw. Klausur mit eingebunden wird.
+
\subsection{Befehle}
\begin{commands}
- \command{aufgabeninput}[\marg{Verzeichnis}\marg{Datei}]
- Bindet die Datei mit der Aufgabe ein, die im angegebenen Verzeichnis steht. Die Angabe des Verzeichnis wird als Grundlage für das \textit{basedir} für diese Aufgabe genutzt.
+ \command{aufgabeninput}[\oarg{optionen}\marg{Verzeichnis}\marg{Datei}]
+ Bindet die Datei mit der Aufgabe ein, die im angegebenen Verzeichnis steht. Die Angabe des Verzeichnis wird als Grundlage für das \textit{basedir} für diese Aufgabe genutzt. Als optionalen Parameter lassen sich durch Komma getrennte Optionen angeben. Dadurch lässt sich in der eigentlichen Aufgabe steuern, ob bestimmte Elemente gesetzt werden sollen oder nicht. Näheres unter \ref{sec:optionen_aufgabenpool}.
\command{getBasedir}
Liefert das aktuelle \textit{basedir} zurück, um es in einer Aufgabe als Pfadergänzung bei der Einbindung von Dateien zu nutzen.
\command{setBasedir}
@@ -15,4 +17,27 @@ Die Idee für das Modul \module{Aufgabenpool} bestand darin, dass Aufgaben einfa
aufgabe/begin-hook = \setBasedir,
}
\end{sourcecode}
+ \command{inputOnce}[\marg{Datei}]\sinceversion{0.9.0}
+ Die angegebene Datei wird eingebunden. Dieses geschieht innerhalb eines Dokumentes aber genau einmal, auch wenn dieser Aufruf in mehreren Aufgaben angegeben ist. So kann z.\,B. auf einen gemeinsamen Text zurückgegriffen werden. Das Basedir wird im Pfad zur Datei mit berücksichtigt, so dass \cs*{getBasedir} nicht in der Pfadangabe mit genutzt werden darf.
+\end{commands}
+
+\subsection{Umgebungen}
+\begin{environments}
+ \environment{aufgabenpoolHinweis}\sinceversion{0.9.0}
+ Innerhalb dieser Umgebung können Hinweise zur Aufgabe gemacht werden, die an den Steller der Arbeit bzw. Klausur gerichtet sind. Diese werden dann in der einzelnd stehenden Aufgabe auch angezeigt. Wird die Aufgabe in einer Klassenarbeit bzw. Klausur eingebunden, werden diese Hinweise nicht mit gesetzt.
+\end{environments}
+
+\subsection{Optionen an Aufgaben}\sinceversion{0.9.0}\label{sec:optionen_aufgabenpool}
+Zu jeder Aufgabe lassen sich einstellbare Optionen angeben. Mit diesen kann man regeln, ob bestimmte Teile im fertigen Dokument mit eingebunden werden sollen oder nicht. So lassen sich zum Beispiel bestimmte Teilaufgaben ausklammern und nicht bei jeder Nutzung der Aufgabe darstellen. Es gibt auch die Möglichkeit die Einbindung weiterer Dokumente so zu regeln, dass sie einmal in einer Klassenarbeit/Klausur gesetzt werden, auch wenn sie in mehreren Aufgaben aus dem Aufgabenpool vorkommen.
+
+\subsubsection{Befehle}
+\begin{commands}
+ \command{ifAufgabenpoolOptionTF}[\marg{Optionname}\marg{<Wahr>}\marg{<Falsch>}]
+ Dieses bietet die Möglichkeit anhand der gewählten Option bestimmte Teile anzeigen zu lassen oder nicht. Der Wahr-Teil wird ausgeführt, wenn die angegeben Option gewählt ist. Gleiches gilt für den Falsch-Teil, wenn die Option nicht gewählt ist. Zur Vereinfachung gibt es diesen Befehl auch nur mit dem Wahr- oder Falsch-Teil.
+ \command{ifAufgabenpoolOptionT}[\marg{Optionname}\marg{<Wahr>}]
+ Siehe \cs*{ifAufgabenpoolOptionTF}.
+ \command{ifAufgabenpoolOptionF}[\marg{Optionname}\marg{<Falsch>}]
+ Siehe \cs*{ifAufgabenpoolOptionTF}
+ \command{setAufgabenpoolOptionen}[\marg{Optionennamen}]
+ Dieses kann im Kopf der Aufgabendatei genutzt werden, um die Optionen zu setzen. So lassen sich die verschiedenen Ansichten bereits im Aufgabendokument anzeigen.
\end{commands}
diff --git a/macros/latex/contrib/schule/doc/schule.pdf b/macros/latex/contrib/schule/doc/schule.pdf
index 25ecb12e63..1129996f96 100644
--- a/macros/latex/contrib/schule/doc/schule.pdf
+++ b/macros/latex/contrib/schule/doc/schule.pdf
Binary files differ
diff --git a/macros/latex/contrib/schule/doc/schule.tex b/macros/latex/contrib/schule/doc/schule.tex
index 7e4e9fad3c..e2621da5a5 100644
--- a/macros/latex/contrib/schule/doc/schule.tex
+++ b/macros/latex/contrib/schule/doc/schule.tex
@@ -52,8 +52,8 @@
\setcnltx{
name = schule ,
title = schule ,
- version = 0.8.4 ,
- date = 2023-03-19 ,
+ version = 0.9.0 ,
+ date = 2023-10-07 ,
subtitle = {\LaTeX-Klassen und Pakete für den Einsatz im Bereich der Schule},
info = Paketdokumentation ,
authors = {Johannes Pieper, Johannes Kuhaupt, Ludger Humbert, Andr\'e Hilbig, Adrian Salamon, Daniel Spittank} ,
diff --git a/macros/latex/contrib/schule/latex/schule.mod.Aufgaben.code.tex b/macros/latex/contrib/schule/latex/schule.mod.Aufgaben.code.tex
index d38890750d..1ea304ecf4 100644
--- a/macros/latex/contrib/schule/latex/schule.mod.Aufgaben.code.tex
+++ b/macros/latex/contrib/schule/latex/schule.mod.Aufgaben.code.tex
@@ -90,8 +90,16 @@
%Setzten des Aufgabentemplates
\NewDocumentCommand{\setzeAufgabentemplate}{m}{
\xsimsetup{aufgabe/template=#1}
+ \xsimsetup{aufgabe*/template=#1}
}
+%Setzten des Lösungtemplates
+\NewDocumentCommand{\setzeLoesungentemplate}{m}{
+ \xsimsetup{loesung/template=#1}
+ \xsimsetup{loesung*/template=#1}
+}
+
+
% Teilaufgaben
% --------------------------------------------------------------------
diff --git a/macros/latex/contrib/schule/latex/schule.mod.Aufgabenpool.code.tex b/macros/latex/contrib/schule/latex/schule.mod.Aufgabenpool.code.tex
index 0c27afb1fb..76e66d9795 100644
--- a/macros/latex/contrib/schule/latex/schule.mod.Aufgabenpool.code.tex
+++ b/macros/latex/contrib/schule/latex/schule.mod.Aufgabenpool.code.tex
@@ -1,21 +1,83 @@
-\newcommand{\basedir}{.}
-
\ExplSyntaxOn
-\DeclareDocumentCommand{\setBasedir}{}{
- \exp_args:Nnf\SetExerciseProperty{basedir}{\basedir}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Optionen für den Aufgabenpool
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\clist_new:N \g__schule_aufgabenoptionen_clist
+
+\DeclareDocumentCommand{\ifAufgabenpoolOptionTF}{m m m}{
+ \clist_if_in:NnTF \g__schule_aufgabenoptionen_clist {#1} {#2} {#3}
+}
+
+\DeclareDocumentCommand{\ifAufgabenpoolOptionT}{m m}{
+ \clist_if_in:NnT \g__schule_aufgabenoptionen_clist {#1} {#2}
+}
+
+\DeclareDocumentCommand{\ifAufgabenpoolOptionF}{m m}{
+ \clist_if_in:NnF \g__schule_aufgabenoptionen_clist {#1} {#2}
+}
+
+\DeclareExerciseProperty-{poolOptionen}
+
+\DeclareDocumentCommand{\setAufgabenpoolOptionen}{m}{
+ \clist_set:Nn \g__schule_aufgabenoptionen_clist {#1}%
}
-\DeclareDocumentCommand{\aufgabeninput}{mm}{
- \DeclareDocumentCommand{\basedir}{}{#1}
- \input{#1/#2}
+\DeclareDocumentCommand{\set@AufgabenpoolOptionen@Property}{}{
+ \exp_args:Nnf\SetExerciseProperty{poolOptionen}{\clist_use:Nn \g__schule_aufgabenoptionen_clist {,}}%
}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Basedir Elemente
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\str_new:N \g__schule_basedir_string
+\str_gset:Nn \g__schule_basedir_string {.}
+
\DeclareExerciseProperty-{basedir}
+\DeclareDocumentCommand{\setBasedir}{}{
+ \exp_args:Nnf\SetExerciseProperty{basedir}{\str_use:N \g__schule_basedir_string}%
+}
+
\DeclareDocumentCommand{\getBasedir}{}{
- \GetExerciseProperty{basedir}
+ \str_use:N \g__schule_basedir_string
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Aufgabenhinweise
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\bool_new:N \g__schule_aufgabenhinweis_bool
+\bool_gset_true:N \g__schule_aufgabenhinweis_bool
+\NewDocumentEnvironment{aufgabenpoolHinweis}{+b}{
+ \bool_if:NT \g__schule_aufgabenhinweis_bool {#1}
+}{}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Aufgabeneinbindung
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\DeclareDocumentCommand{\aufgabeninput}{o m m}{
+ \bool_gset_false:N \g__schule_aufgabenhinweis_bool
+ \str_gset:Nn \g__schule_basedir_string {#2}
+ \clist_set:Nn \g__schule_aufgabenoptionen_clist {#1}
+ \input{#2/#3}
+ \bool_gset_true:N \g__schule_aufgabenhinweis_bool
}
+
\xsimsetup{
- aufgabe/begin-hook = \setBasedir,
+ aufgabe/begin-hook = \setBasedir\set@AufgabenpoolOptionen@Property,
+ loesung/begin-hook = \clist_set:Nx \g__schule_aufgabenoptionen_clist {\GetExerciseProperty{poolOptionen}} \str_gset:Nx \g__schule_basedir_string {\GetExerciseProperty{basedir}},
}
-\ExplSyntaxOff \ No newline at end of file
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% InputOnce
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\clist_new:N \g__schule_inputonce_clist
+
+\DeclareDocumentCommand{\inputOnce}{m}{
+ \clist_if_in:NnF \g__schule_inputonce_clist {#1} {
+ \clist_gput_right:Nn \g__schule_inputonce_clist {#1}
+ \input{\getBasedir/#1}
+ }
+}
+
+\ExplSyntaxOff
diff --git a/macros/latex/contrib/schule/latex/schule.mod.Lizenzen.code.tex b/macros/latex/contrib/schule/latex/schule.mod.Lizenzen.code.tex
index 56d4e61952..661a2c96b5 100644
--- a/macros/latex/contrib/schule/latex/schule.mod.Lizenzen.code.tex
+++ b/macros/latex/contrib/schule/latex/schule.mod.Lizenzen.code.tex
@@ -2,6 +2,30 @@
% Lizenz des Dokuments *
% ********************************************************************
+
+% Lizenz
+% Paket hier laden, damit es mit der Reihenfolge zu hyperref nicht in Konflikt steht
+\IfEqCase{\schule@lizenz}{ %
+ % Lizenz: CC-BY-NC-SA-EU 4.0
+ {cc-by-nc-sa-eu-4}{ %
+ \RequirePackage[type={CC},modifier={by-nc-sa},version={4.0},hyperxmp=\schule@hyperxmp]{doclicense}
+ }%
+ % Lizenz: CC-BY-NC-SA 4.0
+ {cc-by-nc-sa-4}{ %
+ \RequirePackage[type={CC},modifier={by-nc-sa},version={4.0},hyperxmp=\schule@hyperxmp]{doclicense}
+ }%
+ % Lizenz: CC-BY-SA 4.0
+ {cc-by-sa-4}{ %
+ \RequirePackage[type={CC},modifier={by-sa},version={4.0},hyperxmp=\schule@hyperxmp]{doclicense}
+ }%
+ {cc-by-4}{ %
+ \RequirePackage[type={CC},modifier={by},version={4.0},hyperxmp=\schule@hyperxmp]{doclicense}
+ }%
+}[%
+ % Sonstiges
+]
+
+
% Lizenzname
% ********************************************************************
% Kurz
diff --git a/macros/latex/contrib/schule/latex/schule.mod.Lizenzen.pakete.tex b/macros/latex/contrib/schule/latex/schule.mod.Lizenzen.pakete.tex
index 8bfd6f7305..285d860b76 100644
--- a/macros/latex/contrib/schule/latex/schule.mod.Lizenzen.pakete.tex
+++ b/macros/latex/contrib/schule/latex/schule.mod.Lizenzen.pakete.tex
@@ -2,24 +2,4 @@
% * Paketabhängigkeiten *
% ********************************************************************
-% Lizenz
-\IfEqCase{\schule@lizenz}{ %
- % Lizenz: CC-BY-NC-SA-EU 4.0
- {cc-by-nc-sa-eu-4}{ %
- \RequirePackage[type={CC},modifier={by-nc-sa},version={4.0},hyperxmp=\schule@hyperxmp]{doclicense}
- }%
- % Lizenz: CC-BY-NC-SA 4.0
- {cc-by-nc-sa-4}{ %
- \RequirePackage[type={CC},modifier={by-nc-sa},version={4.0},hyperxmp=\schule@hyperxmp]{doclicense}
- }%
- % Lizenz: CC-BY-SA 4.0
- {cc-by-sa-4}{ %
- \RequirePackage[type={CC},modifier={by-sa},version={4.0},hyperxmp=\schule@hyperxmp]{doclicense}
- }%
- {cc-by-4}{ %
- \RequirePackage[type={CC},modifier={by},version={4.0},hyperxmp=\schule@hyperxmp]{doclicense}
- }%
-}[%
- % Sonstiges
-]
\RequirePackage{ccicons}
diff --git a/macros/latex/contrib/schule/latex/schule.sty b/macros/latex/contrib/schule/latex/schule.sty
index 27f9a1775c..ac95a93be7 100644
--- a/macros/latex/contrib/schule/latex/schule.sty
+++ b/macros/latex/contrib/schule/latex/schule.sty
@@ -1,5 +1,5 @@
\NeedsTeXFormat{LaTeX2e}[2011/11/11]
-\ProvidesPackage{schule}[2023/03/19 v0.8.4 %
+\ProvidesPackage{schule}[2023/10/07 v0.9.0 %
Kommandos fuer die Schule]
% ********************************************************************