Задачка с отдельными подсказками и ответами в латексе

Задачка с отдельными подсказками и ответами в латексе

Я делаю набор задач для курса математики в латексе. Каждая задача имеет подсказку и ответ, оба должны быть в самом конце документа. Но для удобства редактирования я хочу иметь возможность вводить задачи/подсказки/ответы в одном и том же месте исходного файла, я хочу иметь возможность написать что-то вроде

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

У меня есть такая настройка, которая более-менее работает — она записывает все параметры подсказок/ответов в отдельные файлы, а затем вставляет эти файлы в конец:

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

Текущая проблема заключается в том, что я хочу иметь возможность использовать среду \enumerate внутри задач/подсказок/ответов, но в настоящее время она выдает мне ошибку (вероятно, из-за какой-то ошибки синтаксического анализа, когда я пытаюсь передать целую математическую задачу в качестве параметра).

Как лучше всего это сделать?

Связанный контент