Obtener el nombre y la profundidad de la nueva lista de enumitem

Obtener el nombre y la profundidad de la nueva lista de enumitem

Tengo un entorno detallado definido por newlist:

\newlist{questions}{enumerate}{2}
\setlist[questions,1]{label=\arabic*.,ref=\arabic*}
...

Me gustaría saber en un punto arbitrario dentro de uno de estos entornos cuál es el nombre del entorno y cuál es la profundidad actual (o algún equivalente)

Descubrí que la macro \@listctrparece ser el nombre del contador de la lista actual con la información que necesito (por ejemplo questionsii), pero parece que no puedo compararla con el nombre de la lista (por ejemplo \ifthenelse{\equal{\@listctr}{questionsii}}, \ifx\@listctr\questionsiinamecon el correspondiente questionsiiname, etc.).

Con una enumeración simple, podría usar \@enumdepth, pero no puedo encontrar nada similar para enumitemlas listas personalizadas de . Idealmente, tampoco me gustaría verificar el entorno actual para poder llamarlo dentro de un entorno dentro de una lista.

¿Qué puedo hacer para obtener o guardar+obtener esta información?

Ejemplo de trabajo mínimo:

\documentclass{article}

\usepackage{enumitem}
\newlist{questions}{enumerate}{2}
\setlist[questions]{label*=\arabic*.}

\makeatletter
\def\currentlist{???} % ???=/@listctr, /@enumctr, etc.
\makeatother

\def\questionsiiname{questionsii}

\begin{document}
\begin{questions}
    \item Hello world. The current list is ``\currentlist''.
    \begin{questions}
        \item My depth is: \ifx\currentlist\questionsiiname 2! \else ??? \fi.
    \end{questions}
\end{questions}
\end{document}

Respuesta1

El nombre de la lista actual se puede encontrar con \@currenvir. La profundidad de una enumitemlista personalizada se almacena en la macro \enitdp@listname. Entonces podemos construir una macro para imprimir el nombre de la lista y la profundidad actual:

\makeatletter
\def\currentlist{\@currenvir~\the\csname enitdp@\@currenvir\endcsname}
\makeatother

Como no estoy muy seguro de qué quiere hacer con la información, no intentaré ampliar el condicional de su ejemplo.

\documentclass{article}

\usepackage{enumitem}
\newlist{questions}{enumerate}{2}
\setlist[questions]{label*=\arabic*.}

\makeatletter
\def\currentlist{\@currenvir~\the\csname enitdp@\@currenvir\endcsname}%
\makeatother

\def\questionsiiname{questionsii}

\begin{document}
\begin{questions}
    \item Hello world. The current list is ``\currentlist’’.
    \begin{questions}
        \item The current list is  ``\currentlist’’
    \end{questions}
\end{questions}
\end{document}

salida de código

información relacionada