# An enumerate environment in which the label is omitted when item number is just one and displayed as usual when item number is more than one

How to define an enumerate environment in which the label is omitted when item number is just one and displayed as usual when item number is more than one?

-
You must write the contents in a file (or a macro), and then test the number, and then typeset it. –  Leo Liu Nov 28 '11 at 14:42
@Leo Thanks. I have seen the manual of thmtools in which (page 3) a package unique is mentioned. But I cannot find it in CTAN. The package might give any help? –  Tau spit Nov 28 '11 at 15:02
Instead of "item number" did you mean "the number of items", as it has a different meaning. The solution by @egreg below solves the problem with this rephrasing, not your original wording. –  Peter Grill Nov 28 '11 at 16:57

You can typeset the environment inside a box just to get the number of items and then retypeset it:

\usepackage{environ}
\makeatletter
\NewEnviron{fenumerate}
{\setbox0=\vbox{\enumerate\BODY\endenumerate\expandafter}%
\expandafter\def\expandafter\@tempfenum\expandafter{\the\value{\@enumctr}}%
\begin{enumerate}
\ifnum\@tempfenum=\@ne\expandafter\def\csname label\@enumctr\endcsname{}\fi
\BODY
\end{enumerate}}
\makeatother


First of all, the infrastructure set up by environ gathers the environment's text; then it typesets it in a temporary box and at the end the value of the relevant counter (enumi, enumii, enumiii or enumiv) is stored in \@tempfenum, which is used for the "real" typesetting.

Usage:

\begin{fenumerate}
\item this won't get a number
\end{fenumerate}

\begin{fenumerate}
\item this will have a number
\item since it's followed by another item
\end{fenumerate}

-
@GonzaloMedina Yes, of course! –  egreg Nov 28 '11 at 17:07