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 '19, 19:49

Hirshy's gravatar image

Hirshy
73133745
Akzeptiert-Rate: 0%


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 '19, 21:36

Ulrike%20Fischer's gravatar image

Ulrike Fischer
3.6k23
Akzeptiert-Rate: 52%

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×19

gestellte Frage: 28 Jan '19, 19:49

Frage wurde gesehen: 4,140 Mal

zuletzt geändert: 28 Jan '19, 21:36