Ist es möglich mit xsim alle Aufgaben/Lösung auszugeben und jede Aufgabe mit zugehöriger Lösung auf einer neuen Seite beginnen zu lassen?

Öffne in Overleaf
\documentclass{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{xsim}

\DeclareExerciseCollection{klausur}

\begin{document}

\collectexercises{klausur}

\begin{exercise}
Dies ist eine Aufgabe.
\end{exercise}

\begin{solution}
Lösung zu Aufgabe 1
\end{solution}

\begin{exercise}
Aufgabe 2
\end{exercise}

\begin{solution}
Lösung Aufgabe 2
\end{solution}

\begin{exercise}
Aufgabe 3
\end{exercise}

\begin{solution}
Lösung Aufgabe 3
\end{solution}

\collectexercisesstop{klausur}

\printcollection[print=both]{klausur}

\end{document}

Zusatz: damit beim doppelseitigen Druck nicht zwei verschiedene Aufgaben auf einem Blatt Papier vorne/hinten sind, kann man entsprechend gerade/ungerade Seiten berücksichtigen und passend einfügen, damit jede Aufgabe auf einer rechten Seite beginnt?

gefragt 12 Jun, 05:07

Hirshy's gravatar image

Hirshy
561929
Akzeptiert: 87%


Wenn ich Dich richtig verstehe, willst du im doppelseitigen Druck, jeweils auf der Vorderseite die Aufgabe und auf der Rückseite die Lösung haben. Dafür musst du zunächst mit der Klassenoption twoside überhaupt erst einmal in den doppelseitigen Modus schalten. Dann kannst du ein neues Template für xsim definieren, das diese Umschaltung auf die nächste Seite – bzw. die nächste rechte Seite, wenn es ich nicht um eine Lösung, sondern eine Aufgabe handelt – vornimmt. Hier ein Beispiel, bei dem ich das Standardtemplate default genommen und lediglich die Zeile für den Umbruch hinzugefügt habe:

Öffne in Overleaf
\documentclass[twoside]{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{xsim}

\DeclareExerciseCollection{klausur}
\DeclareExerciseEnvironmentTemplate{newpage}{%
  \clearpage\IfInsideSolutionF{\cleardoubleoddpage}% NEU
  \subsection*
  {%
    \XSIMmixedcase{\GetExerciseName}\nobreakspace
    \GetExerciseProperty{counter}%
    \IfInsideSolutionF
    {%
      \GetExercisePropertyT{subtitle}
      { {\normalfont\itshape\PropertyValue}}%
    }%
  }
  \GetExercisePropertyT{points}
  {%
    \marginpar
    {%
      \IfInsideSolutionF{\rule{1.2cm}{1pt}\slash}%
      \printgoal{\PropertyValue}
      \GetExercisePropertyT{bonus-points}{~(+\printgoal{\PropertyValue})
      }%
      ~\XSIMtranslate {point-abbr}%
    }%
  }%
}
{}
\SetExerciseParameter{exercise}{exercise-template}{newpage}
\SetExerciseParameter{exercise}{solution-template}{newpage}

\begin{document}

\collectexercises{klausur}

\begin{exercise}
Dies ist eine Aufgabe.
\end{exercise}

\begin{solution}
Lösung zu Aufgabe 1
\end{solution}

\begin{exercise}
Aufgabe 2
\end{exercise}

\begin{solution}
Lösung Aufgabe 2
\end{solution}

\begin{exercise}
Aufgabe 3
\end{exercise}

\begin{solution}
Lösung Aufgabe 3
\end{solution}

\collectexercisesstop{klausur}

\printcollection[print=both]{klausur}

\end{document}

Den Code für das Standardtemplate default habe ich der Anleitung zu xsim entnommen. Man bekommt dann beispielsweise:

Doppelseite mit Aufgabe auf der Vorder- und Lösung auf der Rückseite.

Soll die Lösung bereits auf der Seite mit der Übung beginnen dürfen, lässt man in der mit „% NEU” markierten Zeile einfach das \clearpage weg.

Permanenter link

beantwortet 12 Jun, 05:39

Ijon%20Tichy's gravatar image

Ijon Tichy
7.7k11019

bearbeitet 12 Jun, 05:40

Herzlichen Dank, funktioniert tadellos!

(12 Jun, 06:10) Hirshy

@Clemens Habe ich beides überlesen. Das Paket kann einfach extrem viel. Mach doch eine Antwort draus.

(12 Jun, 10:00) Ijon Tichy

@Ijon das hab ich dann mal gemacht :)

(12 Jun, 11:47) Clemens

Wie Aufgaben oder deren Lösungen ausgegeben/gedruckt werden bzw. welches Layout sie haben, hängt davon ab, welches Template für sie verwendet wird. xsim stellt ein paar vordefinierte bereit, aber die Grundidee ist, sich für die eigenen Klausuren, Bücher, Aufgabenblätter, … eigene Templates zu definieren. (Falls man die wiederholt einsetzen möchte, ist sogar zu empfehlen, sich eine Stildatei anzulegen und diese dann bei Bedarf zu laden – das ist im Anhang des Manuals beschrieben.)

Ein Beispiel dafür, wie das geht, ist in @Ijon Tichys Antwort zu sehen.

Bei einer so kleinen Addition zu einem bestehenden Template braucht man allerdings nicht den ganzen Code zu kopieren. Mit \UseExerciseTemplate kann man bestehende Templates einfach einfügen. Dabei muss man beachten, dass „ExerciseEnvironment“-Templates eigentlich zwei Templates sind, eines für den Anfang der Umgebung und eines für das Ende:

Öffne in Overleaf
\DeclareExerciseEnvironmentTemplate{newpage}{%
  \clearpage\IfInsideSolutionF{\cleardoubleoddpage}%
  \UseExerciseTemplate{begin}{default}%
}
{\UseExerciseTemplate{end}{default}}

Das modifizierte Template kann dann wie jedes andere ausgewählt werden:

Öffne in Overleaf
\xsimsetup{
  exercise/template = newpage ,
  solution/template = newpage
}

Hier allerdings ist ja eigentlich nur eine minimale Modifikation des default-Stils gefragt, nämlich dass ein Seitenumbruch vor der jeweiligen Aufgabe und Lösung eingefügt wird. Für solche Modifikationen bietet xsim eine Reihe von Hooks. Mit

Öffne in Overleaf
\xsimsetup{
  exercise/pre-hook = \cleardoubleoddpage ,
  solution/pre-hook = \clearpage
}

bekommt man das gleiche Ergebnis ohne dass das weitere Layout davon betroffen ist.

Permanenter link

beantwortet 12 Jun, 11:46

Clemens's gravatar image

Clemens
20.4k143461

bearbeitet 13 Jun, 06:18

So ist es natürlich noch einmal etwas einfacher. Sollte man zum Setzen des Templates \xsimsetup gegenüber \SetExerciseParameter(s) bevorzugen oder ist das egal?

(12 Jun, 11:55) Ijon Tichy

@Ijon das ist egal, das ist nur ein verschiedenes Interface. Die ganzen „CamelCase“-Befehle sind tendenziell eher für die Verwendung in Template-Definition o.ä. gedacht, während die komplett klein geschriebenen als Anwenderbefehle gedacht sind, aber letztlich macht es keinen Unterschied.

(12 Jun, 12:09) Clemens
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:

×6

Frage gestellt: 12 Jun, 05:07

Frage wurde angeschaut: 404 Mal

Zuletzt aktualisiert: 13 Jun, 06:18