
У меня следующая среда.
\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
, я бы посоветовал не использовать фиксированный label
like My 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*
}