
Angenommen, ich verwende den Prüfungskurs. Es gibt eine Option \printanswers
zum Drucken von Lösungen, andernfalls werden Lösungen nicht gedruckt. Ich möchte Fragen unterdrücken und nur die Lösungen drucken. Ist das möglich?
Bearbeiten
Ich habe einen einfachen Workaround hinzugefügt, aber vielleicht gibt es einen besseren Weg, dies zu tun? Hier ist eine Demo mit der modifizierten Prüfungsklasse, gefundenHier.
% Document
\documentclass[12pt]{exam2}
\usepackage[margin=1.0in]{geometry}
\usepackage{fancyhdr}
\usepackage{amsmath}
\pagestyle{fancy}
\lhead{The author}
\rhead{The assignment}
\setcounter{section}{1}
\unframedsolutions
% Preamble
\printquestions
\printanswers
\begin{document}
\numberwithin{question}{section}
\begin{questions}
\begin{quest}
What is $\int_{0}^{5} x^2 dx$?
\end{quest}
\begin{solution}
This integral can be calculated as
\begin{align}
\int_{0}^{5} x^3 &= \Big[ \frac{x^3}{3} \Big|_{0}^{5} \notag \\
&= \frac{5^{3}}{3}
\end{align}
\end{solution}
\begin{quest}
The next question would go here
\questp{a}{Part a of the question}
\questsp{i}{Subpart of a}
\questspnob{More information}
\end{quest}
\begin{solution}
The next answer would go here
\begin{parts}
\part Parts works in solution environment
\begin{subparts}
\subpart Here is a subpart
\end{subparts}
\end{parts}
\end{solution}
\end{questions}
\end{document}
Fragen und Antworten
% Preamble:
\printquestions
\printanswers
Nur Fragen
% Preamble:
\printquestions
%\printanswers
Nur Antworten
% Preamble:
%\printquestions
\printanswers
Antwort1
Ich habe die folgenden Änderungen an exam.cls vorgenommen.
Zuerst habe ich eine \printquestions-Option hinzugefügt.
\newif\ifprintanswers
\printanswersfalse
\DeclareOption{answers}{\printanswerstrue}
\DeclareOption{noanswers}{\printanswersfalse}
% BEGIN EDIT %
\newif\ifprintquestions
\printquestionsfalse
\DeclareOption{yesquestions}{\printquestionstrue}
\DeclareOption{noquestions}{\printquestionsfalse}
% END EDIT %
Dann später
\def\printanswers{\printanswerstrue}
\def\noprintanswers{\printanswersfalse}
\def\printquestions{\printquestionstrue}
Als nächstes ändere ich die Lösungsumgebung. Wenn ich die Fragen nicht drucke, dann wollte ich, dass die Lösungsumgebung als \question fungiert.
\newenvironment{solution}[1][0pt]{%
\ifprintquestions % act as a solution
\@insolutiontrue % cancelled by the end of the environment
\@addpointsfalse % cancelled by the end of the environment
\ifprintanswers
\begingroup
\Solution@Emphasis
\begin{TheSolution}%
\else
\ifcancelspace
% Do nothing
\else
\par
\penalty 0
\vspace*{#1}%
\fi
\setbox\z@\vbox\bgroup
\fi
\else %act as a question
\question
\fi
}{%
\ifprintquestions %act as a solution
\ifprintanswers
\end{TheSolution}%
\endgroup
\else
\egroup
\fi
\fi
}%
Als nächstes füge ich eine Quest-Umgebung hinzu, die ausgeblendet werden kann. Dies müsste jedoch anstelle von \question verwendet werden.
\newenvironment{quest}[1][0pt]%
{%
\ifprintquestions % act as a question
\question
\else % don't show the question
%\par
%\vspace*{-9mm} %
\setbox\z@\vbox\bgroup
\fi
}{%
\ifprintquestions
% don't do anything
\else % hide the group
\egroup
\fi
}%
Ärgerlich ist, dass die Auflistung von Listen, Teilen und Unterteilen in der von mir definierten Umgebung nicht funktioniert (ich glaube, das liegt daran, dass der \question-Aufruf einige Variablen initialisiert, die ich nicht initialisiere. Aus diesem Grund habe ich einige grundlegende Befehle zur Auflistung von Listen in der tabellarischen Umgebung erstellt).
% PART
\newcommand{\questp}[2]{%
\begin{tabular}{R{0.25cm} p{14.75cm}}
(#1) & #2 \\
\end{tabular}
{}
}
\usepackage{array,booktabs,ragged2e}
\newcolumntype{R}[1]{>{\RaggedLeft\arraybackslash}p{#1}}
\newcommand{\questsp}[2]{%
\hspace*{2em}\begin{tabular}{R{1cm} p{13.15cm}}
(#1) & #2 \\
\end{tabular}
{}
}
% SUBPART
\newcommand{\questssp}[1]{%
\hspace*{8em}\begin{tabular}{p{10.75cm}}
#1 \\
\end{tabular}
{}
}
Auf diese Weise könnten noch einige weitere Teilbefehle definiert werden.
\newcommand{\questpnob}[1]{%
\begin{tabular}{R{0.25cm} p{13.15cm}}
& #1 \\
\end{tabular}
{}
}
\newcommand{\questspnob}[1]{%
\hspace*{2em}\begin{tabular}{R{1cm} p{13.15cm}}
& #1 \\
\end{tabular}
{}
}