Enumeração não sequencial personalizada

Enumeração não sequencial personalizada

Gostaria que meus itens fossem \itemenumerados em uma ordem especial, não sequencial. No exemplo abaixo (que é meu projeto atual) sempre há exatamente 3 \items.

(Para lidar com erros do usuário onde o \itemcontador excede o número máximo definido, ele pode gerar um texto de erro (vermelho) para o \item(s), para chamar a atenção de que a lista de enumeração contém muitos \items.)

insira a descrição da imagem aqui

Neste caso, usei o código para o texto circulado deBoa maneira de criar números \textcircled?

eu gostaria de digitar

\begin{CircleProcedure}
\item \lipsum[1][1-2]
\item \lipsum[1][1-2]
\item \lipsum[1][1-2]
\end{CircleProcedure}

em vez do argumento 'completo' conforme mostrado no MWE abaixo.

Outra saída possível que estou pensando é com um índice matemático, mostrado como amostra nº 2

Abaixo mostro uma sugestão de entrada em um MWE, mas com os []argumentos que gostaria de evitar.

(Para ambientes de entrada/saída simples e uniformes são usados)

MWE:

\documentclass{article}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{enumitem}

\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
            \node[shape=circle,draw,inner sep=2pt] (char) {#1};}}

\newenvironment{CircleProcedure}
    {\begin{enumerate}[labelwidth=16mm,leftmargin=16mm,labelsep=2mm]}
    {\end{enumerate}}
\newenvironment{IndexProcedure}
    {\begin{enumerate}[align=left,labelwidth=9mm,leftmargin=10mm,labelsep=1mm]}
    {\end{enumerate}}

\begin{document}

\lipsum[1][1-5]

\begin{CircleProcedure}
\item[\circled{1}] \lipsum[1][1-2]
\item[\circled{2}] \lipsum[1][1-2]
\item[\(\circled{1}+\circled{2}\)] \lipsum[1][1-2]
\end{CircleProcedure}

\lipsum[1][1-5]
 
\begin{IndexProcedure}
\item[\(\textbf{P}_{1}\)] \lipsum[1][1-2]
\item[\(\textbf{P}_{2}\)] \lipsum[1][1-2]
\item[\(\textbf{P}_{1+2}\)] \lipsum[1][1-2]
\end{IndexProcedure}

\lipsum[1][1-5]

\end{document}

(Eu executo o pdfLaTeX 2023 emoverleaf. com)

Responder1

Você pode gerar sua própria lista e então especificar os contadores que devem ser representados e vincular os dois (usando \AddEnumerateCounter). As representações do contador definem a aparência dos números para 1, 2 e 3 e causam um erro ("Contador muito grande") para \item4 (ou superior).

insira a descrição da imagem aqui

\documentclass{article}

\usepackage{tikz}
\usepackage{lipsum}
\usepackage{enumitem}

\NewDocumentCommand{\circled}{m}{%
  \tikz[baseline=(char.base)]{%
    \node[shape=circle,draw,inner sep=2pt] (char) {#1};}}

\newlist{CircleProcedure}{enumerate}{1}
\setlist[CircleProcedure]{%
  labelwidth=16mm,
  leftmargin=16mm,
  labelsep=2mm,
  label=\circledenum*,
}
\newlist{IndexProcedure}{enumerate}{1}
\setlist[IndexProcedure]{%
  align=left,
  labelwidth=15mm,
  leftmargin=15mm,
  labelsep=0mm,
  label=\indexenum*
}

\makeatletter
\newcommand*{\circledenum}[1]{%
  \expandafter\@circledenum\csname c@#1\endcsname%
}
\newcommand*{\@circledenum}[1]{%
  $\ifcase#1\or\circled{1}\or\circled{2}\or\circled{1}+\circled{2}%
    \else\@ctrerr\fi$%
}
\AddEnumerateCounter{\circledenum}{\@circledenum}{1}

\newcommand*{\indexenum}[1]{%
  \expandafter\@indexenum\csname c@#1\endcsname%
}
\newcommand*{\@indexenum}[1]{%
  $\ifcase#1\or\textbf{P}_1\or\textbf{P}_2\or\textbf{P}_1+\textbf{P}_2%
    \else\@ctrerr\fi$%
}
\AddEnumerateCounter{\indexenum}{\@indexenum}{1}
\makeatother

\begin{document}

\lipsum[1][1-5]

\begin{CircleProcedure}
  \item \lipsum[1][1-2]
  \item \lipsum[1][1-2]
  \item \lipsum[1][1-2]
\end{CircleProcedure}

\lipsum[1][1-5]

\begin{IndexProcedure}
  \item \lipsum[1][1-2]
  \item \lipsum[1][1-2]
  \item \lipsum[1][1-2]
\end{IndexProcedure}

\lipsum[1][1-5]

\end{document}

Você também pode usar \labele \refse necessário.

Responder2

Um método sem usar enumitem:

\documentclass{article}
\usepackage{tikz}
\usepackage{lipsum}

\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
            \node[shape=circle,draw,inner sep=2pt] (char) {#1};}}

\newcounter{CircledProcedure}
\newenvironment{CircledProcedure}%
  {\begin{list}{}{
    \labelwidth 16mm%
    \leftmargin 16mm%
    \labelsep 2mm%
    \let\makelabel\CircledProcedureLabel
    \usecounter{CircledProcedure}
  }}{\end{list}}
\newcommand*{\CircledProcedureLabel}{%
  \ifnum\value{CircledProcedure}<3 \hfill\circled{\theCircledProcedure} \else \(\circled{1}+\circled{2}\) \fi}

\begin{document}

\begin{CircledProcedure}
  \item \lipsum[1][1-2]
  \item \lipsum[1][1-2]
  \item \lipsum[1][1-2]
\end{CircledProcedure}

\end{document}

insira a descrição da imagem aqui

informação relacionada