Agregar un símbolo arbitrario después del número en un entorno de enumeración

Agregar un símbolo arbitrario después del número en un entorno de enumeración

Quiero crear una lista enumerada, pero después del número quiero poder agregar un símbolo. Ahora mismo puedo hacerlo con:

\documentclass{article}
\begin{document}
\begin{enumerate}
  \item[1.$\diamondsuit$] First item
  \item[2.$\clubsuit$] Second item
  \item[3.$\spadesuit$] Third item
  \item[4.$\heartsuit$] Fourth item
\end{enumerate}
\end{document

que produce lo siguiente

ingrese la descripción de la imagen aquí

Sin embargo, en este ejemplo agregué los números a mano. ¿Cómo podría agregar un símbolo después del número sin necesidad de insertar el número manualmente?

Insertar el símbolo después del elemento, como \item $\diamondsuit$no es lo que quiero, porque la segunda línea tendrá sangría con respecto al número y no a la viñeta, que es "1.diamante".

AclaraciónNo quiero exactamente este esquema. Quiero poder elegir el símbolo de cada elemento, por ejemplo: \itemsymbol{$\diamondsuit$}agregaría el diamante después del número correspondiente. (Puede darse el caso, por ejemplo, de que 1 y 2 sean diamantes, 3 sea una pica, etc., ¡o cualquier otro símbolo!)

Respuesta1

Con enumitemy \itemsymbol:

\documentclass{article}

\usepackage{enumitem}
\newenvironment{symenum}
 {\enumerate[label=\arabic*.\noexpand\thisenumsymbol,align=left]}
 {\endenumerate}
\newcommand\thisenumsymbol{}
\newcommand\itemsymbol[1]{%
  \renewcommand{\thisenumsymbol}{#1}%
  \item
}

\begin{document}
\begin{symenum}
  \itemsymbol{$\diamondsuit$}\label{first} First item
  \itemsymbol{$\clubsuit$} Second item
  \itemsymbol{$\spadesuit$} Third item
  \itemsymbol{$\heartsuit$} Fourth item
  \itemsymbol{} Fourth item
\end{symenum}

Here's the reference: \ref{first}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

\documentclass{article}
\def\zz#1{%
\ifcase#1\relax\or$\diamondsuit$\or$\clubsuit$\or$\spadesuit$\or$\heartsuit$\else?\fi}

\begin{document}
\renewcommand\labelenumi{\theenumi.\zz{\value{enumi}}}
\begin{enumerate}
  \item First item
  \item Second item
  \item Third item
  \item Fourth item
\end{enumerate}
\end{document}

Respuesta3

Una alternativa usando enumitem.sty:

\documentclass{article}
\usepackage{enumitem}
\makeatletter
\def\ctext#1{\expandafter\@ctext\csname c@#1\endcsname}
\def\@ctext#1{\ifcase#1\or $\diamondsuit$\or 
  $\clubsuit$\or $\spadesuit$\or$\heartsuit$\or ?\fi}
\makeatother
\AddEnumerateCounter{\ctext}{\@ctext}{MyWidth}

\begin{document}
\begin{enumerate}[label=\arabic*.\ctext{enumi}]
\item foo
\item bar
\item baz
\item foobar
\end{enumerate}
\end{document}

EDITAR 1: Después de la aclaración de OP

Un enfoque dinámico basado en la solución de David:

\documentclass{article}
\usepackage{enumitem}
\def\switchenum#1{%
  \renewcommand\labelenumi{\theenumi.#1}%
}

\begin{document}
\begin{enumerate}[align=left]
  \switchenum{$\heartsuit$}
  \item First item  \switchenum{$\diamondsuit$}
  \item Second item 
  \item Third item  \switchenum{$\clubsuit$}
  \item Fourth item \switchenum{}
  \item Fifth item
\end{enumerate}
\end{document}

información relacionada