Hallo,

aufbauend auf Gesamtpunkte jeder einzelnen Frage mit xsim in Tabelle eintragen ist die folgende Datei Grundlage für eine Klausurvorlage zur Erstellung personalisierter Klausuren.

Öffne in Overleaf
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[most]{tcolorbox}
\usepackage{xsim}

%%%%%%%%%%%%%%%%%%%%%%Teilnehmerliste%%%%%%%%%%%%%%%%%%%%%%

\begin{filecontents}{Teilnehmer.csv}
nachname,vorname,mtknr,bonus
Musterman,Max,12345,1
Musterfrau,Erika,23456,4
\end{filecontents}

%%%%%%%%%%%%%%%%Einlesen der Teilnehmerliste%%%%%%%%%%%%%%%
\usepackage{datatool}
\DTLsetseparator{,}
\DTLloaddb{teilnehmer}{Teilnehmer.csv}
%%%%%%%%%%%%%%%%%%%%%Aufgabenumgebung%%%%%%%%%%%%%%%%%%%%%%

\DeclareExerciseType{klausuraufgabe}{%
  exercise-env = aufgabe ,%
  solution-env = loesung ,%
  exercise-name = Aufgabe ,%
  solution-name = Lösung ,%
  exercise-template = klausuraufgabe,%
  solution-template = klausuraufgabe%
}%

\DeclareExerciseCollection{klausur}%

%%%%%%%%%%%%%%%%%%%%%%%Punktetabelle%%%%%%%%%%%%%%%%%%%%%%%

\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{6mm}|}c|}%
      \ExerciseTableCode %
    \end {tabular}%
  }%
}%

\begin{document}
\collectexercises{klausur}

\begin{aufgabe}[points=12+(10+4)+1+2]
Aufgabe 1
\end{aufgabe}

\begin{aufgabe}[points=3.5+10.5+2]
Aufgabe 2
\end{aufgabe}
\collectexercisesstop{klausur}

\DTLforeach*{teilnehmer}{
\Name=nachname,%
\Vorname=vorname,%
\Matrikelnummer=mtknr,%
\Bonus=bonus%
}{%
\printexercise{klausuraufgabe}{1}

\printexercise{klausuraufgabe}{2}
\Name, \Vorname \begin{center}\gradingtable[template=punktetabelle]\end{center}%

Bonuspunkte: \Bonus
}
\end{document}

Es tritt nun der Fall auf, dass bereits vor der Klausur Bonuspunkte gesammelt werden können, die zu den erreichten Punkten hinzugezählt werden. Diese liegen zusammen mit Namen und Matrikelnummer in einer csv.-Datei vor, welche auch zur Erstellung personalisierter Klausuren verwendet wird. Es ist prinzipiell wie im Beispiel möglich, die Bonuspunkte mittels Bonus auszulesen und einfach als Textzeile vor oder hinter die Tabelle zu setzen, ich würde die aber gerne als "Bonus +" in das Feld eintragen, wo später die Summe der in der Klausur erreichten Punkte eingetragen wird. Ist es möglich den entsprechenden Eintrag anzusprechen und dort die Bonuspunkte einzutragen?

Alternative: es wäre auch möglich, die csv-Datei um einen Eintrag "bonusaufgabe" o.ä. zu ergänzen, wo zusätzlich die maximal erreichbaren Bonuspunkte aufgeführt werden. In dem Fall: wäre es machbar, diese Bonusaufgabe zusätzlich im Gradingtable aufzuführen (nach der letzten Aufgabe) und in der Zeile mit den erreichten Punkten entsprechend Bonus einzutragen? Die Aufgabennummer sollte in dem Fall "B" sein, damit es keine Verwechslung mit den nummerierten Klausuraufgaben geben kann.

Mit Clemens Antwort etwas abgeändert:

Öffne in Overleaf
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[most]{tcolorbox}
\usepackage{xsim}

%%%%%%%%%%%%%%%%%%%%%%Teilnehmerliste%%%%%%%%%%%%%%%%%%%%%%

%\begin{filecontents}{Teilnehmer.csv}
%nachname,vorname,mtknr,bonus
%Musterman,Max,12345,1
%Musterfrau,Erika,23456,4
%\end{filecontents}

%%%%%%%%%%%%%%%%Einlesen der Teilnehmerliste%%%%%%%%%%%%%%%
\usepackage{datatool}
\DTLsetseparator{,}
\DTLloaddb{teilnehmer}{Teilnehmer.csv}
%%%%%%%%%%%%%%%%%%%%%Aufgabenumgebung%%%%%%%%%%%%%%%%%%%%%%

\DeclareExerciseType{klausuraufgabe}{%
  exercise-env = aufgabe ,%
  solution-env = loesung ,%
  exercise-name = Aufgabe ,%
  solution-name = Lösung ,%
  exercise-template = klausuraufgabe,%
  solution-template = klausuraufgabe%
}%

\DeclareExerciseCollection{klausur}%

%%%%%%%%%%%%%%%%%%%%%%%Punktetabelle%%%%%%%%%%%%%%%%%%%%%%%

\DeclareExerciseTableTemplate{punktetabelle}{%
  \renewcommand*\arraystretch{2}%
  \XSIMputright\ExerciseTableCode{ \hline Aufgabe & }%
  \ForEachUsedExerciseByType{\XSIMputright\ExerciseTableCode{#3&}}%
  \XSIMputright\ExerciseTableCode{%
     {\LARGE$\sum$} + Bonus \\% <<<< Neu
     \hline Maximalpunktzahl &%
  }%
  \ForEachUsedExerciseByType{%
    \XSIMputright\ExerciseTableCode%
      {\XSIMifblankTF{#5}{\printgoal{0}}{\printgoal{#5}} & }%
  }%
  \XSIMputright\ExerciseTableCode{%
    \TotalExerciseGoal{points}{}{}\\ \hline%
    erreichte Punktzahl &  %
  }%
  \ForEachUsedExerciseByType{ \XSIMputright\ExerciseTableCode{&} }%
  \XSIMputright\ExerciseTableCode{\phantom{+Bonus}+\Bonus \\ \hline}% <<<< Neu
  \XSIMifeqF{\numberofklausuraufgabes}{0}{%
    \begin {tabular} {|l|*{\numberofklausuraufgabes}{>{\centering\arraybackslash}p{6mm}|}c|}%
      \ExerciseTableCode%
    \end {tabular}%
  }%
}%

\begin{document}
\collectexercises{klausur}

\begin{aufgabe}[points=12+(10+4)+1+2]
Aufgabe 1
\end{aufgabe}

\begin{aufgabe}[points=3.5+10.5+2]
Aufgabe 2
\end{aufgabe}
\collectexercisesstop{klausur}

\DTLforeach*{teilnehmer}{
\Name=nachname,%
\Vorname=vorname,%
\Matrikelnummer=mtknr,%
\Bonus=bonus%
}{%
\printexercise{klausuraufgabe}{1}

\printexercise{klausuraufgabe}{2}
\Name, \Vorname \begin{center}\gradingtable[template=punktetabelle]\end{center}%

Bonuspunkte: \Bonus
}
\end{document}

gefragt 19 Dez '18, 10:37

Hirshy's gravatar image

Hirshy
6311334
Akzeptiert: 87%

bearbeitet 20 Dez '18, 03:46


So vielleicht?

Öffne in Overleaf
\DeclareExerciseTableTemplate{punktetabelle}{%
  \renewcommand*\arraystretch{2}%
  \XSIMputright\ExerciseTableCode{ \hline Aufgabe & }%
  \ForEachUsedExerciseByType{\XSIMputright\ExerciseTableCode{#3&}}%
  \XSIMputright\ExerciseTableCode{%
     {\LARGE$\sum$} + Bonus \\% <<<< NEU
     \hline Maximalpunktzahl &%
  }%
  \ForEachUsedExerciseByType{%
    \XSIMputright\ExerciseTableCode%
      {\XSIMifblankTF{#5}{\printgoal{0}}{\printgoal{#5}} & }%
  }%
  \XSIMputright\ExerciseTableCode{%
    $\TotalExerciseGoal{points}{}{} + \Bonus$ \\ \hline% <<<< NEU
    erreichte Punktzahl & %
  }%
  \ForEachUsedExerciseByType{ \XSIMputright\ExerciseTableCode{&} }%
  \XSIMputright\ExerciseTableCode{\\\hline}%
  \XSIMifeqF{\numberofklausuraufgabes}{0}{%
    \begin {tabular} {|l|*{\numberofklausuraufgabes}{>{\centering\arraybackslash}p{6mm}|}c|}%
      \ExerciseTableCode %
    \end {tabular}%
  }%
}%

alt text

Permanenter link

beantwortet 19 Dez '18, 13:00

Clemens's gravatar image

Clemens
20.5k153461

1

Oder sollen die in die Zeile darunter ins letzte Feld von den erreichten Punkten?

(19 Dez '18, 13:01) Clemens

Ja, die sollen eine Zeile drunter. Das habe ich mit deinem Vorschlag jetzt auch gelöst bekommen, ich editier es in meine Frage als Beispiel ein. Danke!

(20 Dez '18, 03:11) 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:

×9

Frage gestellt: 19 Dez '18, 10:37

Frage wurde angeschaut: 232 Mal

Zuletzt aktualisiert: 20 Dez '18, 03:46