在宏中使用答案包

在宏中使用答案包

我正在为我的学生编写一组带有提示的问题,并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}

相关内容