帮助锻炼。sty 计数器未显示增量

帮助锻炼。sty 计数器未显示增量

我正在使用 exercise.sty,有两个练习计数器,一个用于章节中的示例,另一个用于章节中的问题。以下是示例:

\documentclass[]{scrreprt}
\usepackage[]{exercise}
\usepackage[svgnames]{xcolor}
\usepackage[]{chngcntr}
\newcounter{Example}
\counterwithin{Example}{chapter}
\counterwithin{Exercise}{chapter}

\newcommand{\makeproblem}[3]{%
\begin{Exercise}[ title={#1}, label={#2} ]%
#3%
\end{Exercise}%
}

\newcommand{\makeexample}[3]{%
\begin{Exercise}[ title={#1}, label={#2}, name={Example}, counter={Example} ]%
#3%
\end{Exercise}%
}

\begin{document}

\chapter{Ch1.}

   \makeexample{blah}{ch1:ex1}{
   Given $b=e$, compute $foo(b)$...
   }

   \makeexample{another}{ch1:ex2}{
   Given $b=f$, compute $foo(b)$...
   }

   \makeproblem{compute foo}{ch1:problem:foo}{
   Given $b=a$, compute $foo(b)$.
   }

   \makeproblem{compute bar}{ch1:problem:bar}{
   Given $b=a$, compute $bar(b)$.
   }

\end{document}

然而,在输出中:

with basic formatting

请注意,示例的计数器并未显示递增(即使在一个章节内)。

编辑:事后才注意到,我的示例在格式未做任何更改的情况下也没有显示递增的示例数字。删除了有关我的格式修改的问题的所有部分。

EDIT2:此问题似乎是由于使用非默认计数器后 chngcntr 包与锻炼包的错误交互造成的。有什么办法可以解决这个问题吗?

答案1

您可以使用\renewcounter同一包提供的,并重新定义\theExercise

\renewcounter{Exercise}[chapter]
\makeatletter
\renewcommand{\theExercise}{\if@ExeStared\else\thechapter.\arabic{\@ExerciseCounter}\fi}
\makeatother
\newcounter{Example}
\renewcounter{Example}[chapter]

在内部,该包使用\@ExerciseCounter(用 初始化Exercise)和\theExercise,这就是为什么仅仅重新定义\theExample不起作用。

相关内容