% ******************************************************************** % * Aufgaben * % ******************************************************************** % Konfiguration des xSim-Pakets % ******************************************************************** \xsimsetup{ file-extension=xsim % Bezeichnungen % points/name=Punkt, % points/name-plural=Punkte, % points/bonus-name=Zusatzpunkt, % points/bonus-plural=Zusatzpunkte, % % Noten % grades/half=true, % Auf halbe Punkte runden % grades/round=1, % Eine Dezimalstelle % % Darstellung der Punkte % question/headings=schule-standard, } % Übersetzungen % **************************************************** **************** \DeclareExerciseTranslations{bonusquestion}{ Fallback = bonus question, German = Zusatzaufgabe, } \DeclareExerciseTranslations{bonusquestions}{ Fallback = bonus questions, German = Zusatzaufgaben, } \DeclareExerciseTranslations{total}{ Fallback = total, German = $\Sigma$, %oder: gesamt %war: %insgesamt } % Metadaten % ******************************************************************** \DeclareExerciseProperty{bearbeitungshinweis} \DeclareExerciseProperty{symbol} % Aufgabenstile % ******************************************************************** % Makro zum Setzen des Symbols von Aufgaben \newcommand{\setzeSymbol}[1]{\SetExerciseProperty{symbol}{#1}} % Aufgabenstile und Tabellenstile laden (einzelne Files) \loadxsimstyle{schule-default,schule-keinepunkte,schule-tcolorbox, schule-binnen, schule-randpunkte,schule-keintitel, schule-keinenummer, schule-tabelle-kurz} % Umgebungen % ******************************************************************** % Definiton der Aufgaben- und Lösungsumgebungen des xsim-Pakets % -------------------------------------------------------------------- \DeclareExerciseType{aufgabe}{ exercise-env = aufgabe, solution-env = loesung, exercise-name = \XSIMtranslate{question}, solution-name = \XSIMtranslate{solution}, exercise-template = schule-default, solution-template = schule-default, } \DeclareExerciseType{zusatzaufgabe}{ exercise-env = aufgabe*, solution-env = loesung*, exercise-name = \XSIMtranslate{bonusquestion}, solution-name = \XSIMtranslate{solution}, exercise-template = schule-default, solution-template = schule-default, } \DeclareExerciseTranslation{German}{default-heading}{% \XSIMmixedcase{\GetExerciseParameter{solution-name}}en zu den \XSIMmixedcase{\GetExerciseParameter{exercise-name}}% \XSIMifeqF{\GetExerciseParameter{exercise-env}}{aufgabe}{\XSIMifeqF{\GetExerciseParameter{exercise-env}}{aufgabe*}{e}}n% } \DeclareExerciseTranslation{German}{collection-heading}{% \XSIMmixedcase{\GetExerciseParameter{solution-name}}en zu den \XSIMmixedcase{\GetExerciseParameter{exercise-name}}% \XSIMifeqF{\GetExerciseParameter{exercise-name}}{Zusatzaufgaben}{e}n% } %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 % -------------------------------------------------------------------- \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{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} } \makeatletter \NewDocumentCommand{\teilaufgabe}{o}{ \IfInsideSolutionTF{ % In Lösungen \item% }{ % In Aufgaben \item% \IfNoValueF{#1}{\addpoints*{#1}(#1)\xspace} } } % Gedacht, wenn es bei Teilaufgaben kein Lösung angegeben werden soll \newcommand{\teilaufgabeOhneLoesung}{\addtocounter{teilaufgabenInterni}{1}} \ExplSyntaxOff % Spezielle Aufgabentypen % ******************************************************************** % Lücken % -------------------------------------------------------------------- \newcommand{\verstecke}[1]{ \IfInsideSolutionTF{#1}{} } \newcommand{\luecke}[2][]{% % Feste Lücke \blank[width=#2,#1]{}% } \newcommand{\textluecke}[2][]{% % Textabhängige Lücke % Default: Doppelte Textlänge als Lückenlänge % Param: 'nichts' für keine Linie o.ä. % (Korrekturfaktor für Handschrift) \ifthenelse{\equal{\detokenize{#1}}{\detokenize{nichts}}} {\IfInsideSolutionTF{#2}{ }} % TRUE {\blank[scale=2,#1]{#2}}% FALSE } %%%% Mit xsim nicht möglich % \aufgabeLueckentext % [Optionen für die Aufgabenumgebung] % {Lückentext} % {Extras} % [Symbol] % \NewDocumentCommand{\aufgabeLueckentext}{ O{} m m O{} O{} }{% % \begin{aufgabe}[#1,symbol=#4]% % %\setzeSymbol{#4}% % #2% % \begin{loesung}% % #2% % \end{loesung}% % #3% % \end{aufgabe}% % } % Multiple Choice % -------------------------------------------------------------------- \DeclareExerciseProperty{mcumgebung} %Eigentliche Multiple Choise Umgebung \NewTasksEnvironment[label=\chb]{mc@Umgebung}[\choice](3) %Setzen der richtigen Lösung als Option \newcommand*{\mcrichtig}{\IfInsideSolutionTF{\chb*}{\chb}} %Inclusive Speichern der Lösung (Maximal eine pro Aufgabe) \NewDocumentEnvironment{mcumgebung}{+b}{ \SetExerciseProperty{mcumgebung}{\begin{mc@Umgebung}#1\end{mc@Umgebung}}% \begin{mc@Umgebung}#1}{\end{mc@Umgebung}} %Abrufen der Lösung \NewDocumentCommand{\mcloesung}{}{\GetExerciseProperty{mcumgebung}} % ******************************************************************** % * Lösungen * % ******************************************************************** % Markierung für Seitenzahlen setzen, ACHTUNG: Wird nur ausgeführt, % falls noch etwas kommt, d.h. Lösungen oder EWH. Sonst undefiniert! \AtEndDocument{\label{LetzteInhaltsseite}} \newboolean{schule@ende@inhalt@gesetzt} \setboolean{schule@ende@inhalt@gesetzt}{false} % Welche Art von Lösung? \ifthenelse{\equal{\schule@loesungen}{seite}}{ % Lösungsseite \AtEndDocument{ %\label{LetzteInhaltsseite} \clearpage \ifthenelse{\boolean{schule@ende@inhalt@gesetzt}}{}{% \pagenumbering{Roman}% \setboolean{schule@ende@inhalt@gesetzt}{true}% } \chead{\Titel\schule@kopfUmbruch} \ohead{Lösung\schule@kopfUmbruch} \cfoot{\thepage} %\section*{Lösungen} % mit XSIM: Lösungen zu den Aufgaben in printsolutions drin? \printsolutions } }{ \ifthenelse{\equal{\schule@loesungen}{folgend}}{ % auf Aufgaben folgend \xsimsetup{ solution/print, loesung/print, loesung*/print, } }{ % nichts } } % ******************************************************************** % * Bewertung und Punkte * % ******************************************************************** \newcommand{\punkteAufgabe}{% \GetExerciseProperty{points}\xspace% \IfExerciseGoalSingularTF{points} {\,\XSIMtranslate{point}} {\,\XSIMtranslate{points}} } \newcommand{\punkteTotal}{% \TotalExerciseGoals{points}%+ bonus-points {\,\XSIMtranslate{point}} {\,\XSIMtranslate{points}}% } % Punktübersicht % ******************************************************************** \NewDocumentCommand{\punktuebersicht}{s O{kurz}}{ \ifthenelse{\equal{#1}{\BooleanTrue}}{\label{SeitePunkt}}{} \gradingtable[template=#2]%kurz oder: default* oder: default } % ******************************************************************** % Hinweise * % ******************************************************************** % Zur Speicherung der Hinweise werden die Eigenschaften von xsim % Aufgaben erweitert. Hierzu ist es erforderlich dem % "SetExerciseProperty"-Makro als Wert für den Schlüssel % "hinweise" übergeben werden. % Um den folgenden Quelltext halbwegs lesbar zu halten, wird auf % das environ-Paket zurückgegriffen. % Hinweise-Umgebung % ******************************************************************** \ExplSyntaxOn \NewEnviron{bearbeitungshinweis}{ \exp_args:Nno \SetExerciseProperty {bearbeitungshinweis} {\BODY} } \ExplSyntaxOff % Ausgabe von Hinweisen % ******************************************************************** % Vollständige Liste \newcommand{\bearbeitungshinweisliste}{ \begin{description} \ForEachUsedExerciseByID{% \def\ExerciseType{##1}% \def\ExerciseID{##2}% \GetExercisePropertyT{bearbeitungshinweis}{% \item[\XSIMmixedcase{\GetExerciseName}~##3] ####1% }% }% \end{description} } % Für eine Aufgabe \NewDocumentCommand{\bearbeitungshinweisZuAufgabe}{O{aufgabe} m}{ \ifthenelse{\equal{#2}{}}{ \GetExerciseProperty{bearbeitungshinweis}% }{% \ExercisePropertyGet{#1}{#2}{bearbeitungshinweis}% } }