Wie kann ich die Antwort AUSBLENDEN und ANZEIGEN?

Wie kann ich die Antwort AUSBLENDEN und ANZEIGEN?

Ich möchte ein Handout erstellen, das viele Fragen enthält.

Ich möchte eine Ausgabe davon:

Bildbeschreibung hier eingeben

Eine andere Ausgabe sieht folgendermaßen aus:

Bildbeschreibung hier eingeben

Die 3. Ausgabe sieht folgendermaßen aus:

  1. Berechnen Sie 1+2

  2. Berechnen Sie 1+2+3

  3. Berechnen Sie 1+2+3+4

  4. Berechnen Sie 1+2+3+4+5

  5. Berechnen Sie 1+2+3+4+5+6

Das Problem hier ist nur mein Beispiel. Ich habe Tausende von Prüfungsfragen für die Mittelstufe. Wer kann mir beibringen, drei Arten von PDF-Dateien mit nur einer TEX-Datei auszugeben? Vielen Dank!

Antwort1

Zusätzlich zu dem, was Erik gesagt hat, habe ich festgestellt, dass ich für viele Kurse den Text aller Fragen gefolgt von jeder Frage mit Platz zum Ausfüllen haben wollte. Ich habe die Prüfungsklasse erweitert, um dies automatisch zu tun, indem ich die Fragen nur einmal eingebe und ein paar Durchläufe des Compilers durchführe.

%\NeedsTeXFormat{Latex2e}[1996/06/01]
\ProvidesClass{examExt}[2016/11/09 v1.0]

\LoadClassWithOptions{exam}
\RequirePackage{etex}

\global\newwrite\examfile%

\newcommand\insertQuestions[1][plain]{
\begingroup
\IfFileExists{./\jobname.exm}{\thispagestyle{#1}\input{\jobname.exm}}{\typeout{Class exam Warning: Questions file created. Rerun to get expected output.}}
\endgroup
\immediate\openout\examfile=\jobname.exm
}



\AtEndDocument{
\immediate\closeout\examfile
}

\newcommand\create@environment[1]{
\newenvironment{my#1}{%
\begin{#1}
\immediate\write\examfile{\string\begin{#1}}
}{%
\immediate\write\examfile{\string\end{#1}}
\end{#1}
}
}



\newcommand\create@item[1]{
\expandafter\newcommand\csname my#1\endcsname[2]{%
\if\relax\detokenize{##1}\relax
\csname #1\endcsname ##2
\immediate\write\examfile{\string\csname \space #1\string\endcsname\relax \unexpanded{##2}}%
\else
 \csname #1\endcsname[##1] ##2
\immediate\write\examfile{\string\csname \space #1\string\endcsname[##1] \unexpanded{##2}}%
\fi
}
}

\newcommand\create@titleditem[1]{
\expandafter\newcommand\csname my#1\endcsname[3]{%
\if\relax\detokenize{##2}\relax
\csname #1\endcsname{##1} ##3
\immediate\write\examfile{\string\csname \space #1\string\endcsname\unexpanded{\begingroup ##1\endgroup}\relax \unexpanded{##3}}%
\else
 \csname #1\endcsname{##1}[##2] ##3
\immediate\write\examfile{\string\csname \space #1\string\endcsname\unexpanded{##1}[##2] \unexpanded{##3}}%
\fi
}
}

\create@environment{questions}
\create@environment{parts}
\create@environment{subparts}
\create@environment{subsubparts}
\create@item{question}
\create@item{part}
\create@item{subpart}
\create@item{subsubpart}
\create@titleditem{titledquestion}
\newcommand\insertClearPage{\immediate\write\examfile{\string\clearpage}}

Hier ist ein MWE, das zeigt, wie man es benutzt. Es wird eine weitere Datei erstellen und beim zweiten Durchgang die Fragen oben kopieren.

\documentclass{examExt}
\usepackage{amsmath, amssymb}

\begin{document}

 \insertQuestions
 \clearpage
 \begin{myquestions}
  \myquestion{2}{This is a question $3\in\mathbb{R}$}


  \begin{solutionbox}{3in}
   This is a solution
  \end{solutionbox}

  \begin{myparts}
   \mypart{2}{This is a part}


   \begin{solutionbox}{3in}
   This is a solution
  \end{solutionbox}
  \end{myparts}
 \end{myquestions}


\end{document}

Bildbeschreibung hier eingeben

Antwort2

Hier stelle ich \Calculate{}das Problem vor und \Solution{}gebe die Antwort. Beachten Sie, dass \Solutiondas „Problem“ automatisch als erste Zeile neu formuliert wird und das optionale Argument []den Zeilenumbruch unterdrückt, der normalerweise folgen würde (siehe Punkt 1).

\documentclass[10pt]{amsart}
\usepackage{tabstackengine,enumitem}
\newcommand\Calculate[1]{Calculate $#1$\def\Question{#1}}
\newcommand\Solution[2][\\]{Solution: \Longunderstack[l]{\Question#1#2}}
\stackMath
% TO PROVIDE BLANK SOLUTION
%\renewcommand\Solution[2][\\]{Solution: \setbox0=\hbox{%
%  \Longunderstack[l]{\Question#1#2}}\rule[-\dp0]{0pt}{\dimexpr\ht0+\dp0}}
% TO PROVIDE NO SOLUTION
%\renewcommand\Solution[2][\\]{}
\begin{document}
\sffamily
\begin{enumerate}[listparindent=0in,itemsep=5pt]
\item \Calculate{1 + 2}

  \Solution[]{=3}

\item \Calculate{1 + 2 + 3}

  \Solution{=3+3\\=6}

\item \Calculate{1+2+3+4}

  \Solution{=3+3+4\\=6+4\\=10}

\item \Calculate{1+2+3+4+5}

  \Solution{=3+3+4+5\\=6+4+5\\=10+5\\=15}

\item
\end{enumerate}
\end{document}

Bildbeschreibung hier eingeben

Um die Lösungen auszublenden, entfernen Sie einfach die Kommentarzeichen aus den Zeilen, um sie neu zu definieren \Solutionals

\renewcommand\Solution[2][\\]{Solution: \setbox0=\hbox{%
  \Longunderstack[l]{\Question#1#2}}\rule[-\dp0]{0pt}{\dimexpr\ht0+\dp0}}

Bildbeschreibung hier eingeben

Zu bekommenNEINLösung, entfernen Sie einfach das Kommentarzeichen aus der anderen Zeile und definieren Sie sie neu \Solutionals

\renewcommand\Solution[2][\\]{}

Bildbeschreibung hier eingeben


WECHSELN

Möchte man das nicht =am Anfang jeder Zeile der Lösung eintippen müssen, ist dies nur durch den Verzicht auf die optionale Argumentmöglichkeit zur Unterdrückung des Zeilenumbruchs nach der Problemumformulierung möglich (vgl. Punkt 1).

\documentclass[10pt]{amsart}
\usepackage{tabstackengine,enumitem}
\def\stackalignment{l}
\newcommand\Calculate[1]{Calculate $#1$\def\Question{#1}}
\newcommand\Solution[1]{Solution: \stackunder{\Question}
  {\tabbedLongunderstack[l]{#1}}}
\stackMath
\TABstackMath
\TABstackMathstyle{=}
% TO PROVIDE BLANK SOLUTION
%\renewcommand\Solution[1]{Solution: \setbox0=\hbox{\stackunder{\Question}%
%  {\tabbedLongunderstack[l]{#1}}}\rule[-\dp0]{0pt}{\dimexpr\ht0+\dp0}}
% TO PROVIDE NO SOLUTION
%\renewcommand\Solution[1]{}
\begin{document}
\sffamily
\begin{enumerate}[listparindent=0in,itemsep=5pt]
\item \Calculate{1 + 2}

  \Solution{3}

\item \Calculate{1 + 2 + 3}

  \Solution{3+3\\6}

\item \Calculate{1+2+3+4}

  \Solution{3+3+4\\6+4\\10}

\item \Calculate{1+2+3+4+5}

  \Solution{3+3+4+5\\6+4+5\\10+5\\15}

\item
\end{enumerate}
\end{document}

Bildbeschreibung hier eingeben

Antwort3

Man könnte die Klasse verwenden exam, die es einem auch erlaubt, Platz für die Lösung zu lassen. Außerdem kann man damit Fragen oder Fragenteilen (die ich hier auslasse) Punkte zuweisen.

\documentclass[
answers
]{exam}
\usepackage{mathtools}
\begin{document}
\begin{questions}
\question Calculate \(1 + 2\)
\begin{solution}
\(1 + 2 = 3\)
\end{solution}

\question Calculate \(1 + 2 + 3\)
\begin{solution}
\begin{align*}
& 1 + 2 + 3\\
& = 3 + 3\\
& = 6
\end{align*}
\end{solution}
\end{questions}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen