% Task environment \newcommand\taskname{Requisite} \newcounter{taskc} \setcounter{taskc}{0} \renewcommand\thetaskc{\Roman{taskc}} \newcounter{subtaskc}[taskc] \setcounter{subtaskc}{0} \renewcommand\thesubtaskc{% \thetaskc\thesubtaskc@part } \def\thesubtaskc@part{% \expandafter\ifnum\value{subtaskc}>0 -\alph{subtaskc}% \fi } \newlength\taskspace \newenvironment{task}[1][]% {% \setlength\taskspace{2ex}% \refstepcounter{taskc}% \begin{@task}[#1]% }% {\end{@task}\ignorespaces} \newenvironment{subtask}[1][]% {% \list{}{% \leftmargin4ex \item\relax }% \setlength\taskspace{6ex}% \refstepcounter{subtaskc}% \begin{@task}[#1]% }% {% \end{@task}% \endlist \ignorespaces } \newlength\@@subtaskcl \newenvironment{@task}[1][]% {% \def\@@h{#1}% \goodbreak\leavevmode\@margin@sig \llap{% \raisebox{-\baselineskip}[0em][0em]{% \shortstack{% {\sc\taskname}\space\thesubtaskc \\ \vphantom{M}% \ifx\@@h\empty\else {\small\@task@h#1||\,h}% \fi% }% \hspace{\the\taskspace}% % adjust width of the subtask text so that the task number lines up \settowidth\@@subtaskcl{\thesubtaskc@part}% \hspace{-\the\@@subtaskcl}% }% }% \ignorespaces }% {\goodbreak\ignorespaces} \def\@task@h#1-#2||{#1--#2}