Я делаю набор задач для курса математики в латексе. Каждая задача имеет подсказку и ответ, оба должны быть в самом конце документа. Но для удобства редактирования я хочу иметь возможность вводить задачи/подсказки/ответы в одном и том же месте исходного файла, я хочу иметь возможность написать что-то вроде
\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 внутри задач/подсказок/ответов, но в настоящее время она выдает мне ошибку (вероятно, из-за какой-то ошибки синтаксического анализа, когда я пытаюсь передать целую математическую задачу в качестве параметра).
Как лучше всего это сделать?