基于这个清晰的解释由@David,我尝试定义一个命令来测试是否使用了特定的环境。
但我真的不知道为什么结果总是错误的。
平均能量损失
\documentclass{report}
\newif\iffoo
\newenvironment{foo}{begin}{\par end\footrue}
\newcommand{\testefoo}{\iffoo true \else false \fi}
\begin{document}
\testefoo
\begin{foo}\end{foo}
\testefoo
\end{document}
输出
false begin end false
答案1
\begin
环境定义的结束代码在..设置的组内运行,\end
因此如果它进行本地分配(如\footrue
所做的那样),它们会在组末尾丢失。
根据你想要做的事情(并对\footrue
和的实现做出一些(真实的)假设\end
),你可以使用
\global\footrue
或者
\aftergroup\footrue