단일 항목이 있는 경우에만 열거형의 형식을 다르게 지정하는 방법은 무엇입니까?

단일 항목이 있는 경우에만 열거형의 형식을 다르게 지정하는 방법은 무엇입니까?

여러 항목이 있는 경우 특정 방식으로 형식이 지정되고 단일 항목이 있는 경우 다른 방식으로 형식이 지정되는 열거를 수행하고 싶습니다. 이 같은:

여러 항목이 포함된 목록:

#1 Item1
#2 Item2
#3 Item3

단일 항목이 포함된 목록:

* SingleItem

현재 enumitem패키지를 사용하여 목록 형식을 지정하고 있으므로 사용하면 좋지만 다른 솔루션도 환영합니다.

답변1

매크로를 사용하여 목록을 반복 etoolbox하고 이를 특수 enumerate환경 에 공개하는 빠르고 더러운 시험 솔루션

설명:

\IntelligentEnumerate세 가지 인수가 포함된 래퍼입니다.

  1. 첫 번째는 선택적 인수 열거에 대한 레이블 및 기타 설정을 포함하는 선택 사항입니다.
  2. 첫 번째 항목은 쉼표로 구분된 목록으로 목록 항목을 포함합니다(필수).
  3. 세 번째 항목은 다시 선택 사항이며 단일 항목 '목록'에 대한 옵션을 포함합니다.

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

여기에 이미지 설명을 입력하세요

관련 정보