使用答案和任务包的问题

使用答案和任务包的问题

我正在尝试answers使用包创建包含多个子问题的问题(使用包)tasks。每个问题都有一个解决方案,该解决方案将使用包的功能在文档末尾排版answers

我的问题是解决方案的编号不正确。

\documentclass{article}
\usepackage{answers}
\usepackage{tasks}

\Newassociation{solution}{Solution}{ans}
\newtheorem{exercise}{Exercise}[section]

\begin{document}
\Opensolutionfile{ans}[ans2]

\section{Exercises}

\begin{exercise}\label{xrc:one}
Exercise without tasks
\begin{solution}
Solution without tasks
\end{solution}
\end{exercise}

\begin{exercise}\label{xrc:two}
Statement of the second exercise

\begin{tasks}[counter-format= {tsk[a].) }, label-offset = {2em}, label-format ={\bfseries},label-width={1.5em}](3)
\task First task
\task Second task
\task Third task
\end{tasks}

\begin{solution}
Solutions to the second exercise

\end{solution}
\end{exercise}

\begin{exercise}\label{xrc:two}
Statement of the third exercise

\begin{tasks}[counter-format= {tsk[a].) }, label-offset = {2em}, label-format ={\bfseries},label-width={1.5em}](3)
\task First task
\task Second task
\task Third task
\task Fourth task
\task Fifth task
\task Sixth task
\end{tasks}

\begin{solution}
Solutions to the third exercise


\end{solution}
\end{exercise}

\Closesolutionfile{ans}

\section*{Solutions}\label{svar}

\input{ans2}

\end{document}

答案1

这不是与tasks包直接相关的问题 –\refstepcounter{…}在之前练习过的任何solution环境都会导致同样的问题:

\documentclass{article}
\usepackage{answers}

\Newassociation{solution}{Solution}{ans}
\newtheorem{exercise}{Exercise}[section]

\newcounter{test}
\renewcommand\thetest{test:\arabic{test}}

\begin{document}
\Opensolutionfile{ans}[ans2]

\section{Exercises}

\begin{exercise}\label{xrc:one}
  Exercise without \verb+\refstepcounter+
\begin{solution}
  Solution without \verb+\refstepcounter+
\end{solution}
\end{exercise}

\begin{exercise}\label{xrc:two}
\refstepcounter{test}
Statement of the second exercise
\begin{solution}
  Solutions to the second exercise
\end{solution}
\end{exercise}

\begin{exercise}\label{xrc:three}
Statement of the third exercise
\refstepcounter{test}
\begin{solution}
  Solutions to the third exercise
\end{solution}
\end{exercise}

\Closesolutionfile{ans}

\section*{Solutions}\label{svar}

\input{ans2}

\end{document}

在此处输入图片描述

\@currentlabel你可以通过再次设置练习编号来“修复”这个问题

\addtocounter{exercise}{-1}\refstepcounter{exercise}

直接在solution环境之前。使用etoolbox包及其,\AtBeginEnvironment您甚至可以修复此问题,而不必在每个解决方案之前添加代码。添加

\usepackage{etoolbox}
\AtBeginEnvironment{solution}{\addtocounter{exercise}{-1}\refstepcounter{exercise}}

到你的序言(但\Newassociation{solution}{Solution}{ans}当然是在之后)。

相关内容