我正在尝试定义一个将test
其内容未扩展地存储在宏中的环境\testcontents
。
例如,代码
\newcommand{\cmd}{bad}
\begin{test}
\cmd
\end{test}
\renewcommand{\cmd}{okay}
\testcontents
应该打印出“okay”。
我该如何定义这样的环境?我知道 environ 包可用于存储扩展后的内容,但我需要未扩展的内容。
答案1
environ
按照您的要求工作,它收集了没有扩展的主体,以下排版okay
\documentclass{article}
\usepackage{environ}
\NewEnviron{test}
{\global\let\testcontents\BODY}
\begin{document}
\newcommand{\cmd}{bad}
\begin{test}
\cmd
\end{test}
\renewcommand{\cmd}{okay}
\testcontents
\end{document}