From 0f1e5c6c1712957a86654177d55175aaf7cd2f8e Mon Sep 17 00:00:00 2001
From: Frank Fuhlbrück
Date: Fri, 21 Jan 2022 18:01:24 +0100
Subject: environments for main task and subtasks

---
 exercisesheets.sty | 30 +++++++++++++++++++++---------
 1 file changed, 21 insertions(+), 9 deletions(-)

(limited to 'exercisesheets.sty')

diff --git a/exercisesheets.sty b/exercisesheets.sty
index 9da1f41..fd0f574 100644
--- a/exercisesheets.sty
+++ b/exercisesheets.sty
@@ -1,5 +1,5 @@
 %% exercisesheets.sty
-%% Copyright 2008-2017 Sebastian Kuhnert, Frank Fuhlbrück
+%% Copyright 2008-2022 Sebastian Kuhnert, Frank Fuhlbrück
 %
 % This work may be distributed and/or modified under the conditions
 % of the LaTeX Project Public License, either version 1.3c of this
@@ -329,7 +329,7 @@
   exercise title font/.initial=\bfseries,
   points font/.initial=\itshape,
   main task font/.initial={},
-  subtasks font/.initial={},
+  subtask font/.initial={},
   task restate font/.initial=\itshape,
   hint font/.initial={},
   hint title font/.initial=\itshape,
@@ -954,6 +954,7 @@
 \long\def\exsh@processsubtasks#1\item#2\item{%
 \ifstrequal{#2}{}{}{%
 \item #2%
+\csgdef{exsh@restatetask\arabic{enumi}}{#2}%
 \exsh@processsubtasks\item%new "frist" \item to ignore
 }%no whitespace here is crucial for end detecttion
 }
@@ -964,20 +965,31 @@
 \end{enumerate}%
 }
 
+\def\exsh@subtaskenv{enumerate}
+\def\exsh@subtaskitm{item}
+\def\exsh@subtaskctr{enumi}
 \newenvironment{subtasks}[1][]{%
   \pgfkeys{exsh,#1}%
-  \pgfkeysvalueof{/exsh/subtasks font}%
-  \ifbool{exsh@savetasks}{\Collect@Body\exsh@collectedsubtasks}{
-    \begin{enumerate}
-  }%
+  \begin{\exsh@subtaskenv}
   \ignorespaces
 }{
-  \ifbool{exsh@savetasks}{}{\end{enumerate}}
+  \end{\exsh@subtaskenv}%
+}
+
+\newcommand{\subtask}[2][]{%
+  \begingroup
+  \pgfkeys{exsh,#1}%
+  \csname\exsh@subtaskitm\endcsname%
+    {\pgfkeysvalueof{/exsh/subtask font} #2}%
+  \ifbool{exsh@savetasks}{%
+    \csgdef{exsh@restatetask\arabic{\exsh@subtaskctr}}{#2}%
+  }{}%
+  \endgroup
 }
 
-\newcommand{\restatetask}[1][main]{
+\newcommand{\restatetask}[1][main]{%
   {\pgfkeysvalueof{/exsh/task restate font}%
-  \csname exsh@restatetask#1\endcsname}
+  \csname exsh@restatetask#1\endcsname}%
 }
 
 \newenvironment{hint}[1][]{%
-- 
cgit v1.2.3

