1

I am trying to create a list environment where \item's optional argument can be used to augment, rather than replace, the item number.

I would like

\begin{myenum}
    \item First Item
    \item[x] Second Item
    \item Third item
\end{myenum}

to be the equivalent of

\begin{enumerate}
    \item[1] First Item
    \item[2(x)] Second Item
    \item[3] Third item
\end{enumerate}

when it is displayed.

I have tried using \newlist to make a myenum environment, but I am not sure how to override the \item's optional argument and force the label to be something different. Can this be done?

1 Answers1

1

Here's one such option:

enter image description here

\documentclass{article}

\newenvironment{myenum}
  {\renewcommand{\labelenumi}{\arabic{enumi}}%
   \begin{enumerate}
   \let\olditem\item
   \renewcommand{\item}[1][\relax]{%
     \def\itemopt{##1}%
     \refstepcounter{enumi}%
     \olditem[\theenumi\expandafter\ifx\expandafter\relax\itemopt\else(##1)\fi]}}
  {\end{enumerate}}

\begin{document}

\begin{myenum}
  \item First Item
  \item[x] Second Item
  \item Third item
\end{myenum}

\end{document}
Werner
  • 603,163