我怎样才能将环境的内部放入命令中?
例如我使用
\begin{tmpenv}
\a
\b
\c
\end{tmpenv}
我希望得到类似的结果
\long\def\tmpenv{%
\a
\b
\c
}
能够多次使用 \tmpenv 并对 \a、\b、\c 进行各种定义:
\def\a{aaa}
\def\b{bbb}
\def\c{ccc}
\tmpenv
\def\a{AAA}
\def\b{BBB}
\def\c{CCC}
\tmpenv
会给
aaabbbccc
AAABBBCCC
答案1
答案2
使用该包的经典 LaTeX2e 解决方案environ
可能如下所示:
\documentclass{article}
\usepackage{environ}
\newtoks\tmpenvtoks
\newcommand*\tmpenvstore{\the\tmpenvtoks}
\NewEnviron{tmpenv}{%
\global\tmpenvtoks\expandafter{\BODY}
}
\begin{document}
\begin{tmpenv}
\a
\b
\c
\end{tmpenv}
\def\a{aaa}
\def\b{bbb}
\def\c{ccc}
\tmpenvstore
\def\a{AAA}
\def\b{BBB}
\def\c{CCC}
\tmpenvstore
\end{document}