중첩된 환경에 환경 인수 전달

중첩된 환경에 환경 인수 전달

나는 다음과 같은 환경을 가지고 있습니다.

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

나는 갖고 싶다선택 과목이에 대한 인수는 환경 myenv에 전달된 옵션 목록입니다 enumerate.

예를 들어,

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

생산할 것이다,

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

이 기능은 label재정의되었지만 이 기능은 필요하지 않습니다.

이런 일이 가능합니까?

답변1

이것은 확실히 가능합니다. 를 사용하고 있으므로 enumerate고정 labelMy Label. 수행 방법은 다음과 같습니다.

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

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

새 목록을 통해 기본적으로 이 작업을 수행할 수도 있습니다.

\usepackage{enumitem}

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

관련 정보