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, 16:37

Hirshy's gravatar image

Hirshy
73133745
Akzeptiert-Rate: 0%

bearbeitet 20 Dez '18, 09: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, 19:00

cgnieder's gravatar image

cgnieder
22.1k253463
Akzeptiert-Rate: 60%

1

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

(19 Dez '18, 19:01) cgnieder

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, 09:11) 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:

×19

gestellte Frage: 19 Dez '18, 16:37

Frage wurde gesehen: 4,118 Mal

zuletzt geändert: 20 Dez '18, 09:46