Aufgabensatz mit separaten Hinweisen und Antworten in Latex

Aufgabensatz mit separaten Hinweisen und Antworten in Latex

Ich erstelle einen Aufgabensatz für einen Mathematikkurs in Latex. Jede Aufgabe hat einen Hinweis und eine Antwort, beide sollten ganz am Ende des Dokuments zu finden sein. Aber um das Bearbeiten zu erleichtern, möchte ich Aufgaben/Hinweise/Antworten an derselben Stelle in der Quelldatei eingeben können, ich möchte etwas wie Folgendes schreiben können:

\problem{problem text}{hint text}{answer text}

Ich habe ein Setup wie dieses, das einigermaßen funktioniert – es schreibt alles in den Hinweis-/Antwortparametern in separate Dateien und gibt diese Dateien dann am Ende ein:

\documentclass{article}

% Counters for problems and chapters
\newcounter{problem}
\setcounter{problem}{0}
\newcounter{chap}
\setcounter{chap}{1}


% Open files for hints and answers
\newwrite\hintsfile
\immediate\openout\hintsfile=hints.tex
\newwrite\ansfile
\immediate\openout\ansfile=answers.tex

% Custom problem command
\newcommand{\problem}[3]{%
    \addtocounter{problem}{1}%
    \noindent\llap{\textbf{\thechap.\theproblem.} }#1 \\ \vspace{1mm}
    
    
    % Write to hint file
    \immediate\write\hintsfile{\string\noindent\string\llap{\string\textbf{\thechap.\theproblem.}}}    
    \immediate\write\hintsfile{#2 \par}
        
    % Write to answer file
    \immediate\write\ansfile{\string\noindent\string\llap{\string\textbf{\thechap.\theproblem.}}}    
    \immediate\write\ansfile{#3 \par}   
}


\begin{document}
\section{Problems}
\problem{Problem 1 Text}{Hint 1 Text}{Answer 1 Text}
Text between problems\\
\problem{Problem 2 Text}{Hint 2 Text}{Answer 2 Text}
\problem{Problem 3 Text}{Hint 3 Text}{Answer 3 Text}

\immediate\closeout\hintsfile
\immediate\closeout\ansfile

\section{Hints}
\input{hints}

\section{Answers}
\input{answers}

\end{document}

Das aktuelle Problem besteht darin, dass ich die \enumerate-Umgebung innerhalb der Probleme/Hinweise/Antworten verwenden möchte, dabei aber derzeit eine Fehlermeldung erhalte (wahrscheinlich aufgrund eines Analysefehlers, wenn ich versuche, ein ganzes mathematisches Problem als Parameter zu übergeben).

Wie lässt sich dies am besten bewerkstelligen?

verwandte Informationen