aboutsummaryrefslogtreecommitdiff
path: root/exercisesheets.sty
diff options
context:
space:
mode:
authorSebastian Kuhnert2009-02-09 13:17:01 +0000
committerSebastian Kuhnert2009-02-09 13:17:01 +0000
commit18c38aed8516ac9a857a98b0e40d6b4d556aee79 (patch)
treef9872b1a8ba309da3590737d600a3dfabcd77088 /exercisesheets.sty
parent32f0ba77bc1c69ee6915c18a6a539791e13d6256 (diff)
downloadexercisesheets-18c38aed8516ac9a857a98b0e40d6b4d556aee79.tar.gz
exercisesheets-18c38aed8516ac9a857a98b0e40d6b4d556aee79.tar.bz2
exercisesheets-18c38aed8516ac9a857a98b0e40d6b4d556aee79.zip
update exercisesheets.sty to support references to items in enumerate-like environments on skipped sheets
Diffstat (limited to 'exercisesheets.sty')
-rw-r--r--exercisesheets.sty43
1 files changed, 39 insertions, 4 deletions
diff --git a/exercisesheets.sty b/exercisesheets.sty
index 2b6316a..859e775 100644
--- a/exercisesheets.sty
+++ b/exercisesheets.sty
@@ -1,4 +1,4 @@
-\def\fileversion{0.5f}
+\def\fileversion{0.5g}
\def\filedate{2008/11/25}
% TODO: allow \and in author and solutionsby
@@ -354,18 +354,53 @@
\clearpage
\endgroup
}
+\listadd{\exsh@enums}{enumerate}
+\listadd{\exsh@enums}{compactenum}
+\listadd{\exsh@enums}{asparaenum}
+\listadd{\exsh@enums}{inparaenum}
+\listadd{\exsh@nonenums}{itemize}
+\listadd{\exsh@nonenums}{compactitem}
+\listadd{\exsh@nonenums}{asparaitem}
+\listadd{\exsh@nonenums}{inparaitem}
+\listadd{\exsh@nonenums}{description}
+\listadd{\exsh@nonenums}{compactdesc}
+\listadd{\exsh@nonenums}{asparadesc}
+\listadd{\exsh@nonenums}{inparadesc}
+\listadd{\exsh@nonenums}{asparablank}
+\listadd{\exsh@nonenums}{inparablank}
+\listadd{\exsh@nonenums}{list}
\long\def\exsh@skipsheet#1{%
\ifstrequal{#1}{\begin}{\exsh@skipsheet@begin}{%
\ifstrequal{#1}{\end}{\exsh@skipsheet@end}{%
\ifstrequal{#1}{\label}{\exsh@skipsheet@label}{%
- \exsh@skipsheet}}}%
+ \ifstrequal{#1}{\setcounter}{\expandafter\exsh@skipsheet\setcounter}{%
+ \ifstrequal{#1}{\item}{\ifdef{\@enumctr}{\@hyper@itemtrue\refstepcounter{\@enumctr}}{}}{}%
+ \exsh@skipsheet}}}}%
}
\def\exsh@skipsheet@end#1{%
- \ifstrequal{#1}{sheet}{\end{sheet}}{\exsh@skipsheet}%
+ \ifstrequal{#1}{sheet}{\end{sheet}}{\endgroup\exsh@skipsheet}%
}
\def\exsh@skipsheet@begin#1{%
+ \begingroup
\ifstrequal{#1}{exercise}{\refstepcounter{section}}{}%
- \exsh@skipsheet%
+ \ifinlist{#1}{\exsh@enums}{%
+ \exsh@skipsheet@beginenum
+ }{%
+ \ifinlist{#1}{\exsh@nonenums}{%
+ \undef\@enumctr
+ }{}%
+ \exsh@skipsheet
+ }%
+}
+\def\exsh@skipsheet@beginenum{%
+ \ifnum\@enumdepth>\thr@@
+ \@toodeep
+ \else
+ \advance\@enumdepth\@ne
+ \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
+ \setcounter{\@enumctr}{0}%
+ \fi
+ \@ifnextchar[{\@enumlabel@{\exsh@skipsheet}[}{\exsh@skipsheet}%
}
\def\exsh@skipsheet@label#1{%
\label{#1}\exsh@skipsheet