我正在为我的学生编写一组带有提示的问题,并answers
为此使用该软件包。
目标是将问题和提示按练习环节分组,但仍在同一个文件中。为此,我从answers
包中取出示例文件(参见 §4),但将步骤分散到 3 个宏中:
\SHEET
打开解决方案文件\exercise
将打印练习并将提示写入外部临时文件\HINT
将读取外部文件并打印
然而宏似乎不起作用;临时文件应该只包含一个接一个的提示,然而似乎 Latex 并没有就此停止,而是继续将源代码行写入文件,这使得它无法读取。
这是我的尝试:
\documentclass[12pt,a4paper]{article}
\usepackage{answers}
\Newassociation{hnt}{Hint for Exercise}{ans}
\newtheorem{exr}{Exercise}
\newcommand{\SHEET}{
\stepcounter{lecturecounter}
\section*{Sheet \arabic{lecturecounter}}
\Opensolutionfile{ans}
}
\newcommand{\HINT}{
\Closesolutionfile{ans}
\section*{Hints for Sheet \arabic{lecturecounter}}
\input{ans\arabic{lecturecounter}}
}
\newcommand{\exercise}[2]{
\begin{exr}
#1
\begin{hnt}
#2
\end{hnt}
\end{exr}
}
\newcounter{lecturecounter}
\begin{document}
\SHEET
\exercise{Exercise}{Hint}
\exercise{Exercise}{Hint}
\exercise{Exercise}{Hint}
\HINT
\SHEET
\exercise{Exercise}{Hint}
\exercise{Exercise}{Hint}
\exercise{Exercise}{Hint}
\HINT
\end{document}
答案1
使用该exsheets
包,这是可能的。
如果有人感兴趣,这里是我的完整解决方案:
\documentclass[a4paper,titlepage,12pt]{article}
\usepackage{exsheets}
\printsolutions[section]
\SetupExSheets{counter-within=section}
\DeclareTranslation{English}{exsheets-question-name}{Exercise}
\DeclareTranslation{English}{exsheets-solution-name}{Hint for Exercise}
\newcounter{lecturecounter}
\newcommand{\SHEET}[1]{
\section{#1}
\stepcounter{lecturecounter}
}
\newcommand{\HINT}{
\large{Hints for Sheet \arabic{lecturecounter}} \\
\printsolutions[section]
}
\newcommand{\exercise}[2]{
\begin{question}
#1
\end{question}
\def\temp{#2}\ifx\temp\empty
\else
\begin{solution}
#2
\end{solution}
\fi
}
\begin{document}
\SHEET{Title}
\exercise{Exercise}{Hint}
\exercise{Exercise}{Hint}
\HINT
\SHEET{Title}
\exercise{Exercise}{Hint}
\exercise{Exercise}{Hint}
\HINT
\end{document}