Ich habe mir folgende Aufgabenumgebung aus der Dokumentation erstellt:

Öffne in Overleaf
\documentclass{scrartcl}

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

%Aufgabenumgebung
\DeclareExerciseEnvironmentTemplate{tcolorbox}
{%
\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}{ % notice the space
(%
\printgoal{\PropertyValue}
\IfExerciseGoalSingularTF{points}
{\XSIMtranslate{point}}
{\XSIMtranslate{points}}%
)%
}%
}%
]%
}
{\endtcolorbox}

\DeclareExerciseType{klausuraufgabe}{
exercise-env = aufgabe ,
solution-env = loesung ,
exercise-name = Aufgabe ,
solution-name = Loesung ,
exercise-template = tcolorbox ,
solution-template = tcolorbox
}

\begin{document}

\begin{aufgabe}[points=2+2+2]
 Diese Aufgabe soll drei Unteraufgaben haben, welche jeweils 2 Punkte bringen.
\end{aufgabe}

\end{document}

Die 2+2+2 Punkte werden automatisch in 6 Punkte umgewandelt, kann man auch die einzelnen Summanden dazu nehmen, d.h. anstatt 6 Punkte steht da 2+2+2 Punkte oder auch 2+2+2=6 Punkte?

gefragt 17 Okt, 11:31

Hirshy's gravatar image

Hirshy
441520
Akzeptiert: 87%


Das machst Du quasi absichtlich, indem Du

Öffne in Overleaf
\GetExercisePropertyT{points}{ %
  (\printgoal{\PropertyValue}%
  \IfExerciseGoalSingularTF{points}
    { \XSIMtranslate{point}}
    { \XSIMtranslate{points}}%
)}%

verwendest. \printgoal verwendet intern nämlich \ExerciseGoalValuePrint und das berechnet den Wert.

Wenn Du statt dessen einfach \printgoal weglässt, wird die Eingabe einfach so verwendet:

Öffne in Overleaf
\GetExercisePropertyT{points}{ %
  ($\PropertyValue$%
  \IfExerciseGoalSingularTF{points}
    {\,\XSIMtranslate{point}}
    {\,\XSIMtranslate{points}}%
)}%

Mit

Öffne in Overleaf
$\PropertyValue = \text{\points{\PropertyValue}}$

bekommst Du auch die Addition (\text benötigt amsmath oder amstext).


Übrigens, Deine ursprüngliche Variante bekommst Du auch, indem Du einfach \points{\PropertyValue} verwendest. Die Definitionen von \printgoal und \points lauten nämlich:

Öffne in Overleaf
\NewDocumentCommand \printgoal {m} {\ExerciseGoalValuePrint{#1}{}{}}

\NewDocumentCommand \points {m} {%
  \ExerciseGoalValuePrint{#1}{\,\XSIMtranslate{point}}{\,\XSIMtranslate{points}}%
}

Wenn nur gelegentlich Punkte durch + getrennt eingegeben werden, dann kann man auch darauf testen. Das richtige Werkzeug ist schnell definiert:

Öffne in Overleaf
\ExplSyntaxOn
\NewDocumentCommand \XSIMifinstrTF {mmmm}
  { \tl_if_in:onTF {#1} {#2} {#3} {#4} }
\ExplSyntaxOff

Dann kann man das so einsetzen:

Öffne in Overleaf
\GetExercisePropertyT{points}
  {%
    \XSIMifinstrTF{\PropertyValue}{+}
      {$\PropertyValue = {}$}{}%
    \points{\PropertyValue}%
  }%
Permanenter link

beantwortet 17 Okt, 12:09

Clemens's gravatar image

Clemens
20.1k123360

bearbeitet 17 Okt, 17:43

Super, vielen Dank!

Lässt sich auch eine Möglichkeit einbauen, damit bei eine Aufgabe mit nur einer Punktangabe nicht z.B. 4=4 Punkte da steht sondern einfach nur 4 Punkte?

(17 Okt, 13:05) Hirshy

@Hirshy siehe Update

(17 Okt, 17:43) Clemens
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:

×4

Frage gestellt: 17 Okt, 11:31

Frage wurde angeschaut: 302 Mal

Zuletzt aktualisiert: 17 Okt, 17:43