Rework problempack numbering to allow repeated X in `\problem*{X}`.
authorW. Trevor King <wking@drexel.edu>
Fri, 27 May 2011 20:51:58 +0000 (16:51 -0400)
committerW. Trevor King <wking@drexel.edu>
Fri, 27 May 2011 20:51:58 +0000 (16:51 -0400)
problempack.sty

index d9d374b30226f677c6c43e37919397d23d3f35a8..c7327837c5e1c24cd5d702cbc549512c38f64359 100644 (file)
 }
 
 % define theorem environments
-\newtheorem{Pr@blem}{Problem}
+\newcounter{Pr@blem}
+\newtheorem{Pr@blem}[Pr@blem]{Problem}
 \newcommand{\Pr@blemSkip}{0pt} % set to 2\baselineskip when nosolutions, to give breathing room between problems
 \newenvironment{problem}{%
   \phantomsection%
   \addtocounter{Pr@blem}{1}% <- temporarily increment Pr@blem
-  \addcontentsline{toc}{section}{Problem \arabic{Pr@blem}}%
+  \addcontentsline{toc}{subsection}{Problem \arabic{Pr@blem}}%
   \addtocounter{Pr@blem}{-1}% <- restore to its initial value
   \begin{Pr@blem}% <- the Pr@blem counter actually gets implemented here
 }{%
 % not that you should ever need to as far as I can imagine.
 % Note: using a constant theorem name like ProblemSTAR fails on redefine attempt
 % Note: you also get matching errors with \begin{Pr@blem#1}\end{Pr@blem\Pr@blemCounter}
-\newcommand{\Pr@blemCounter}{}
+\newcounter{XPr@blem}
 \newenvironment{problem*}[1]{%
-  \renewcommand{\Pr@blemCounter}{#1}%
   \phantomsection%
-  \addcontentsline{toc}{section}{Problem #1}%
-  \newtheorem*{Pr@blem\Pr@blemCounter}{Problem #1}%
-  \begin{Pr@blem\Pr@blemCounter}%
+  \addcontentsline{toc}{subsection}{Problem #1}%
+  \addtocounter{XPr@blem}{1}% <- increment XPr@blem  
+  \expandafter\newtheorem*{XPr@blem\arabic{XPr@blem}}{Problem #1}%
+  \expandafter\begin{XPr@blem\arabic{XPr@blem}}%
 }{%
-  \end{Pr@blem\Pr@blemCounter}%
+  \expandafter\end{XPr@blem\arabic{XPr@blem}}%
   \vspace\Pr@blemSkip%
 }