Eine vorerst letzte Frage von mir zu diesem tollen Paket. Ich habe die Möglichkeit gefunden, einen Grading Table zu erstellen, der passt aber nicht zu dem angestrebten Layout weshalb ich eine eigene, händische Lösung suche. Bisher stehe ich hier:

Ö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
}
\NewDocumentCommand\printcompletepoints{}{%
  \TotalExerciseGoals{points}
    {\,\XSIMtranslate{}}
    {\,\XSIMtranslate{}}%
}
\newcommand{\klauAufg}{5}                       %Anzahl der Aufgaben
\begin{document}
\begin{center}
\begin{tikzpicture}
%1 Spalte
\draw (0,0) rectangle (4,-1) node[midway,left]{Aufgabe};
\draw (0,-1) rectangle (4,-2) node[midway]{Maximalpunktzahl};
\draw (0,-2) rectangle (4,-3) node[midway]{erreichte Punktzahl};
\foreach \x in {1,...,\klauAufg}{
\draw (3+\x,0) rectangle (4+\x,-1) node[midway]{\x};
\draw (3+\x,-1) rectangle (4+\x,-2) node[midway]{\x};
\draw (3+\x,-2) rectangle (4+\x,-3);
}
\draw (4+\klauAufg,0) rectangle (5+\klauAufg,-1) node[midway]{\Huge$\Sigma$};
\draw (4+\klauAufg,-1) rectangle (5+\klauAufg,-2) node[midway]{\printcompletepoints};
\draw (4+\klauAufg,-2) rectangle (5+\klauAufg,-3);
\end{tikzpicture}
\end{center}
\begin{aufgabe}[points=2+(1+4)+1+2]
Dies ist eine Aufgabe.
\end{aufgabe}
\begin{aufgabe}[points=3+1+2]
Aufgabe 2
\end{aufgabe}
\begin{aufgabe}[points=1+1+1]
Aufgabe 3
\end{aufgabe}
\begin{aufgabe}[points=6+1+2]
Aufgabe 4
\end{aufgabe}
\begin{aufgabe}[points=7+1]
Aufgabe 5
\end{aufgabe}
\end{document}

Der Befehl \klauAufg gibt die Aufgabenanzahl an, anhand derer die Tabelle gezeichnet wird. Für die Anzeige der Gesamtpunktzahl ohne "Punkte" habe ich hier eine Lösung gefunden und modifiziert. Was mir noch fehlt ist die Eingabe der Gesamtpunktzahl jeder einzelnen Aufgabe in der zweiten Zeile. (Wie) Kann ich die Punkte jeder einzelnen Aufgabe in der foreach-Schleife gezielt abgreifen und als node eintragen?

gefragt 17 Okt, 16:00

Hirshy's gravatar image

Hirshy
441520
Akzeptiert: 87%

Du kannst eine Eigenschaft mit \ExercisePropertyGet{klausuraufgabe}{<id>}{points} auch außerhalb von Templates abrufen.

(18 Okt, 03:48) Clemens

Ich würde empfehlen, xsim's \gradingtable doch zu verwenden. Du kannst Dir nämlich auch da mit Hilfe sogenannter Templates ein eigenes Layout basteln. Das folgende Template geht davon aus, dass Du nur den Typ klausuraufgabe verwendest:

Öffne in Overleaf
\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}
  }
}

Mit \gradingtable[template=punktetabelle] kannst Du das dann verwenden.

Komplettes Beispiel:

Öffne in Overleaf
\documentclass{scrartcl}

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

\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
}

\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]
  Dies ist eine Aufgabe.
\end{aufgabe}
\begin{aufgabe}[points=3+1+2]
  Aufgabe 2
\end{aufgabe}
\begin{aufgabe}[points=1+1+1]
  Aufgabe 3
\end{aufgabe}
\begin{aufgabe}[points=6+1+2]
  Aufgabe 4
\end{aufgabe}
\begin{aufgabe}[points=7+1]
  Aufgabe 5
\end{aufgabe}

\end{document}

alt text

Permanenter link

beantwortet 18 Okt, 03:42

Clemens's gravatar image

Clemens
20.1k123360

bearbeitet 19 Okt, 03:10

Super, danke! Sobald ich Zeit habe, werde ich weiter damit spielen und überlegen ob und wie sich das für uns einsetzen lässt und lästige Arbeit abnimmt!

(19 Okt, 16:20) Hirshy
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, 16:00

Frage wurde angeschaut: 268 Mal

Zuletzt aktualisiert: 19 Okt, 16:20