diff options
Diffstat (limited to 'macros/latex/contrib/schule')
31 files changed, 174 insertions, 140 deletions
diff --git a/macros/latex/contrib/schule/README b/macros/latex/contrib/schule/README index 55cf949be6..01d7ce215e 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.9.0 -Last change: 2023/10/07 +Version: 0.10.0 +Last change: 2023/04/01 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/beispiel-ab.pdf b/macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.pdf Binary files differindex 645bf09dbe..f5f0a98d7f 100644 --- a/macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.pdf +++ b/macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.pdf diff --git a/macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.tex b/macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.tex index 5d02fbda96..e251f76463 100644 --- a/macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.tex +++ b/macros/latex/contrib/schule/doc/Beispiele/beispiel-ab.tex @@ -67,11 +67,9 @@ \teilaufgabe Keine Aufgabe \end{teilaufgaben} \end{loesung} - \begin{erwartungen} - \erwartung{\weva gibt eine Lösung an.}{1} - \erwartung{erfüllt eine \so{ehrlich völlig überzogene} Erwartung.}{10} - \erwartung{gibt nicht auf.}{0}[10] - \end{erwartungen} + \erwartung{\weva gibt eine Lösung an.}{1} + \erwartung{erfüllt eine \so{ehrlich völlig überzogene} Erwartung.}{10} + \erwartung{gibt nicht auf.}{0}[10] \begin{bearbeitungshinweis} \begin{teilaufgaben} \teilaufgabe Man kann auch Hinweise geben. @@ -93,19 +91,17 @@ \begin{loesung} Eine Lösung. \end{loesung} - \begin{erwartungen} - \erwartung{hat den {\LARGE Text} \textcolor{red}{gelesen}.}{1} - \erwartung{gibt eine Lösung an.}{4} - \erwartung{erfüllt eine ehrlich völlig überzogene Erwartung. - \begin{tabular}{|c|c|} - \hline - a & b \\ - \hline - c & d \\ - \hline - \end{tabular} - }{10} - \end{erwartungen} + \erwartung{hat den {\LARGE Text} \textcolor{red}{gelesen}.}{1} + \erwartung{gibt eine Lösung an.}{4} + \erwartung{erfüllt eine ehrlich völlig überzogene Erwartung. + \begin{tabular}{|c|c|} + \hline + a & b \\ + \hline + c & d \\ + \hline + \end{tabular} + }{10} \end{aufgabe} \begin{aufgabe} @@ -123,9 +119,7 @@ \teilaufgabe drittens \end{teilaufgaben} \end{loesung} -% \begin{erwartungen} -% \erwartung{sollte eine weitere \symAuge Lösung angeben.}{30} -% \end{erwartungen} +% \erwartung{sollte eine weitere \symAuge Lösung angeben.}{30} \begin{bearbeitungshinweis} Man kann auch Hinweise geben. \begin{itemize} @@ -149,9 +143,7 @@ \begin{loesung} \mcloesung \end{loesung} - \begin{erwartungen} - \erwartung{kreuzt \textbf{alles} richtig an.}{10} - \end{erwartungen} + \erwartung{kreuzt \textbf{alles} richtig an.}{10} \end{aufgabe} \begin{aufgabe}[symbol=\symBleistift,subtitle={Lückentext}] @@ -159,9 +151,7 @@ \begin{loesung} Das ist ein total verrückter \textluecke{Lückentext}. Für alle \textluecke{Menschen}, die \textluecke{Lücken} lieben. \end{loesung} - \begin{erwartungen} - \erwartung{füllt die Lücken richtig aus.}{10} - \end{erwartungen} + \erwartung{füllt die Lücken richtig aus.}{10} \end{aufgabe} \begin{aufgabe*} @@ -169,9 +159,7 @@ \begin{loesung*} Eine weitere Lösung. \end{loesung*} - \begin{erwartungen} - \erwartung{sollte eine $7+4=11$ weitere Lösung angeben.}{}[2] - \end{erwartungen} + \erwartung{sollte eine $7+4=11$ weitere Lösung angeben.}{}[2] \begin{bearbeitungshinweis} Noch ein Hinweis. Und noch einer. \end{bearbeitungshinweis} @@ -190,9 +178,7 @@ tmp = "Hallo " print(tmp + weltname + "!") \end{lstlisting} - \begin{erwartungen} - \erwartung{Ergänzt die Funktionsaufrufe korrekt.}{10} - \end{erwartungen} + \erwartung{Ergänzt die Funktionsaufrufe korrekt.}{10} \begin{bearbeitungshinweis} Denke gut darüber nach wie man vorgeht. \end{bearbeitungshinweis} diff --git a/macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.pdf b/macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.pdf Binary files differindex c3b5cf87d7..3ed68dcf0d 100644 --- a/macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.pdf +++ b/macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.pdf diff --git a/macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.tex b/macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.tex index 05ad494ae9..f3330a167a 100644 --- a/macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.tex +++ b/macros/latex/contrib/schule/doc/Beispiele/beispiel-kl.tex @@ -60,22 +60,20 @@ \begin{loesung} \includegraphics[scale=0.8]{aufgabe-1} \end{loesung} - \begin{erwartungen} - \erwartung{ermittelt die Objekte \texttt{margret}, \texttt{dieter}, \texttt{franz}, \texttt{manni}, \texttt{formular1} und \texttt{formular2}.}{3} - \erwartung{ermittelt die Attribute \texttt{alter}, \texttt{hatFormular}, \texttt{lieblingslied} und ordnet sie korrekt zu.}{3} - \erwartung{ermittelt die Methoden \texttt{nimmAn(formular)}, \texttt{erledigeFormalitaet} und \texttt{singeLied}.}{4} - \erwartung{entwirft ein, der Situation entsprechendes, Objektdiagramm.}{5} - \erwartung{stellt das Objektdiagramm den Konventionen entsprechend dar: - \begin{smallitemize} - \item Objektnamen klein - \item Attributwerte groß - \item Aufträge im Imperativ - \item Präfixe bei den Attributen - \item Anführungszeichen bei Zeichenketten - \end{smallitemize} - }{5} - \erwartung{stellt die Beziehungen zwischen den Objekten vollständig und korrekt dar.}{5} - \end{erwartungen} + \erwartung{ermittelt die Objekte \texttt{margret}, \texttt{dieter}, \texttt{franz}, \texttt{manni}, \texttt{formular1} und \texttt{formular2}.}{3} + \erwartung{ermittelt die Attribute \texttt{alter}, \texttt{hatFormular}, \texttt{lieblingslied} und ordnet sie korrekt zu.}{3} + \erwartung{ermittelt die Methoden \texttt{nimmAn(formular)}, \texttt{erledigeFormalitaet} und \texttt{singeLied}.}{4} + \erwartung{entwirft ein, der Situation entsprechendes, Objektdiagramm.}{5} + \erwartung{stellt das Objektdiagramm den Konventionen entsprechend dar: + \begin{smallitemize} + \item Objektnamen klein + \item Attributwerte groß + \item Aufträge im Imperativ + \item Präfixe bei den Attributen + \item Anführungszeichen bei Zeichenketten + \end{smallitemize} + }{5} + \erwartung{stellt die Beziehungen zwischen den Objekten vollständig und korrekt dar.}{5} \end{aufgabe} \section*{Sequenz- und Klassendiagramme} @@ -142,16 +140,14 @@ \end{call} \end{sequencediagram} } + \erwartung{gibt die Aufträge \texttt{begutachteRoller}, \texttt{zustand} und \texttt{kostenNeu}, sowie die zugehörigen Antworten an und erweitert das Diagramm entsprechend.}{5} \teilaufgabe Klassendiagramm: \includegraphics[scale=0.8]{aufgabe-2} + \erwartung{modelliert ein zu den vorherigen Aufgaben konsistentes Klassendiagramm.}{8} + \erwartung{stellt das Klassendiagramm unter Berücksichtigung der geltenden Vereinbarungen korrekt dar.}{2} \end{teilaufgaben} \end{loesung} - \begin{erwartungen} - \erwartung{gibt die Aufträge \texttt{begutachteRoller}, \texttt{zustand} und \texttt{kostenNeu}, sowie die zugehörigen Antworten an und erweitert das Diagramm entsprechend.}{5} - \erwartung{modelliert ein zu den vorherigen Aufgaben konsistentes Klassendiagramm.}{8} - \erwartung{stellt das Klassendiagramm unter Berücksichtigung der geltenden Vereinbarungen korrekt dar.}{2} - \end{erwartungen} \end{aufgabe} \begin{aufgabe} @@ -172,10 +168,8 @@ roller.schalteAus() \end{lstlisting} \end{loesung} - \begin{erwartungen} - \erwartung{implementiert eine dem Klassendiagramm entsprechende Methode unter Verwendung der notwendigen Anfragen und Aufträge.}{8} - \erwartung{wendet beim Implementieren die korrekte Syntax an.}{2} - \end{erwartungen} + \erwartung{implementiert eine dem Klassendiagramm entsprechende Methode unter Verwendung der notwendigen Anfragen und Aufträge.}{8} + \erwartung{wendet beim Implementieren die korrekte Syntax an.}{2} \end{aufgabe} -\end{document}
\ No newline at end of file +\end{document} 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 Binary files differindex 564095dce7..875958c447 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 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 994f41a4b8..d88c9d8c56 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 @@ -22,14 +22,12 @@ \begin{teilaufgaben} \teilaufgabe[2] Male ein X. + \erwartung{malt ein X}{2} \teilaufgabe[3] Schreibe einen Satz. + \erwartung{schreibt einen Satz}{2} + \erwartung{achtet auf die Rechtschreibung}{1} \end{teilaufgaben} - \begin{erwartungen} - \erwartung{malt ein X}{2} - \erwartung{schreibt einen Satz}{2} - \erwartung{achtet auf die Rechtschreibung}{1} - \end{erwartungen} \end{aufgabe} \begin{loesung} \begin{teilaufgaben} 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 Binary files differindex cfa4297177..98bb6d6a14 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 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 6949983ad7..5b2549411c 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 @@ -37,10 +37,12 @@ Aber mache etwas wirklich gutes. } - \begin{erwartungen} + \ifAufgabenpoolOptionTF{optionA}{ \erwartung{macht etwas damit}{5} - \erwartung{lässt anderes sein}{1} - \end{erwartungen} + }{ + \erwartung{macht etwas anderes damit}{5} + } + \erwartung{lässt anderes sein}{1} \end{aufgabe} \begin{loesung} Eigentlich ist es ganz egal. diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.pdf b/macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.pdf Binary files differindex 53cc4fabc2..7e4d30029d 100644 --- a/macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.pdf +++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.pdf diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.tex b/macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.tex index a2225d8f00..f311d1d4c0 100644 --- a/macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.tex +++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-ab-dev.tex @@ -172,9 +172,7 @@ \end{teilaufgaben} \end{loesung*} - \begin{erwartungen} - \erwartung{sollte eine $7+4=11$ weitere Lösung angeben.}{}[2] - \end{erwartungen} + \erwartung{sollte eine $7+4=11$ weitere Lösung angeben.}{}[2] \begin{bearbeitungshinweis} Noch ein Hinweis. \end{bearbeitungshinweis} @@ -238,4 +236,4 @@ \section*{Notenverteilung} \notenverteilung -\end{document}
\ No newline at end of file +\end{document} diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-ab.pdf b/macros/latex/contrib/schule/doc/Beispiele/minimal-ab.pdf Binary files differindex c309a0d318..dfac2e9c64 100644 --- a/macros/latex/contrib/schule/doc/Beispiele/minimal-ab.pdf +++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-ab.pdf diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-ab.tex b/macros/latex/contrib/schule/doc/Beispiele/minimal-ab.tex index d1d3a792bf..7598a61919 100644 --- a/macros/latex/contrib/schule/doc/Beispiele/minimal-ab.tex +++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-ab.tex @@ -101,4 +101,4 @@ \section*{Notenverteilung} \notenverteilung -\end{document}
\ No newline at end of file +\end{document} diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-ka.pdf b/macros/latex/contrib/schule/doc/Beispiele/minimal-ka.pdf Binary files differindex d5b6f2e05e..ceb9444c50 100644 --- a/macros/latex/contrib/schule/doc/Beispiele/minimal-ka.pdf +++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-ka.pdf diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-ka.tex b/macros/latex/contrib/schule/doc/Beispiele/minimal-ka.tex index 4e93eebe3c..8605b2a2fc 100644 --- a/macros/latex/contrib/schule/doc/Beispiele/minimal-ka.tex +++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-ka.tex @@ -32,15 +32,13 @@ \blindtext \begin{teilaufgaben} \teilaufgabe Lies den Text! + \erwartung{Du hast den Text gelesen.}{} \teilaufgabe Unterschlängele alle Nomen. + \erwartung{Du hast alle alle Nomen unterschlängelt.}{} \end{teilaufgaben} \begin{loesung} Dies hier ist ein \uwave{Blindtext} zum \uwave{Testen} von \uwave{Textausgaben}\dots \end{loesung} - \begin{erwartungen} - \erwartung{Du hast den Text gelesen.}{} - \erwartung{Du hast alle alle Nomen unterschlängelt.}{} - \end{erwartungen} \end{aufgabe} \begin{aufgabe*} @@ -52,16 +50,14 @@ \begin{loesung*} \begin{teilaufgaben} \teilaufgabe Die Lösung lautet 1. + \erwartung{Deine Lösung zu Teilaufgabe a) ist richtig.}{} \teilaufgabe Die Lösung lautet 2. + \erwartung{Deine Lösung zu Teilaufgabe b) ist richtig.}{} \end{teilaufgaben} \end{loesung*} - \begin{erwartungen} - \erwartung{Deine Lösung zu Teilaufgabe a) ist richtig.}{} - \erwartung{Deine Lösung zu Teilaufgabe b) ist richtig.}{} - \end{erwartungen} \end{aufgabe*} \vspace{1cm} {\Huge Viel Erfolg!} -\end{document}
\ No newline at end of file +\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 Binary files differindex 6be283a536..803354db15 100644 --- a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.pdf +++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-aufgabenpool.pdf diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.pdf b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.pdf Binary files differindex 40d6aec8bb..43c864b13c 100644 --- a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.pdf +++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.pdf diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.tex b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.tex index 4f40e73ef0..3338b8fc8b 100644 --- a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.tex +++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl-et.tex @@ -32,15 +32,13 @@ \blindtext \begin{teilaufgaben} \teilaufgabe[5] Lies den Text! + \erwartung{hat den Text gelesen.}{5} \teilaufgabe[10] Nimm dazu begründet Stellung. + \erwartung{nimmt begründet Stellung zum Text und berücksichtigt, dass es sich um einen Blindtext handelt.}{10} \end{teilaufgaben} \begin{loesung} Es handelt sich eindeutig um einen Blindtext. \end{loesung} - \begin{erwartungen} - \erwartung{hat den Text gelesen.}{5} - \erwartung{nimmt begründet Stellung zum Text und berücksichtigt, dass es sich um einen Blindtext handelt.}{10} - \end{erwartungen} \end{aufgabe} \begin{aufgabe*} @@ -52,16 +50,14 @@ \begin{loesung*} \begin{teilaufgaben} \teilaufgabe Die Lösung lautet 1. + \erwartung{gibt eine richtige Lösung zu Teilaufgabe a) an.}{}[5] \teilaufgabe Die Lösung lautet 2. + \erwartung{gibt eine richtige Lösung zu Teilaufgabe b) an.}{}[5] \end{teilaufgaben} \end{loesung*} - \begin{erwartungen} - \erwartung{gibt eine richtige Lösung zu Teilaufgabe a) an.}{}[5] - \erwartung{gibt eine richtige Lösung zu Teilaufgabe b) an.}{}[5] - \end{erwartungen} \end{aufgabe*} \vspace{1cm} {\Huge Viel Erfolg!} -\end{document}
\ No newline at end of file +\end{document} diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl.pdf b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl.pdf Binary files differindex 75732e79a1..753d9ec46b 100644 --- a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl.pdf +++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl.pdf diff --git a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl.tex b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl.tex index af132ce73f..7e38c73f99 100644 --- a/macros/latex/contrib/schule/doc/Beispiele/minimal-kl.tex +++ b/macros/latex/contrib/schule/doc/Beispiele/minimal-kl.tex @@ -31,15 +31,13 @@ \blindtext \begin{teilaufgaben} \teilaufgabe[5] Lies den Text! + \erwartung{hat den Text gelesen.}{5} \teilaufgabe[10] Nimm dazu begründet Stellung. + \erwartung{nimmt begründet Stellung zum Text und berücksichtigt, dass es sich um einen Blindtext handelt.}{10} \end{teilaufgaben} \begin{loesung} Es handelt sich eindeutig um einen Blindtext. \end{loesung} - \begin{erwartungen} - \erwartung{hat den Text gelesen.}{5} - \erwartung{nimmt begründet Stellung zum Text und berücksichtigt, dass es sich um einen Blindtext handelt.}{10} - \end{erwartungen} \end{aufgabe} \begin{aufgabe*} @@ -51,13 +49,11 @@ \begin{loesung*} \begin{teilaufgaben} \teilaufgabe Die Lösung lautet 1. + \erwartung{gibt eine richtige Lösung zu Teilaufgabe a) an.}{}[5] \teilaufgabe Die Lösung lautet 2. + \erwartung{gibt eine richtige Lösung zu Teilaufgabe b) an.}{}[5] \end{teilaufgaben} \end{loesung*} - \begin{erwartungen} - \erwartung{gibt eine richtige Lösung zu Teilaufgabe a) an.}{}[5] - \erwartung{gibt eine richtige Lösung zu Teilaufgabe b) an.}{}[5] - \end{erwartungen} \end{aufgabe*} \vspace{1cm} @@ -66,4 +62,4 @@ \vfill \punktuebersicht -\end{document}
\ No newline at end of file +\end{document} diff --git a/macros/latex/contrib/schule/doc/changelog.tex b/macros/latex/contrib/schule/doc/changelog.tex index 149be23c76..d11563f2bf 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.10.0} -- 2024-04-01 + \begin{itemize} + \item Das Modul Aufgabenpool um Möglichkeiten für Anhänge erweitert + \item Einbinden von Erwartungen für den Erwartungshorizont flexibler gestaltet + \item Bugfix + \end{itemize} \item \textbf{0.9.0} -- 2023-10-07 \begin{itemize} \item Modul Aufgabenpool ausgebaut, damit es variable einsetzbar ist diff --git a/macros/latex/contrib/schule/doc/modulAufgabenpool.tex b/macros/latex/contrib/schule/doc/modulAufgabenpool.tex index 9b736eb0f6..750ac6c2cd 100644 --- a/macros/latex/contrib/schule/doc/modulAufgabenpool.tex +++ b/macros/latex/contrib/schule/doc/modulAufgabenpool.tex @@ -41,3 +41,21 @@ Zu jeder Aufgabe lassen sich einstellbare Optionen angeben. Mit diesen kann man \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} + +\subsection{Anhänge an Aufgaben}\sinceversion{0.10.0} +Bei der Nutzung des Aufgabenpools kann es vorkommen, dass Aufgaben auch Elemente haben, die im Anhang angegeben werden. Teilweise können auch mehrere Aufgaben den gleichen Anhang nutzen. Daher werden zwei verschiedene Möglichkeiten zum Einbinden von Anhängen bereitgestellt. Die Ausgabe des Anhangs wird dann unterdrückt, wenn der Aufruf des Anhangs sich innerhalb einer eingebundenen Aufgabendatei befindet. Für das Gesamtdokument gibt es mit \cs{showIncludeAppendix} einen extra Befehl, der dann für die Ausgabe sorgt. + +\subsubsection{Umgebungen} +\begin{environments} + \environment{onceAppendix}[\marg{Name}] + Innerhalb der Umgebung kann Inhalt für den Anhang angegeben werden. Durch die Angabe des Namens wird dafür gesorgt, dass Anhang mit gleichem Namen nur einmal ausgegeben wird. +\end{environments} + +\subsubsection{Befehle} +\begin{commands} + \command{inputOnceAppendix}[\marg{Datei}] + Eine Datei kann, mit \cs{getBasedir} für den Dateipfad, angegeben werden. Diese wird nur einmal als Anhang eingebunden in das Dokument. + + \command{showIncludeAppendix} + Der Befehl wird an einer Stelle verwendet, an der die Anhänge eingebunden werden sollen. +\end{commands} diff --git a/macros/latex/contrib/schule/doc/modulBewertung.tex b/macros/latex/contrib/schule/doc/modulBewertung.tex index b73d348842..fd48af2a27 100644 --- a/macros/latex/contrib/schule/doc/modulBewertung.tex +++ b/macros/latex/contrib/schule/doc/modulBewertung.tex @@ -42,12 +42,12 @@ Das Modul \module{Bewertung} ergänzt das Modul \module{Aufgaben} um die Möglic \subsubsection{Umgebungen} \begin{environments} - \environment{erwartungen} erlaubt es, zu einzelnen Aufgaben Erwartungen anzugeben. Die einzelnen Erwartungen werden dabei mit dem Makro \cs{erwartung} angegeben. Diese Umgebung kann nur direkt innerhalb der Umgebung einer Aufgabe genutzt werden. + \environment{erwartungen} \deprecatedversion{0.10.0} Diese Umgebung wird nicht mehr für Erwartungen benötigt und gibt eine Warnung aus. \end{environments} \subsubsection{Befehle} \begin{commands} - \command{erwartung}[\marg{Erwartung}\marg{Punkte}\oarg{Zusatzpunkte}] definiert eine einzelne Erwartung innerhalb der Umgebung \env{erwartungen}. Der Parameter kann beliebigen \LaTeX-Code enthalten bis auf Verbatim-Elemente. Des weiteren werden die Punkte für diese Erwartung als Parameter erwartet. Als optionalen Parameter können Zusatzpunkte angegeben werden. + \command{erwartung}[\marg{Erwartung}\marg{Punkte}\oarg{Zusatzpunkte}] definiert eine einzelne Erwartung, die innerhalb einer \env{aufgabe} oder einer \env{loesung} angegeben werden muss. Der Parameter kann beliebigen \LaTeX-Code enthalten bis auf Verbatim-Elemente. Des weiteren werden die Punkte für diese Erwartung als Parameter erwartet. Als optionalen Parameter können Zusatzpunkte angegeben werden. Wird die Erwartung innerhalb einer \env{teilaufgaben}-Umgebung eingefügt, so bekommt die Erwartung die Nummer der Teilaufgabe mit. \command{erwartungshorizont} setzt den Erwartungshorizont im gewählten Stil, falls die automatische Erzeugung über die Paketoption \option{erwartungshorizontAnzeigen} nicht genutzt wird. \command{notenverteilung} setzt die Notenverteilung, falls die automatische Erzeugung über den Erwartungshorizont nicht genutzt wird. Die Verteilung wird über die Gesamtpunkte aller Aufgaben unter Berücksichtigung des gewählten Notenschemas ermittelt. \end{commands} diff --git a/macros/latex/contrib/schule/doc/modulSymbole.tex b/macros/latex/contrib/schule/doc/modulSymbole.tex index 9ffd841a55..0d11875549 100644 --- a/macros/latex/contrib/schule/doc/modulSymbole.tex +++ b/macros/latex/contrib/schule/doc/modulSymbole.tex @@ -105,7 +105,7 @@ Dieses Modul stellt einige für den Schulkontext relevante Unicode-Symbole aus d \command{symKeineGlocke} {\Huge\usym{1F515}} (1F515) \command{symLupe} - {\Huge\usym{1F5FD}} (1F5FD) + {\Huge\usym{1F50D}} (1F50D) \end{commands} @@ -378,4 +378,4 @@ Dieses Modul stellt einige für den Schulkontext relevante Unicode-Symbole aus d \command{symWuerfelSechs} {\Huge\usym{2685}} (2685) \end{commands} -\end{multicols}
\ No newline at end of file +\end{multicols} diff --git a/macros/latex/contrib/schule/doc/schule.pdf b/macros/latex/contrib/schule/doc/schule.pdf Binary files differindex 1129996f96..95c6c626c7 100644 --- a/macros/latex/contrib/schule/doc/schule.pdf +++ b/macros/latex/contrib/schule/doc/schule.pdf diff --git a/macros/latex/contrib/schule/doc/schule.tex b/macros/latex/contrib/schule/doc/schule.tex index e2621da5a5..01029dbc1d 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.9.0 , - date = 2023-10-07 , + version = 0.10.0 , + date = 2024-04-01 , 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} , @@ -73,6 +73,7 @@ } }, } +\newnote*\deprecatedversion[1]{\mbox{Veraltet} seit~#1} % \includeonly{module} 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 1ea304ecf4..0dcbcbbea6 100644 --- a/macros/latex/contrib/schule/latex/schule.mod.Aufgaben.code.tex +++ b/macros/latex/contrib/schule/latex/schule.mod.Aufgaben.code.tex @@ -77,7 +77,7 @@ \DeclareExerciseTranslation{German}{default-heading}{% \XSIMmixedcase{\GetExerciseParameter{solution-name}}en zu den \XSIMmixedcase{\GetExerciseParameter{exercise-name}}% - \XSIMifeqF{\GetExerciseParameter{exercise-name}}{Aufgabe}{}n% + \XSIMifeqF{\GetExerciseParameter{exercise-env}}{aufgabe}{\XSIMifeqF{\GetExerciseParameter{exercise-env}}{aufgabe*}{e}}n% } \DeclareExerciseTranslation{German}{collection-heading}{% @@ -100,24 +100,26 @@ } - % Teilaufgaben % -------------------------------------------------------------------- -\newcounter{teilpunkte} +\ExplSyntaxOn +\bool_new:N \g__schule_in_teilaufgaben_bool +\bool_gset_false:N \g__schule_in_teilaufgaben_bool \@ifclassloaded{beamer}{ \newenvironment{teilaufgaben}{\begin{enumerate}[a)] }{\end{enumerate}} }{ - \newlist{teilaufgaben}{enumerate}{1} - \setlist[teilaufgaben]{ - label=\textbf{\alph{teilaufgabeni})}, + \newlist{teilaufgabenIntern}{enumerate}{1} + \setlist[teilaufgabenIntern]{ + label=\textbf{\alph{teilaufgabenInterni})}, topsep=0.2em, itemsep=-0.1em, } + \newenvironment{teilaufgaben}% + {\bool_gset_true:N \g__schule_in_teilaufgaben_bool \begin{teilaufgabenIntern}} + {\end{teilaufgabenIntern} \bool_gset_false:N \g__schule_in_teilaufgaben_bool} } -\newcommand{\Teilpunkte}{\arabic{teilpunkte}} - \makeatletter \NewDocumentCommand{\teilaufgabe}{o}{ \IfInsideSolutionTF{ @@ -131,7 +133,9 @@ } % Gedacht, wenn es bei Teilaufgaben kein Lösung angegeben werden soll -\newcommand{\teilaufgabeOhneLoesung}{\addtocounter{teilaufgabeni}{1}} +\newcommand{\teilaufgabeOhneLoesung}{\addtocounter{teilaufgabenInterni}{1}} + +\ExplSyntaxOff % Spezielle Aufgabentypen % ******************************************************************** 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 76e66d9795..33579f61b4 100644 --- a/macros/latex/contrib/schule/latex/schule.mod.Aufgabenpool.code.tex +++ b/macros/latex/contrib/schule/latex/schule.mod.Aufgabenpool.code.tex @@ -5,15 +5,15 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \clist_new:N \g__schule_aufgabenoptionen_clist -\DeclareDocumentCommand{\ifAufgabenpoolOptionTF}{m m m}{ +\DeclareDocumentCommand{\ifAufgabenpoolOptionTF}{m +m +m}{ \clist_if_in:NnTF \g__schule_aufgabenoptionen_clist {#1} {#2} {#3} } -\DeclareDocumentCommand{\ifAufgabenpoolOptionT}{m m}{ +\DeclareDocumentCommand{\ifAufgabenpoolOptionT}{m +m}{ \clist_if_in:NnT \g__schule_aufgabenoptionen_clist {#1} {#2} } -\DeclareDocumentCommand{\ifAufgabenpoolOptionF}{m m}{ +\DeclareDocumentCommand{\ifAufgabenpoolOptionF}{m +m}{ \clist_if_in:NnF \g__schule_aufgabenoptionen_clist {#1} {#2} } @@ -46,21 +46,21 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Aufgabenhinweise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\bool_new:N \g__schule_aufgabenhinweis_bool -\bool_gset_true:N \g__schule_aufgabenhinweis_bool +\bool_new:N \g__schule_inAufgabenInput_bool +\bool_gset_false:N \g__schule_inAufgabenInput_bool \NewDocumentEnvironment{aufgabenpoolHinweis}{+b}{ - \bool_if:NT \g__schule_aufgabenhinweis_bool {#1} + \bool_if:NF \g__schule_inAufgabenInput_bool {#1} }{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Aufgabeneinbindung %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareDocumentCommand{\aufgabeninput}{o m m}{ - \bool_gset_false:N \g__schule_aufgabenhinweis_bool + \bool_gset_true:N \g__schule_inAufgabenInput_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 + \bool_gset_false:N \g__schule_inAufgabenInput_bool } \xsimsetup{ @@ -72,6 +72,9 @@ % InputOnce %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \clist_new:N \g__schule_inputonce_clist +\clist_new:N \g__schule_inputonceAppendix_clist +\prop_new:N \g__schule_appendix_prop +\prop_new:N \g__schule_appendixBasedir_prop \DeclareDocumentCommand{\inputOnce}{m}{ \clist_if_in:NnF \g__schule_inputonce_clist {#1} { @@ -80,4 +83,29 @@ } } +\DeclareDocumentCommand{\inputOnceAppendix}{m}{ + \exp_args:Nnf \clist_if_in:NnF {\g__schule_inputonceAppendix_clist} {\getBasedir/#1} { + \exp_args:Nnf \clist_gput_right:Nx {\g__schule_inputonceAppendix_clist} {\getBasedir/#1} + \bool_if:NF \g__schule_inAufgabenInput_bool {\input{\getBasedir/#1}} + } +} + +\DeclareDocumentCommand{\showIncludeAppendix}{}{ + \clist_map_inline:Nn \g__schule_inputonceAppendix_clist { + \input{##1} + } + \prop_map_inline:Nn \g__schule_appendix_prop { + \exp_args:Nnf \str_gset:Nn \g__schule_basedir_string {\prop_item:Nn \g__schule_appendixBasedir_prop {##1}} + ##2 + } +} + +\NewDocumentEnvironment{onceAppendix}{m +b}{ + \prop_gput:Nnn \g__schule_appendix_prop {#1} {#2} + \exp_args:Nnnf \prop_gput:Nnn {\g__schule_appendixBasedir_prop} {#1} {\getBasedir} + \bool_if:NF \g__schule_inAufgabenInput_bool { + #2 + } +}{} + \ExplSyntaxOff diff --git a/macros/latex/contrib/schule/latex/schule.mod.Bewertung.code.tex b/macros/latex/contrib/schule/latex/schule.mod.Bewertung.code.tex index ef906573a3..2483e825e0 100644 --- a/macros/latex/contrib/schule/latex/schule.mod.Bewertung.code.tex +++ b/macros/latex/contrib/schule/latex/schule.mod.Bewertung.code.tex @@ -10,13 +10,7 @@ % ******************************************************************** % Erwartungen * % ******************************************************************** -% Zur Speicherung der Erwartungen werden die Eigenschaften von xsim -% Aufgaben erweitert. Hierzu ist es erforderlich, dass die Inhalte -% der Umgebung expandiert oder serialisiert (detokenized) werden -% und dem "SetExerciseProperty"-Makro als Wert für den Schlüssel -% "erwartungen" übergeben werden. -% Um den folgenden Quelltext halbwegs lesbar zu halten, wird auf -% das environ-Paket zurückgegriffen und viele Dinge aus LaTeX3 genutzt. +% Zur Speicherung der Erwartungen werden extra Tokenlisten erstellt. \ExplSyntaxOn @@ -32,12 +26,27 @@ % Erwartungen-Umgebung % ******************************************************************** +\msg_new:nnn {schule}{erwartungen}{Deprecated: erwartungen-Umgebung~wird~nicht~mehr~benoetigt} \NewEnviron{erwartungen}{ - \exp_args:Nno\SetExerciseProperty{erwartungen}{\BODY} + % Kann auf Dauer entfernt werden, da es nur in der überarbeiteten Version benötigt wurde + \msg_warning:nn{schule} {erwartungen} + \BODY } -% Einzelerwartung in Form bringen +\cs_new_protected:Nn \l_schule_erwartungen_einfuegen:nnnn { + \tl_if_exist:cF {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl} {\tl_new:c {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl}} + \tl_gput_right:co {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl} {\l_schule_erwartungen_ausgabe:nnnn {#1}{#2}{#3}{#4}} +} +\cs_generate_variant:Nn \l_schule_erwartungen_einfuegen:nnnn {nnne} + \NewDocumentCommand{\erwartung}{m m O{}}{% + \bool_if:NTF \g__schule_in_teilaufgaben_bool + {\l_schule_erwartungen_einfuegen:nnne {#1} {#2} {#3} {\alph{teilaufgabenInterni}}} + {\l_schule_erwartungen_einfuegen:nnne {#1} {#2} {#3} {}} +} + +% Einzelerwartung in Form bringen +\cs_new_protected:Nn \l_schule_erwartungen_ausgabe:nnnn {% %Zeilenfarbe \bool_if:NTF \schule_erwartungen_zeile_gerade_bool { \bool_gset_false:N \schule_erwartungen_zeile_gerade_bool @@ -49,13 +58,15 @@ \IfEqCase{\schule@erwartungshorizontStil}{ {simpel}{ - \tl_gput_right:Nn \schule_zeilen_erwartungen_str {\detokenize{#1 & & & \\ \hline}} + \str_if_eq:nnF {#4} {} {\tl_gput_right:Nn \schule_zeilen_erwartungen_str {\detokenize{#4)~}}} + \tl_gput_right:Nn \schule_zeilen_erwartungen_str {\detokenize{#4)~ #1 & & & \\ \hline}} }% }[% % Standard oder Einzel \int_gadd:Nn \schule_aufgaben_punkte_int {\_str_to_int_with_zero:n{#2}} %Punkte \int_gadd:Nn \schule_aufgaben_zusatzpunkte_int {\_str_to_int_with_zero:n{#3}} %Zusatzpunkte + \str_if_eq:nnF {#4} {} {\tl_gput_right:Nn \schule_zeilen_erwartungen_str {\detokenize{#4)~}}} \tl_gput_right:Nn \schule_zeilen_erwartungen_str {\detokenize{#1 & }} \tl_gput_right:Nn \schule_zeilen_erwartungen_str {\_schule_punkte_anzeige:nn {\_str_to_int_with_zero:n{#2}}{\_str_to_int_with_zero:n{#3}}} %Punkte \tl_gput_right:Nn \schule_zeilen_erwartungen_str {\detokenize{ & \\ \hline}} %Zeile @@ -119,7 +130,7 @@ %Definition der Aufgabe in entsprechende Befehle laden \def\ExerciseType{##1}% \def\ExerciseID{##2}% - \GetExercisePropertyTF{erwartungen}{\PropertyValue}{} + \tl_if_exist:cT {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl} {\tl_use:c {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl}} %Punkte setzen \_schule_erwartungen_punkte_speichern @@ -180,7 +191,7 @@ %Definition der Aufgabe in entsprechende Befehle laden \def\ExerciseType{##1}% \def\ExerciseID{##2}% - \GetExercisePropertyTF{erwartungen}{\PropertyValue}{} + \tl_if_exist:cT {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl} {\tl_use:c {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl}} %Gesamtaufgabe \tl_gput_right:Nx \schule_aufgaben_erwartungen_str \_schule_aufgaben_erwartungen_zeile @@ -237,7 +248,7 @@ %Definition der Aufgabe in entsprechende Befehle laden \def\ExerciseType{##1}% \def\ExerciseID{##2}% - \GetExercisePropertyTF{erwartungen}{\PropertyValue}{} + \tl_if_exist:cT {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl} {\tl_use:c {l_schule_erwartung{\ExerciseType}!{\ExerciseID}_tl}} %Gesamtaufgabe \tl_gput_right:Nx \schule_aufgaben_erwartungen_str \_schule_aufgaben_erwartungen_zeile_simple diff --git a/macros/latex/contrib/schule/latex/schule.mod.Symbole.code.tex b/macros/latex/contrib/schule/latex/schule.mod.Symbole.code.tex index deb993ec0c..1ed69a988e 100644 --- a/macros/latex/contrib/schule/latex/schule.mod.Symbole.code.tex +++ b/macros/latex/contrib/schule/latex/schule.mod.Symbole.code.tex @@ -47,7 +47,7 @@ \newcommand{\symSchluessel}{\usym{1F511}} \newcommand{\symGlocke}{\usym{1F514}} \newcommand{\symKeineGlocke}{\usym{1F515}} -\newcommand{\symLupe}{\usym{1F5FD}} +\newcommand{\symLupe}{\usym{1F50D}} % Musik \newcommand{\symNote}{\usym{1F39C}} @@ -184,4 +184,4 @@ \newcommand{\symWuerfelDrei}{\usym{2682}} \newcommand{\symWuerfelVier}{\usym{2683}} \newcommand{\symWuerfelFuenf}{\usym{2684}} -\newcommand{\symWuerfelSechs}{\usym{2685}}
\ No newline at end of file +\newcommand{\symWuerfelSechs}{\usym{2685}} diff --git a/macros/latex/contrib/schule/latex/schule.sty b/macros/latex/contrib/schule/latex/schule.sty index ac95a93be7..d94eed218d 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/10/07 v0.9.0 % +\ProvidesPackage{schule}[2023/04/01 v0.10.0 % Kommandos fuer die Schule] % ******************************************************************** |