
Ich möchte Übungen mit Unterfragen so setzen, dass im Code direkt nach jeder Unterfrage eine Antwort steht, in der Ausgabe aber alle Antworten am Ende stehen. Außerdem möchte ich, dass sowohl Übungen als auch Unterfragen automatisch nummeriert werden. Ich weiß, dass es mehrere Pakete zum Setzen von Übungen gibt (z. B. „Antworten“, „Übung“ und „Problemlösung“). Ich weiß auch, dass es einen Dokumenttyp namens „Prüfung“ gibt.
Meine Frage ist: Welches Paket würde hierfür am besten funktionieren und welche Art von Code würde das Ergebnis erzeugen?
Ich würde gerne etwa Folgendes schreiben:
\begin{ExerciseList}
\Exercise{}
Calculate the following:
\Question{$7+2$}
\Answer{$9$}
\Question{$9-9$}
\Answer{$0$}
\Question{$5+5+5$}
\Answer{$15$}
\Exercise{}
Solve the following equations:
\Question{$x+5=7$}
\Answer{$x=2$}
\Question{$x-5=9$}
\Answer{$x=14$}
\Question{$5x=20$}
\Answer{$x=4$}
\end{ExerciseList}
Und ich möchte, dass das endgültige Dokument ungefähr so aussieht:
Übung 1
Berechnen Sie folgendes:
a) 7+2 b) 9-9 c) 5+5+5Übung 2
Lösen Sie die folgenden Gleichungen:
a) x+5=7 b) x-5=9 c) 5x=20Lösungen:
Übung 1
a) 9 b) 0 c) 15Übung 2
a) x+5=7 b) x=14 c) x=4
Der obige Code ist nur ein Beispiel. Die Befehle müssen nicht genau so sein, wie ich sie geschrieben habe, solange die Struktur ähnlich ist.
Antwort1
Mit dem probsoln
Paket können Probleme entweder innerhalb des Dokuments oder in einer externen Datei definiert werden, die mit einem Befehl wie \loadallproblems
oder geladen werden kann \loadrandomproblems
.
Hier ist ein einfaches Beispiel mit den im Dokument definierten Problemen:
\documentclass{article}
\usepackage{probsoln}
\begin{defproblem}{prob1}% label
\begin{onlyproblem}% question
Calculate the following:%
\begin{textenum}
\item $7+2$
\item $9-9$
\item $5+5+5$
\end{textenum}
\end{onlyproblem}%
\begin{onlysolution}% solution
\begin{textenum}
\item $9$
\item $0$
\item $15$
\end{textenum}
\end{onlysolution}
\end{defproblem}
\begin{defproblem}{prob2}% label
\begin{onlyproblem}% question
Solve the following equations:
\begin{textenum}
\item $x+5=7$
\item $x-5=9$
\item $5x=20$
\end{textenum}
\end{onlyproblem}%
\begin{onlysolution}% solution
\begin{textenum}
\item $x=2$
\item $x=14$
\item $x=4$
\end{textenum}
\end{onlysolution}
\end{defproblem}
\begin{document}
\renewcommand{\labelenumii}{\theenumii)}
\begin{enumerate}
\foreachproblem{\item\thisproblem}
\end{enumerate}
\section*{Solutions}
\showanswers
\begin{enumerate}
\foreachsolution{\item\thisproblem}
\end{enumerate}
\end{document}
Dadurch entsteht
Die Formatierung kann geändert werden. Beispielsweise mit demenumitem
Paket:
\documentclass{article}
\usepackage{probsoln}
\usepackage{enumitem}
\begin{defproblem}{prob1}% label
\begin{onlyproblem}% question
Calculate the following:%
\begin{textenum}
\item $7+2$
\item $9-9$
\item $5+5+5$
\end{textenum}
\end{onlyproblem}%
\begin{onlysolution}% solution
\begin{textenum}
\item $9$
\item $0$
\item $15$
\end{textenum}
\end{onlysolution}
\end{defproblem}
\begin{defproblem}{prob2}% label
\begin{onlyproblem}% question
Solve the following equations:
\begin{textenum}
\item $x+5=7$
\item $x-5=9$
\item $5x=20$
\end{textenum}
\end{onlyproblem}%
\begin{onlysolution}% solution
\begin{textenum}
\item $x=2$
\item $x=14$
\item $x=4$
\end{textenum}
\end{onlysolution}
\end{defproblem}
\newenvironment{ExerciseList}
{\begin{enumerate}[label={\emph{Exercise \arabic*}},%
ref={\arabic*},wide]
\renewcommand{\labelenumii}{\theenumii)}%
}
{\end{enumerate}}
\newcommand{\exercise}{\item\mbox{}\par}
\begin{document}
\begin{ExerciseList}
\foreachproblem{\exercise\thisproblem}
\end{ExerciseList}
\section*{Solutions}
\showanswers
\begin{ExerciseList}
\foreachsolution{\exercise\thisproblem}
\end{ExerciseList}
\end{document}
Das Ergebnis:
Bearbeiten:
Hier ist eine Alternative, bei der Sie die Antwort neben der Frage in den Code schreiben können:
\documentclass{article}
\usepackage{probsoln}
\usepackage{enumitem}
\newcommand{\QA}[2]{%
\begin{onlyproblem}#1\end{onlyproblem}%
\begin{onlysolution}#2\end{onlysolution}}
\begin{defproblem}{prob1}% label
\begin{onlyproblem}% question
Calculate the following:%
\end{onlyproblem}%
\begin{textenum}
\item \QA{$7+2$}{$9$}
\item \QA{$9-9$}{$0$}
\item \QA{$5+5+5$}{$15$}
\end{textenum}
\end{defproblem}
\begin{defproblem}{prob2}% label
\begin{onlyproblem}% question
Solve the following equations:
\end{onlyproblem}%
\begin{textenum}
\item \QA{$x+5=7$}{$x=2$}
\item \QA{$x-5=9$}{$x=14$}
\item \QA{$5x=20$}{$x=4$}
\end{textenum}
\end{defproblem}
\newenvironment{ExerciseList}
{\begin{enumerate}[label={\emph{Exercise \arabic*}},%
ref={\arabic*},wide]
\renewcommand{\labelenumii}{\theenumii)}%
}
{\end{enumerate}}
\newcommand{\exercise}{\item\mbox{}\par}
\begin{document}
\begin{ExerciseList}
\foreachproblem{\exercise\thisproblem}
\end{ExerciseList}
\section*{Solutions}
\showanswers
\begin{ExerciseList}
\foreachsolution{\exercise\thisproblem}
\end{ExerciseList}
\end{document}
Das Ergebnis ist das gleiche wie im vorherigen Beispiel.
Bearbeitung 2:
Hier ist eine Methode, die das Problem definiert und anzeigt. Das Etikett wird automatisch generiert:
\documentclass{article}
\usepackage{probsoln}
\usepackage{enumitem}
\newcommand{\QA}[2]{%
\begin{onlyproblem}#1\end{onlyproblem}%
\begin{onlysolution}#2\end{onlysolution}}
\newenvironment{ExerciseList}
{\begin{enumerate}[label={\emph{Exercise \arabic*}},%
ref={\arabic*},wide]
\renewcommand{\labelenumii}{\theenumii)}%
}
{\end{enumerate}}
\newcommand{\exercise}{\item\mbox{}\par}
\newcommand{\Exercise}[2]{\exercise
#1\par
\begin{defproblem}{prob\arabic{enumi}}%
\begin{textenum}%
#2%
\end{textenum}%
\end{defproblem}%
\useproblem{prob\arabic{enumi}}%
}
\begin{document}
\begin{ExerciseList}
\Exercise{Calculate the following:}%
{%
\item \QA{$7+2$}{$9$}
\item \QA{$9-9$}{$0$}
\item \QA{$5+5+5$}{$15$}
}%
\Exercise{Solve the following equations:}
{%
\item \QA{$x+5=7$}{$x=2$}
\item \QA{$x-5=9$}{$x=14$}
\item \QA{$5x=20$}{$x=4$}
}
\end{ExerciseList}
\section*{Solutions}
\showanswers
\begin{ExerciseList}
\foreachsolution{\exercise\thisproblem}
\end{ExerciseList}
\end{document}
Antwort2
Hier ist eine Lösung mit dem answers
Paket. Sie können an der Formatierung der Antworten herumbasteln.
\documentclass[pdftex,12pt]{article}
\usepackage{amsmath}
\usepackage{answers}
\newcommand{\answerFileName}{anexamanswers}
\Newassociation{sol}{Solution}{\answerFileName}
\Opensolutionfile{\answerFileName}
\newenvironment{Exercise}[1]
{\item #1
\begin{enumerate}
}
{
\end{enumerate}
}
\newcommand{\Question}[1]{%
\item #1
}
\begin{document}
\begin{enumerate}
\begin{Exercise}{Calculate the following:}
\Question{$7+2$}
\begin{sol}
$9$
\end{sol}
\Question{$9-9$}
\begin{sol}
$0$
\end{sol}
\end{Exercise}
\begin{Exercise}{Solve the following equations:}
\Question{$x+5=7$}
\begin{sol}
$x=2$
\end{sol}
\Question{$x-5=9$}
% \Answer{$x=14$}
\Question{$5x=20$}
% \Answer{$x=4$}
\end{Exercise}
\end{enumerate}
\Closesolutionfile{\answerFileName}
\newpage
Answers to Exercises:
\input{\answerFileName}
\end{document}
Antwort3
Hier ist ein Vorschlag zur Verwendung der Pakete exsheets
und tasks
:
\documentclass{article}
\usepackage{exsheets,tasks}
\SetupExSheets{
solution/name=Exercise ,
headings-format=\itshape
}
\begin{document}
\begin{question}
Calculate the following:
\begin{tasks}(3)
\task $7+2$
\task $9-9$
\task $5+5+5$
\end{tasks}
\end{question}
\begin{solution}
\begin{tasks}(3)
\task $9$
\task $0$
\task $15$
\end{tasks}
\end{solution}
\begin{question}
Solve the following equations:
\begin{tasks}(3)
\task $x+5=7$
\task $x-5=9$
\task $5x=20$
\end{tasks}
\end{question}
\begin{solution}
\begin{tasks}(3)
\task $x=2$
\task $x=14$
\task $x=4$
\end{tasks}
\end{solution}
\section*{Solutions}
\printsolutions
\end{document}