In order to make it easier to write hand-in assigments, I want to create two environments Subexc
and subexc
, where I can write the entire exercise down before starting. Subexc
is supposed to be run with an argument, specifying the enumeration format to be used (note that I am using the enumerate
package). Subexc
then saves the format in a variable \subExcFormat
and the exercise number in a counter subExcCounter
. When subexc
is run afterwards, it then continues the exercise number and the format from \Subexc
. An example:
\usepackage{enumerate}
\newenvironment{Subexc}[1]
{%
\begin{enumerate}[#1]%
\item\ignorespaces\begin{itshape}%
}{%
\end{itshape}%
\end{enumerate}\setcounter{subExcCounter}{\theenumi}%
\global\let\subExcFormat#1%
\vspace{1 mm}\par\noindent\ignorespacesafterend%
}
\newenvironment{subexc}
{%
\begin{enumerate}[\subExcFormat]%
\setcounter{enumi}{\thesubExcCounter}%
\ignorespaces\item\begin{itshape}%
}
{%
\end{itshape}%
\end{enumerate}%
\setcounter{subExcCounter}{\theenumi}%
\vspace{1 mm}\par\noindent\ignorespacesafterend%
}
\begin{document}
\section*{Exercise 717}
\emph{In this exercise, we will prove the Riemann hypothesis.} %Text from exercise.
\begin{Subexc}{(a)} % Enumeration format of the form (a), (b), ...
Prove that $8 + 7 = 15$. % exercise text.
\end{Subexc}
Blablabla %My answer
\begin{subexc} % No format; it will continue the format from the last section.
Show that $e^{i\pi} + 1 = 0$.
\end{subexc}
Bluhbluhbluh %My answer
\begin{subexc}
Use (a) and (b) to show the Riemann hypothesis.
\end{subexc}
Wowowow %my answer
\end{document}
However, I get the errors
Illegal parameter number in definition of \endSubexc }
Illegal parameter number in definition of \subExcFormat \end{\subexc}
Undefined control sequence \begin{subexc}
Undefined control sequence \begin{subexc}
(Warning) The counter will not be printed.
What went wrong? 🙂
Best Answer
You can't use
#1
in the end part. But you can simply move the definition of\subExcFormat
in the begin part. Using\theenumi
is wrong:\value{enumi}
is what you need (it's the cause of the warning, by the way).I removed also useless
\ignorespaces
commands,\begin{itshape}
and\end{itshape}
. I remain dubious aboutthat seems superfluous; just avoid a blank line if you don't want a new paragraph. Note also
\par\vspace{1mm}
rather than the inverse.