Ich habe mir folgende Aufgabenumgebung aus der Dokumentation erstellt:

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\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
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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 '17, 17:31

Hirshy's gravatar image

Hirshy
73143745
Akzeptiert-Rate: 0%


Update Februar 2021

Meine ursprüngliche Antwort hat mit einem aktuellen xsim eigentlich keine Gültigkeit mehr. Hauptsächlich gilt sie nicht mehr, weil „goal“-Eigenschaften inzwischen grundsätzlich berechnet werden, um auch Punkte, die mit \addpoints vergeben werden korrekt zur Summe aufzuaddieren.

Mit einem kleinen Umweg kann man die Eingabe bei points=... allerdings wieder erhalten: indem man eine zweite Eigenschaft definiert, die keine „goal“-Eigenschaft ist, und die dann ein Alias der points wird:

Code, hier editierbar zum Übersetzen:
\DeclareExerciseProperty{subpoints}
\DeclareExercisePropertyAlias{subpoints}{points}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Dieser Ansatz ist allerdings nicht mit oben erwähnten \addpoints kombinierbar.

Code, hier editierbar zum Übersetzen:
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{xsim}
\DeclareExerciseProperty{subpoints}
\DeclareExercisePropertyAlias{subpoints}{points}
\DeclareExerciseEnvironmentTemplate{custom}{%
\subsection*{\XSIMmixedcase{\GetExerciseName}~\GetExerciseProperty{counter}%
\GetExercisePropertyT{points}{%
\quad
\textnormal{%
\XSIMifeqF{\GetExerciseProperty{subpoints}}{\PropertyValue}
{$\GetExerciseProperty{subpoints} ={}$}%
$\printgoal{\PropertyValue}$%
}%
}%
}%
}{\par}
\xsimsetup{exercise/template=custom}
\begin{document}
\begin{exercise}[points=2+2+2]
Diese Aufgabe soll drei Unteraufgaben haben, welche jeweils 2 Punkte bringen.
\end{exercise}
\begin{exercise}[points=4]
Diese Aufgabe bringt nur 4 Punkte.
\end{exercise}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

ursprüngliche Antwort

Das machst Du quasi absichtlich, indem Du

Code, hier editierbar zum Übersetzen:
\GetExercisePropertyT{points}{ %
(\printgoal{\PropertyValue}%
\IfExerciseGoalSingularTF{points}
{ \XSIMtranslate{point}}
{ \XSIMtranslate{points}}%
)}%
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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:

Code, hier editierbar zum Übersetzen:
\GetExercisePropertyT{points}{ %
($\PropertyValue$%
\IfExerciseGoalSingularTF{points}
{\,\XSIMtranslate{point}}
{\,\XSIMtranslate{points}}%
)}%
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Mit

$\PropertyValue = \text{\points{\PropertyValue}}$
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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:

Code, hier editierbar zum Übersetzen:
\NewDocumentCommand \printgoal {m} {\ExerciseGoalValuePrint{#1}{}{}}
\NewDocumentCommand \points {m} {%
\ExerciseGoalValuePrint{#1}{\,\XSIMtranslate{point}}{\,\XSIMtranslate{points}}%
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

Code, hier editierbar zum Übersetzen:
\ExplSyntaxOn
\NewDocumentCommand \XSIMifinstrTF {mmmm}
{ \tl_if_in:onTF {#1} {#2} {#3} {#4} }
\ExplSyntaxOff
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Dann kann man das so einsetzen:

Code, hier editierbar zum Übersetzen:
\GetExercisePropertyT{points}
{%
\XSIMifinstrTF{\PropertyValue}{+}
{$\PropertyValue = {}$}{}%
\points{\PropertyValue}%
}%
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Permanenter link

beantwortet 17 Okt '17, 18:09

cgnieder's gravatar image

cgnieder
22.1k253463
Akzeptiert-Rate: 60%

bearbeitet 21 Feb '21, 09:28

Deine Antwort
[Vorschau ausblenden]

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

Frage-Themen:

×19

gestellte Frage: 17 Okt '17, 17:31

Frage wurde gesehen: 7,538 Mal

zuletzt geändert: 21 Feb '21, 09:28