
Ich versuche, einige Übungen für Studenten zu erstellen. Die Idee war also, einen Befehl zu verwenden, der die Lösung einfach weiß macht, wenn der Lösungszähler auf 0 steht, und der die Lösung anzeigt, wenn der Zähler auf 1 steht.
(Außerdem habe ich ein Feld erstellt, das kariertes Papier (für Berechnungen) anzeigt, wenn der Zähler auf 0 gesetzt ist, und ein gerahmtes Feld mit weißem Hintergrund und der Lösung, wenn der Zähler auf 1 gesetzt ist; aber ich möchte es im Moment einfach halten, also konzentrieren Sie sich nur auf den Befehl.)
Hier ist ein minimales funktionierendes Beispiel des Befehls:
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\newcounter{wf}
\setcounter{wf}{1}
\newcommand{\whf}[1]{%
\ifnum\value{wf}=0%
\textit{#1}%
\else%
\textcolor{white}{\itshape #1}%
\fi%
}
\begin{document}
The following word is white sometimes: \whf{Test}, hope it works.
\end{document}
Es funktioniert ganz gut und war in Ordnung, aber:
Jetzt möchte ich eine Übersicht über alle Lösungen erstellen. Ich möchte also nur die Lösungen anzeigen, ohne die Übungen zu zeigen. Das Beste, was ich hoffen kann, ist etwas wie: „Nichts anzeigen außer den Dingen im \whf-Befehl“ oder so.
Ich habe im Moment jede Menge Übungen erstellt und hoffe, dass es eine Lösung gibt, bei der ich
müssen nicht jede einzelne Übung erneut durchführen und
die Lösungen kompakt zusammenfassen und nicht über viele Seiten verteilen
(Bonus) Die Nummer der Übungen (ein weiterer Zähler) wird zusammen mit der Lösung entsprechend der Übung angezeigt
Ich hoffe, mein Englisch ist nicht zu schlecht und entschuldige die lange Beschreibung. Ich hoffe, Sie verstehen mein Problem und können mir eine Lösung anbieten.
Danke schön.
Antwort1
Wenn die Lösungen nur aus Wörtern bestehen und keinen TeX-Code enthalten, können Sie die Lösungen in eine separate Datei schreiben. Um die Datei zu öffnen, verwenden Sie
\newwrite\solfile
\immediate\openout\solfile\jobname Solutions.tex
\jobname
enthält den Namen der aktuellen TeX-Hauptdatei, daher erhält die Datei mit den Lösungen den Namen XXXSolutions.tex
, wenn die Hauptdatei aufgerufen wird XXX.tex
.
Um in die Datei zu schreiben, verwenden Sie
\immediate\write\solfile{...}
Dadurch wird der Inhalt zwischen den Klammern nach geschrieben \solfile
. Der Inhalt wird erweitert, daher müssen Sie darauf achten, dass die richtigen Token in der Datei landen.
Der folgende Code wird in eine Datei eingefügt und test.tex
erzeugt die Datei testSolutions.tex
mit der einzelnen Zeile
\solution {Test}
Sie können die Antworten formatieren, indem Sie das Makro definieren \solution
.
Ihr Code mit den Dateibefehlen:
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\newcounter{wf}
\setcounter{wf}{1}
\newwrite\solfile % <<<<<<<<<<<<<<<<<<<<<<
\immediate\openout\solfile\jobname Solutions.tex% <<<<<<<<<<<<<<<<<<<<<<
\newcommand{\whf}[1]{%
\ifnum\value{wf}=0%
\textit{#1}%
\else%
\textcolor{white}{\itshape #1}%
\fi%
\immediate\write\solfile{\noexpand\solution{#1}}% <<<<<<<<<<<<<<<<<<<<<<
}
\begin{document}
The following word is white sometimes: \whf{Test}, hope it works.
\end{document}