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 '18, 11:07

Hirshy's gravatar image

Hirshy
73133645
Akzeptiert-Rate: 0%


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 '18, 11:39

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

bearbeitet 12 Jun '18, 11:40

Herzlichen Dank, funktioniert tadellos!

(12 Jun '18, 12:10) Hirshy

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

(12 Jun '18, 16:00) gast3

@Ijon das hab ich dann mal gemacht :)

(12 Jun '18, 17:47) cgnieder

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 '18, 17:46

cgnieder's gravatar image

cgnieder
22.1k243463
Akzeptiert-Rate: 60%

bearbeitet 13 Jun '18, 12:18

@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 '18, 18:09) cgnieder
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: 12 Jun '18, 11:07

Frage wurde gesehen: 5,249 Mal

zuletzt geändert: 13 Jun '18, 12:18