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

Hirshy's gravatar image

Hirshy
6912542
Akzeptiert-Rate: 0%


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

cgnieder's gravatar image

cgnieder
20.8k193463
Akzeptiert-Rate: 60%

bearbeitet 17 Okt '17, 23: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 '17, 19:05) Hirshy

@Hirshy siehe Update

(17 Okt '17, 23:43) cgnieder
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:

×15

gestellte Frage: 17 Okt '17, 17:31

Frage wurde gesehen: 3,227 Mal

zuletzt geändert: 17 Okt '17, 23:43