I would like an environment to be called by \begin{myenv} that conditionally adds multicols if called by \begin{myenv}{<number of columns>}.
This is what I tried:
\documentclass{article}
\usepackage{enumitem}
\usepackage{multicol}
\makeatletter
\newenvironment{myenv}[1]{
\def\@tempa{#1}%
\ifx\@tempa\@empty
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{%
\begin{enumerate}[label=\Alph*),itemsep=0pt,#1]
}
{%
\setlength{\multicolsep}{5pt}
\begin{multicols}{#1}
\begin{enumerate}[label=\Alph*),itemsep=0pt]
}
}
{\ifx\@firstoftwo
\end{enumerate}
\else
\end{enumerate}\end{multicols}
\fi
}
\makeatother
\begin{document}
\begin{myenv}{5}
\item dog
\item cat
\item duck
\item fly
\item spider
\end{myenv}
\end{document}
Unfortunately it only works when a number of columns is specified, if I call just \begin{myenv} and error is triggered and latex tells me that 0 columns is not a good idea.
Is there a way to fix this?
