\end{env} 后面带有强制或可选参数的环境

\end{env} 后面带有强制或可选参数的环境

我想创建一个自定义环境,比如说foo,带有一个可选参数和一个强制参数。这可能是一种方法:

\NewDocumentEnvironment{foo}{O{default} m}{start #1 #2}{end}

该环境可以像这样使用:

\begin{foo}[optional value]{mandatory value}
    text
\end{foo}

但我更喜欢下面的方法,但我无法实现:

\begin{foo}[optional value]
    text
\end{foo}{mandatory value}

是否有可能创建这样一个环境,其中强制性参数位于结束子句之后?

答案1

对于评论中阐明的用例,我将对两种文本使用使用环境形式的更对称的标记。

在此处输入图片描述

\documentclass{article}

\NewDocumentEnvironment{foo}{O{}}
{\gdef\lastsettings{#1}\section*{with settings: #1}\quote}
{\endquote}
\NewDocumentEnvironment{foo2}{}
{\section*{with reused settings: \lastsettings}\quote}
{\endquote}

\begin{document}

\begin{foo}[optional value]
    text
\end{foo}
\begin{foo2}
   translated text
\end{foo2}

\end{document}

相关内容