Hallo,

ich habe ein Anschlussproblem zu dieser und dieser Frage.

Folgendes Minimalbeispiel:

Öffne in Overleaf
\documentclass{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[most]{tcolorbox}
\usepackage{xsim}
\usepackage{tikz}

%Aufgabenumgebung
\DeclareExerciseEnvironmentTemplate{klausuraufgabe}
  {%
    \tcolorbox[standard jigsaw,
      opacityback=0,
      opacityframe=0,
      coltitle=black,
      breakable ,
      drop shadow ,
      beforeafter skip = .5\baselineskip ,
      title = 
        \textbf{\GetExerciseName~\GetExerciseProperty{counter}}%
        \GetExercisePropertyT{subtitle}{ \textit{\PropertyValue}}%
        \IfInsideSolutionF{%
          \GetExercisePropertyT{points}{ ($\PropertyValue = \text{\points{\PropertyValue}}$)}%
        }%
    ]%
  }
  {\endtcolorbox}

\DeclareExerciseType{klausuraufgabe}{
  exercise-env = aufgabe ,
  solution-env = loesung ,
  exercise-name = Aufgabe ,
  solution-name = Lösung ,
  exercise-template = klausuraufgabe ,
  solution-template = klausuraufgabe
}

%Punktetabelle

\DeclareExerciseTableTemplate{punktetabelle}{%
  \renewcommand*\arraystretch{2}
  \XSIMputright\ExerciseTableCode{ \hline Aufgabe & }
  \ForEachUsedExerciseByType{\XSIMputright\ExerciseTableCode{#3&}}
  \XSIMputright\ExerciseTableCode{
     \LARGE$\sum$ \\
     \hline Maximalpunktzahl &
  }
  \ForEachUsedExerciseByType{
    \XSIMputright\ExerciseTableCode
      {\XSIMifblankTF{#5}{\printgoal{0}}{\printgoal{#5}} & }
  }
  \XSIMputright\ExerciseTableCode{
    \TotalExerciseGoal{points}{}{} \\ \hline
    erreichte Punktzahl &
  }
  \ForEachUsedExerciseByType{ \XSIMputright\ExerciseTableCode{&} }
  \XSIMputright\ExerciseTableCode{\\\hline}
  \XSIMifeqF{\numberofklausuraufgabes}{0}{
    \begin {tabular} {|l|*{\numberofklausuraufgabes}{>{\centering\arraybackslash}p{7mm}|}c|}
      \ExerciseTableCode
    \end {tabular}
  }
}

\begin{document}

\begin{center}
  \gradingtable[template=punktetabelle]
\end{center}

\begin{aufgabe}[points=2+(1+4)+1+2]
Die Maximalpunktzahl für diese Aufgabe wird korrekt als 10 berechnet und korrekt für die Summe verwendet.
\end{aufgabe}

\begin{aufgabe}[points=2+(1+4)+(1+2)]
Die Maximalpunktzahl für diese Aufgabe wird korrekt als 10 berechnet und korrekt für die Summe verwendet.
\end{aufgabe}

\begin{aufgabe}[points=(2+1+4)+1+2]
Die Maximalpunktzahl für diese Aufgabe wird korrekt als 10 berechnet aber die 2+1+4=7 Punkte der ersten Klammer werden für die Summe nicht berücksichtigt.
\end{aufgabe}

\end{document}

Bei Aufgaben die auf mehreren Ebenen unterteilt werden (z.B. Aufgabe 1 a) i) ii) iii), b) i) ii) c)) würde ich die Punkte gerne auf oberster Ebene mit Klammern abgrenzen. Wenn ich nun den ersten eingetragenen Punktwert in eine Klammer packe führt das dazu, dass diese Punkt zwar zur Maximalpunktzahl der jeweiligen Aufgabe gezählt werden, aber nicht zur endgültigen Summe aller möglichen Punkte. Sobald der erste Punktwert nicht in einer Klammer steht, wird alles korrekt berechnet. (Wie) Lässt sich das beheben?

gefragt 28 Jan, 13:49

Hirshy's gravatar image

Hirshy
6461337
Akzeptiert: 85%


Das ist ein Bug in xsim, es versucht den Fall abzufangen, dass noch keine Punktzahl bekannt ist, und multipliziert dann mit 0.

Versuche das hier:

Öffne in Overleaf
\ExplSyntaxOn
\cs_set_protected:Npn \xsim_update_goal:nnn #1#2#3
  {
    \xsim_if_goal_exists:nT {#3}
      {
        \fp_gadd:cn {g__xsim_goal_#3_fp}
          {  \xsim_get_property:nnn {#1} {#2} {#3} +0 } 
        \fp_gadd:cn {g__xsim_#1_goal_#3_fp}
          {  \xsim_get_property:nnn {#1} {#2} {#3} +0 }
      }
  }

\ExplSyntaxOff
Permanenter link

beantwortet 28 Jan, 15:36

Ulrike%20Fischer's gravatar image

Ulrike Fischer
3.3k23

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×10

Frage gestellt: 28 Jan, 13:49

Frage wurde angeschaut: 482 Mal

Zuletzt aktualisiert: 28 Jan, 15:36