TeXwelt wurde neu installiert. Es funktionieren noch nicht alle Features und auch an den deutschsprachigen Formulierungen wird verbessert. Danke für eure Geduld.

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

Hirshy's gravatar image

Hirshy
6661639
Akzeptiert-Rate: 0%

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

(18 Okt '17, 09:48) cgnieder

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

cgnieder's gravatar image

cgnieder
20.7k163463
Akzeptiert-Rate: 61%

bearbeitet 19 Okt '17, 09: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 '17, 22:20) Hirshy
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:

×12

gestellte Frage: 17 Okt '17, 22:00

Frage wurde gesehen: 2,464 Mal

zuletzt geändert: 19 Okt '17, 22:20