Wie kann eine Aufzählung nur dann anders formatiert werden, wenn sie nur ein einzelnes Element enthält?

Wie kann eine Aufzählung nur dann anders formatiert werden, wenn sie nur ein einzelnes Element enthält?

Ich möchte eine Aufzählung erstellen, die bei mehreren Elementen auf eine bestimmte Art und Weise formatiert ist, bei einem einzelnen Element jedoch anders. Etwa so:

Eine Liste mit mehreren Elementen:

#1 Item1
#2 Item2
#3 Item3

Eine Liste mit einem einzelnen Element:

* SingleItem

Ich verwende derzeit enumitemein Paket zum Formatieren meiner Listen, daher wäre es schön, es zu verwenden, aber jede andere Lösung wäre willkommen.

Antwort1

Eine schnelle und einfache Testlösung, bei der eine Liste mit etoolboxMakros durchlaufen und in einer speziellen enumerateUmgebung freigegeben wird

Beschreibung:

\IntelligentEnumerateist ein Wrapper mit drei Argumenten:

  1. Das erste ist optional und enthält das Label und andere Einstellungen für das optionale Aufzählungsargument.
  2. Die erste enthält die Listenelemente als Komma-getrennte Liste (Pflichtfeld)
  3. Die dritte ist wieder optional und enthält die Optionen für das einzelne Element „Liste“.

\documentclass[11pt,a4paper]{article}

\usepackage{enumitem}

\usepackage{xparse}

\usepackage{etoolbox}


\def\myitemlist{}

\newcounter{somecounter}

\newcommand{\additemtolist}[1]{%
\stepcounter{somecounter}%
\listgadd{\myitemlist}{#1}%
}


\NewDocumentCommand{\IntelligentEnumerate}{+O{label={\#\arabic*}}+m+O{label={\textasteriskcentered}}}{%
  \setcounter{somecounter}{0}
  \forcsvlist{\additemtolist}{#2}%
  \ifnumgreater{\value{somecounter}}{1}{%
    \renewcommand*{\do}[1]{%
    \item ##1
    }
    \begin{enumerate}[#1]
      \dolistloop{\myitemlist}
    \end{enumerate}
  }{%
    \begin{enumerate}[#3]
    \item  #2
    \end{enumerate}
  }%   
  \def\myitemlist{}% 'Clear' the list at the end 
}



\begin{document}

\IntelligentEnumerate{First, Second, Third}


\IntelligentEnumerate[label={\Roman*}]{First, Second, Third}


\IntelligentEnumerate{This is a single Item}

\IntelligentEnumerate{This is a single Item}[label={$\int$}]



\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen