![如何在环境定义中使用 \foottrue](https://linux22.com/image/335183/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%8E%AF%E5%A2%83%E5%AE%9A%E4%B9%89%E4%B8%AD%E4%BD%BF%E7%94%A8%20%5Cfoottrue.png)
基于这个清晰的解释由@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