![将环境的内容记录为属性](https://linux22.com/image/475538/%E5%B0%86%E7%8E%AF%E5%A2%83%E7%9A%84%E5%86%85%E5%AE%B9%E8%AE%B0%E5%BD%95%E4%B8%BA%E5%B1%9E%E6%80%A7.png)
我看到复制并重用环境的内容并认为可以使用 来解决这个问题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
}{}