Conjunto de problemas con sugerencias y respuestas separadas en látex.

Conjunto de problemas con sugerencias y respuestas separadas en látex.

Estoy haciendo un conjunto de problemas para un curso de matemáticas en látex. Cada problema tiene una pista y una respuesta, ambas deben encontrarse al final del documento. Pero para facilitar la edición quiero poder escribir problemas/sugerencias/respuestas en el mismo lugar en el archivo fuente, quiero poder escribir algo como

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

Tengo una configuración como esta que funciona de alguna manera: escribe todo en los parámetros de sugerencias/respuestas en archivos separados y luego ingresa esos archivos al final:

\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}

El problema actual es que quiero poder usar el entorno \enumerate dentro de los problemas/sugerencias/respuestas, pero actualmente me da un error (probablemente debido a algún error de análisis cuando intento pasar un problema matemático completo como un parámetro).

¿Cuál es la mejor manera de hacer esto?

información relacionada