在 amsbook 中编写解决方案的环境

在 amsbook 中编写解决方案的环境

基本上我想要的正是“单独”显示问题的解决方案,只不过我使用的是amsbook。因此,我想写一系列问题,通过写类似

\begin{question}

\question 1+1=?

\begin{answer}
1+1=2
\end{answer}

\question What is 1+2=?

\begin{answer}
1+2=3
\end{answer}

\end{question}

上面的代码应该只显示问题:

问题1:1+1=?

问题2:1+2=?

然后命令

\showanswers

显示答案:

答案 1:1+1=2

答案 2:1+2=3

我还希望枚举样式“问题 1、问题 2、...”可以自定义。

答案1

这是一个使用的解决方案answers包裹。

您可以使用以下方式切换是否显示答案

\usepackage{answers}    

将答案写入文件(answers.tex在下面的代码中)或

\usepackage[nosolutionfiles]{answers}

在文档中显示答案。

我用过enumitem包创建一个名为的列表类型环境questions,并将\question命令定义为\item(虽然它不接受可选参数 - 但不确定这在这里是否重要)。

\documentclass{amsbook}

\usepackage{enumitem}   % for custom lists
\usepackage{answers}    % for separating solutions
%\usepackage[nosolutionfiles]{answers}

\newlist{questions}{enumerate}{5}
\setlist[questions]{label*=Question \arabic*.}
\newcommand{\question}{\item}

% open the answer file
\Opensolutionfile{answers}
\Newassociation{answer}{ansWER}{answers}

\begin{document}

\begin{questions}
\question $1+1=?$
\begin{answer}
    $1+1=2$
\end{answer}

\question What is $1+2=?$
\begin{answer}
$1+2=3$
\end{answer}  
\end{questions}

% close the answer file
\Closesolutionfile{answers}

% use this line if you'd like to include the answers separately
\clearpage
\IfFileExists{answers.tex}{\input{answers.tex}}{no file!}
\end{document}

你可以用这个包做很多事情answers,特别是如果你把它与 结合起来hyperref,正如这个网站上的一些答案所示,例如添加另一个与问题本身超链接的答案

相关内容