Pasar argumentos del entorno al entorno anidado

Pasar argumentos del entorno al entorno anidado

Tengo el siguiente entorno.

\newenvironment{myenv}[0]{%
  \begin{enumerate}[label = {My Label}]%
}{
  \end{enumerate}
}

me gustaria tener unopcionalEl argumento a myenvfavor es una lista de opciones pasadas al enumerateentorno.

Por ejemplo, algo como,

\begin{myenv}{noitemsep, nolistsep, label = {New Label}}
  ...
\end{myenv}

produciría,

\begin{enumerate}[label = {New Label}, noitemsep, nolistsep]
...
\end{enumerate}

Tenga en cuenta que labelse anuló, pero esta funcionalidad no es necesaria.

¿Es posible algo como esto?

Respuesta1

Esto definitivamente es posible. Ya que estás usando enumerate, te sugiero que no uses un tipo fijo labelcomo My Label. He aquí cómo hacerlo:

ingrese la descripción de la imagen aquí

\documentclass{article}

\usepackage{enumitem}

\newenvironment{myenv}[1][]{%
  \begin{enumerate}[
    label=\arabic*.,ref=\arabic*,% Default enumerate options
    #1% Any additional content (could override default options)
  ]
}{%
  \end{enumerate}
}

\begin{document}

Some content before \verb|myenv| (no optional parameter).
\begin{myenv}
  \item First
\end{myenv}
Some content after \verb|myenv|.

Some content before \verb|myenv| (with an optional parameter).
\begin{myenv}[noitemsep, nolistsep, label={N\arabic*.}, ref={N\arabic*}]
  \item First
\end{myenv}
Some content after \verb|myenv|.

\end{document}

También puedes hacer esto de forma nativa a través de una nueva lista:

\usepackage{enumitem}

\newlist{myenv}{enumerate}{1}
\setlist[myenv,1]{% Default options for myenv
  label=\arabic*.,
  ref=\arabic*
}

información relacionada