我想创建一个自定义环境,比如说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}