Hinzufügen eines beliebigen Symbols nach der Zahl in einer Aufzählungsumgebung

Hinzufügen eines beliebigen Symbols nach der Zahl in einer Aufzählungsumgebung

Ich möchte eine nummerierte Liste erstellen, aber nach der Nummer möchte ich ein Symbol hinzufügen können. Im Moment kann ich das mit Folgendem machen:

\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

was folgendes ergibt

Bildbeschreibung hier eingeben

In diesem Beispiel habe ich die Zahlen jedoch von Hand eingegeben. Wie kann ich nach der Zahl ein Symbol hinzufügen, ohne die Zahl manuell eingeben zu müssen?

Das Einfügen des Symbols nach dem Element \item $\diamondsuit$ist nicht das, was ich möchte, da die zweite Zeile in Bezug auf die Nummer eingerückt wird und nicht in Bezug auf das Aufzählungszeichen, das „1.diamond“ lautet.

KlärungIch möchte nicht genau dieses Schema. Ich möchte das Symbol für jedes Element auswählen können, zum Beispiel \itemsymbol{$\diamondsuit$}würde ich den Karo nach der entsprechenden Zahl hinzufügen. (Es kann zum Beispiel der Fall sein, dass 1 und 2 Karo sind, 3 ein Pik usw. oder irgendein anderes Symbol!)

Antwort1

Mit enumitemund \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}

Bildbeschreibung hier eingeben

Antwort2

\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}

Antwort3

Eine Alternative mit 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}

EDIT 1: Nach Klärung des OP

Ein dynamischer Ansatz basierend auf Davids Lösung:

\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}

verwandte Informationen