From 0df9b43a350770cf3dd1426c434ff2653a5bff0c Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Fri, 27 May 2011 16:51:58 -0400 Subject: [PATCH] Rework problempack numbering to allow repeated X in `\problem*{X}`. --- problempack.sty | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/problempack.sty b/problempack.sty index d9d374b..c732783 100644 --- a/problempack.sty +++ b/problempack.sty @@ -70,12 +70,13 @@ } % 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 }{% @@ -87,15 +88,15 @@ % 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% } -- 2.26.2