Enumeración personalizada no secuencial

Enumeración personalizada no secuencial

Me gustaría que me \itemenumeraran en un orden especial, no secuencial. En el siguiente ejemplo (que es mi proyecto actual) siempre hay exactamente 3 \items.

(Para manejar los errores del usuario donde el \itemcontador excede el número máximo definido, podría generar un texto de error (rojo) para los \items, para llamar la atención sobre que la lista de enumeración contiene demasiados \items.)

ingrese la descripción de la imagen aquí

En este caso he usado código para el texto encerrado en un círculo de¿Buena forma de hacer números \textcircled?

me gustaria escribir

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

en lugar del argumento "completo" como se muestra en el MWE a continuación.

Otro posible resultado en el que estoy pensando es con un índice matemático, que se muestra en el ejemplo número 2.

A continuación muestro una entrada sugerida en un MWE, pero con los []argumentos que me gustaría evitar.

(Para entornos de entrada/salida simples y uniformes se utilizan)

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}

(Ejecuto pdfLaTeX 2023 enal dorso.com)

Respuesta1

Puede generar su propia lista y luego especificar los contadores que deben representarse y vincularlos (usando \AddEnumerateCounter). Las representaciones del contador definen cómo se ven los números para 1, 2 y 3, y provocan un error ("Contador demasiado grande") para \item4 (o superior).

ingrese la descripción de la imagen aquí

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

También puedes usar \labely \refsi es necesario.

Respuesta2

Un método sin 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}

ingrese la descripción de la imagen aquí

información relacionada