This answer is to be considered somehow experimental; I defined three commands: \Mfitem
(to be used exclusively in the first item of the list), \Mitem
(to be used exclusively for items different from the first and the last one) and \Mlitem
(to be used exclusively for the last item of the list). \Mfitem
simply invokes \item
and begins a group (without closing it); \Mitem
ends a group, opens another one, and then invokes \item
(thanks to Caramdir for suggesting this order), and \Mlitem
closes the last group before invoking \item
. An example:
\documentclass{article}
\newcommand\Mfitem{\begingroup\item}
\newcommand\Mitem{\endgroup\begingroup\item}
\newcommand\Mlitem{\endgroup\item}
\begin{document}
\begin{enumerate}
\Mfitem \bfseries a
\Mitem \itshape b
\Mitem \scshape c
\Mlitem d
\end{enumerate}
\end{document}
EDIT: Following a suggestion by Caramdir, here's another option: to define a new environment using environment
but adding \begingroup
at the beginning and \endgroup
at the end; now the commands \Mfitem
and \Mlitem
are no longer necessary:
\documentclass{article}
\newenvironment{Lenumerate}
{\enumerate\begingroup}
{\endgroup\endenumerate}
\newcommand\Mitem{\endgroup\begingroup\item}
\begin{document}
\begin{Lenumerate}
\Mitem \bfseries a
\Mitem \itshape b
\Mitem \scshape c
\Mitem d
\end{Lenumerate}
\end{document}