Ich möchte eine Aufgabensammlung erstellen; am Ende des Dokumentes soll ein Lösungsteil aufgeführt werden.

Die Aufgaben umfassen 5 Themengebiete, ich denke es ist dennoch kein Fehler Aufgaben und Lösungen fortlaufend mit A1, A2, A3,... bzw. L1, L2, L3,... zu nummerieren.

Wie kann ich das möglichst automatisieren? Also Aufgaben und Lösungen immer in einem Zug eingeben, wobei alles am richtigen Ort erscheint.
Hat mir jmd. dazu grundsätzliche Ideen / Tipps?

Vorläufige Optik:
alt text

\documentclass[paper=A5]{scrreprt}
\usepackage{amsmath, amsfonts, amssymb}

\begin{document}
\minisec{Löse}
\textsf{A1.} $x+2=5$

\dots

\minisec{Berechne}
\textsf{A23.} $\dfrac{1}{a}+a$

\newpage
\chapter*{Lösungsteil}
\textsf{L1.} $x=3$

\dots

\noindent\textsf{L23.} $\dfrac{a^2+1}{a}$
\end{document}

gefragt 31 Okt '19, 15:47

haver555's gravatar image

haver555
199512
Akzeptiert-Rate: 9%

bearbeitet 31 Okt '19, 17:16

gast3's gravatar image

gast3
(ausgesetzt)

1

Dabei kann eventuell xsim und/oder eqexam helfen.

(31 Okt '19, 17:13) Bartman

Guck dir mal https://texwelt.de/fragen/9658/kopfzeile-im-anhang-falsch an, da wird genau das gemacht. Dabei wird zwar das Paket exsheet verwendet, welches mittlerweile von xsim abgelöst wurde, das gewünschte Ergebnis dürfte mit xsim aber auch erreichbar sein.

(01 Nov '19, 09:15) Hirshy

Ein Kommentar meinte, xsim könne helfen...

Der folgende Vorschlag adaptiert das Layout der Frage:

\documentclass[paper=A5]{scrreprt}
\usepackage{amsmath, amsfonts, amssymb}

\usepackage[no-files]{xsim}
\DeclareExerciseEnvironmentTemplate{basic}
  {\par\noindent\textsf{\IfInsideSolutionTF{L}{A}\GetExerciseProperty{counter}} }
  {\par}

\xsimsetup{
  exercise/template = basic ,
  solution/template = basic ,
  exercise/the-counter = \arabic{exercise}. ,
  print-solutions/headings = false
}

\begin{document}

\minisec{Löse}

\begin{exercise}
  $x+2=5$
\end{exercise}
\begin{solution}
  $x=3$
\end{solution}

\setcounter{exercise}{22}
\minisec{Berechne}

\begin{exercise}
  $\dfrac{1}{a}+a$
\end{exercise}
\begin{solution}
  $\dfrac{a^2+1}{a}$
\end{solution}

\chapter*{Lösungsteil}

\printsolutions

\end{document}
Permanenter link

beantwortet 01 Nov '19, 09:51

cgnieder's gravatar image

cgnieder
22.1k243463
Akzeptiert-Rate: 60%

@Clemens Auch ui. Die Option no-files musste ich rausnehmen, da sonst die Fehlermeldung Unknown Option kam. Ansonsten scheint xsim sehr genau für die vorliegende Aufgabenstellung vorgesehgen zu sein. Dann muss ich mir dieses mir neue Paket einmal genauer anschauen.

(01 Nov '19, 11:41) haver555

Die Option no-files kam im letzten Update dazu. Wenn Du Deine Distribution Updates, hast Du sie auch. Sie ist für das Beispiel aber eigentlich irrelevant...

(01 Nov '19, 11:58) cgnieder

@Clemens Ich bin sehr begeistert. Gut, dann denke ich xsim dürfte das zentrale Paket für meine 'Aufgabensammlung' sein. Ich werde vermutlich, in der kommenden Zeit, die eine oder andere Detailfrage haben, wenn's genehm ist.
Interessehalber habe ich mich gefragt: Die Aufgabensammlung hat vereinzelt "Theorieteile", das sind eingerahmte Kästen, in denen die Formeln stehen, die für nachfolgende Aufgaben benötigt werden.
Sieht xsim dafür etwas Spezielles vor?
Ansonsten ist das ja leicht auch anders umgesetzt.

(01 Nov '19, 12:23) haver555

Für eingerahmte Kästen ist eigentlich tcolorbox das richtige Tool. Das kannst Du bei Bedarf auch mit xsim kombinieren

(01 Nov '19, 15:32) cgnieder

Nach dem Update kam der no-files Fehler nicht mehr, dafür aber Unknown argument type 'b' for the command '\environment exercise'. Ja, keine Ahnung. Vielleicht muss ich LaTeX komplett neu aufsetzen.

(03 Nov '19, 14:41) haver555
1

Dann ist Deine Version des l3kernels oder der l3packages zu alt. Man sollte bei jedem Update immer die ganze Distribution updaten, sonst passieren genau solche Probleme. Bei TeXlive ist das recht leicht, bei MiKTeX gibt es da aber immer wieder Schwierigkeiten. Falls Du letzteres verwendest: https://texwelt.de/fragen/24357/

(03 Nov '19, 15:17) cgnieder

@cgnieder Sollte man diese Art der Indizierung A1,A2,... / L1,L2,... -alternativ- nicht besser den tasks überantworten? Das geht doch sicherlich auch, äquivalent? Auf die Idee kam ich, nachdem ich in das Handbuch von tasks gesehen habe und gesehen habe, wer da der Autor ist.

(03 Mär '20, 21:18) cis

@cis kann jeder machen wie er will IMHO. Das ist ja einer der Vorteile von xsim, dass man es sich so zurechtbasteln kann, wie es einem am besten passt.

(04 Mär '20, 19:06) cgnieder
Ergebnis 5 von 8 show 3 more comments

Proof-of-Concept Antwort. Wir schreiben sämtliche Lösungen in ein Tokenregister, das am Ende des Dokuments ausgegeben wird. Du kannst die beiden Befehle \format@question und \format@solution umdefinieren, damit die Ausgabe deinen Anforderungen entspricht.

\documentclass[paper=A5]{scrreprt}

\usepackage{amsmath,amsfonts,amssymb}
\usepackage{environ}

\makeatletter
\newtoks\solution@toks
\newcounter{question}
\newenvironment{question}[1][Berechne]
  {%
    \format@question{#1}%
  }
  {%
    \par
  }
\newcommand\addto@solution[1]
  {%
    \global\solution@toks\expandafter{\the\solution@toks#1}%
  }
\NewEnviron{solution}
  {%
    \edef\solution@tmp
      {%
        \noexpand\format@solution{\the\value{question}}
        \unexpanded\expandafter{\BODY}%
      }%
    \expandafter\addto@solution\expandafter{\solution@tmp}%
  }
\AtEndDocument{\addchap{Lösungsteil}\the\solution@toks}
\newcommand*\format@solution[1]
  {%
    \par
    \begingroup
    \setcounter{question}{#1}%
    \noindent\begingroup\Large\textbf{L\thequestion.}\par\endgroup
    \endgroup
  }
\newcommand*\format@question[1]
  {%
    \par
    \refstepcounter{question}%
    \noindent\begingroup\Large\textbf{A\thequestion.\space #1}\par\endgroup
  }
\makeatother

\begin{document}
\addchap{Aufgabenteil}
\begin{question}
  $x+2=5$
\end{question}
\begin{solution}
  $x=3$
\end{solution}
\begin{question}[Schreibe]
  ``Anapher''
\end{question}
\begin{solution}
  Anapher
\end{solution}
\end{document}
Permanenter link

beantwortet 31 Okt '19, 17:22

Skillmon's gravatar image

Skillmon
1.1k6
Akzeptiert-Rate: 48%

Ui, das ist sehr professionell gemacht. Ich werde dennoch einmal schauen, ob ich das nicht mit einem (möglichst modernen) Indexpaket umsetzen kann. So dass die Lösungen im Lösungsteil gewissermaßen einer Indexliste entsprechen. Hier ist es meistens nicht ganz einfach, Layouts dafür einzustellen.

(31 Okt '19, 21:37) haver555
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:

×38
×6
×2

gestellte Frage: 31 Okt '19, 15:47

Frage wurde gesehen: 4,867 Mal

zuletzt geändert: 04 Mär '20, 19:06