% \subsubsection{Hints} % \DescribeEnv{hint}{Hint environments can be embedded inside problems.} % \begin{macrocode} %<*classXimera> % \end{macrocode} % Create a counter that will track how deeply nested the current hint is % \begin{macrocode} \newcounter{hintLevel} \setcounter{hintLevel}{0} % \end{macrocode} % Create an empty shell to renew % \begin{macrocode} \newenvironment{hint}{}{} % \end{macrocode} % Now we renew the environment as needed, this should allow support % for any transition code that treats some parts as a "handout" and % some parts as non-handout. renewing the environment on the fly is a % bit hacky. % \begin{macrocode} \renewenvironment{hint} { \ifhandout \setbox0\vbox\bgroup \else \begin{trivlist}\item[\hskip \labelsep\small\slshape\bfseries Hint:\hspace{2ex}] \small\slshape \fi % \end{macrocode} % Step up hint level to track the nested level of the hint. This will be used for problem numbering. % \begin{macrocode} \stepcounter{hintLevel} } { \ifhandout \egroup\ignorespacesafterend \else \end{trivlist} \fi % \end{macrocode} % Detract from hint level counter to track hint nested level % \begin{macrocode} \addtocounter{hintLevel}{-1} } \ifhints \renewenvironment{hint}{ \begin{trivlist}\item[\hskip \labelsep\small\slshape\bfseries Hint:\hspace{2ex}] \small\slshape} {\end{trivlist}} \fi % % \end{macrocode}