Como formatar um enumerado de forma diferente somente se ele possuir um único item?

Como formatar um enumerado de forma diferente somente se ele possuir um único item?

Quero fazer uma enumeração que seja formatada de uma forma se tiver vários itens, mas de uma forma diferente se tiver um único item. Algo assim:

Uma lista com vários itens:

#1 Item1
#2 Item2
#3 Item3

Uma lista com um único item:

* SingleItem

Atualmente estou usando enumitemum pacote para formatar minhas listas, então seria bom usá-lo, mas qualquer outra solução seria bem-vinda.

Responder1

Uma solução de teste rápida e suja, percorrendo uma lista usando etoolboxmacros e liberando-a em um enumerateambiente especializado

Descrição:

\IntelligentEnumerateé um wrapper com três argumentos:

  1. O primeiro é opcional, contendo o rótulo e outras configurações para o argumento opcional enumerar
  2. O primeiro contém os itens da lista como uma lista separada por vírgulas (obrigatório)
  3. O terceiro é opcional novamente, contendo as opções para o item único 'lista'

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

insira a descrição da imagem aqui

informação relacionada