aboutsummaryrefslogtreecommitdiff
path: root/exercisesheets.sty
diff options
context:
space:
mode:
Diffstat (limited to 'exercisesheets.sty')
-rw-r--r--exercisesheets.sty58
1 files changed, 38 insertions, 20 deletions
diff --git a/exercisesheets.sty b/exercisesheets.sty
index a079221..a119b99 100644
--- a/exercisesheets.sty
+++ b/exercisesheets.sty
@@ -1,5 +1,5 @@
-\def\fileversion{0.5}
-\def\filedate{2008/07/31}
+\def\fileversion{0.5a}
+\def\filedate{2008/10/23}
% TODO: fix loading of babel before this package
@@ -21,8 +21,13 @@
% configuration keys
\newif\ifexsh@solutions
+\newif\ifexsh@nonoralsolutions\exsh@nonoralsolutionstrue
\pgfkeys{/exsh/.is family,/exsh,
- solutions/.is if=exsh@solutions,solutions/.default=true,
+ solutions/.is choice,
+ solutions/true/.code=\exsh@solutionstrue\exsh@nonoralsolutionstrue,
+ solutions/oral/.code=\exsh@solutionstrue\exsh@nonoralsolutionsfalse,
+ solutions/false/.code=\exsh@solutionsfalse\exsh@nonoralsolutionsfalse,
+ solutions/.default=true,
only/.initial={-},
all/.style={/exsh/only={-}},all/.value forbidden,
solutionsby/.code={\def\exsh@solutionsby{#1}},solutionsby/.value required,
@@ -471,24 +476,37 @@
}
\newenvironment{solution}[1][]{%
\pgfkeys{exsh,every solution,#1,solution font}%
- \exsh@startsolution
-}{}
-\ifexsh@solutions
- \def\exsh@startsolution{\@afterindentfalse
- \vskip\pgfkeysvalueof{/exsh/above solution skip}\relax%
- {\parindent \z@
- \pgfkeysvalueof{/exsh/solution title font}\nobreak
- \pgfkeysvalueof{/exsh/strings/solution}:\par\nobreak}\nobreak%
- \@afterheading
+ \ifbool{exsh@solutions}{%
+ \ifbool{exsh@nonoralsolutions}{%
+ \let\next\exsh@startsolution
+ }{%
+ \ifthenelse{\equal{oral}{\pgfkeysvalueof{/exsh/points}}}{%
+ \let\next\exsh@startsolution
+ }{%
+ \let\next\exsh@skipsolution
+ }%
+ }%
+ }{%
+ \let\next\next\exsh@skipsolution
}%
-\else
- \long\def\exsh@startsolution#1{%
- \ifstrequal{#1}{\end}{\exsh@endsolution}{\exsh@startsolution}%
- }
- \def\exsh@endsolution#1{%
- \ifstrequal{#1}{solution}{\end{solution}}{\exsh@startsolution}%
- }
-\fi
+ \next
+}{}
+
+\def\exsh@startsolution{\@afterindentfalse
+ \vskip\pgfkeysvalueof{/exsh/above solution skip}\relax%
+ {\parindent \z@
+ \pgfkeysvalueof{/exsh/solution title font}\nobreak
+ \pgfkeysvalueof{/exsh/strings/solution}:\par\nobreak}\nobreak%
+ \@afterheading
+}%
+
+\long\def\exsh@skipsolution#1{%
+ \ifstrequal{#1}{\end}{\exsh@endsolution}{\exsh@skipsolution}%
+}
+\def\exsh@endsolution#1{%
+ \ifstrequal{#1}{solution}{\end{solution}}{\exsh@skipsolution}%
+}
+
\newcommand{\pun}[1][]{\space\hspace*{\fill}{\pgfkeysvalueof{/exsh/points font}\mbox{(#1)}}}