我看到复制并重用环境的内容并认为可以使用 来解决这个问题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
}{}