¿Cómo formatear una enumeración de manera diferente solo si tiene un solo elemento?

¿Cómo formatear una enumeración de manera diferente solo si tiene un solo elemento?

Quiero hacer una enumeración que tenga formato de una manera si tiene varios elementos, pero de una manera diferente si tiene un solo elemento. Algo como esto:

Una lista con varios elementos:

#1 Item1
#2 Item2
#3 Item3

Una lista con un solo elemento:

* SingleItem

Actualmente estoy usando enumitemel paquete para formatear mis listas, por lo que sería bueno usarlo, pero cualquier otra solución sería bienvenida.

Respuesta1

Una solución de prueba rápida y sucia, que recorre una lista utilizando etoolboxmacros y la libera en un enumerateentorno especializado.

Descripción:

\IntelligentEnumeratees un contenedor con tres argumentos:

  1. El primero es opcional y contiene la etiqueta y otras configuraciones para el argumento opcional de enumeración.
  2. El primero contiene los elementos de la lista como una lista separada por comas (obligatorio)
  3. El tercero es opcional nuevamente y contiene las opciones para la 'lista' de un solo elemento.

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

ingrese la descripción de la imagen aquí

información relacionada