Conjunto de problemas com dicas e respostas separadas em látex

Conjunto de problemas com dicas e respostas separadas em látex

Estou fazendo um conjunto de problemas para um curso de matemática em látex. Cada problema tem uma dica e uma resposta, ambas devem ser encontradas no final do documento. Mas para facilitar a edição, quero poder digitar problemas/dicas/respostas no mesmo lugar do arquivo de origem, quero poder escrever algo como

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

Eu tenho uma configuração como esta que está funcionando um pouco - ela grava tudo nos parâmetros de dicas/respostas em arquivos separados e depois insere esses arquivos no 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}

O problema atual é que eu quero poder usar o ambiente \enumerate dentro dos problemas/dicas/respostas, mas atualmente ele me dá um erro (provavelmente devido a algum erro de análise quando estou tentando passar um problema matemático inteiro como um parâmetro).

Qual é a melhor maneira de fazer isso?

informação relacionada