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 |
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}% }% }% beantwortet 19 Dez '18, 19:00 cgnieder 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
|