将环境的内容记录为属性

将环境的内容记录为属性

我看到复制并重用环境的内容并认为可以使用 来解决这个问题ltproperties

我想将环境的内容记录为属性,这是我的尝试,效果很好:

\documentclass{article}

% The first argument is a label name
\NewDocumentEnvironment{recording}{m +b}{
    \label{#1}
    \NewProperty{prop_name_#1}{now}{}{#2}
    \RecordProperties{prop_label_#1}{prop_name_#1}
    #2
}{}

\begin{document}

\begin{recording}{rec1}
    Lorem ipsum dolor sit amet
\end{recording}

\RefProperty{prop_label_rec1}{prop_name_rec1}

\end{document}

我不得不放\NewProperty 里面我的环境来记录参数#2。因此,每次使用环境时都会定义一个新属性。直观地说,这可能会耗费时间和内存(是吗?)。有没有更优雅的方法来实现这一点?

理想情况下,我想它可能是这样的:

\NewProperty{record}{now}{}{#2}   % \NewProperty outside environment, ERROR
\NewDocumentEnvironment{recording}{m +b} {
    \label{#1}
    \RecordProperties{prop_label_#1}{record}
    #2
}{}

相关内容