如何在环境定义中使用 \foottrue

如何在环境定义中使用 \foottrue

基于这个清晰的解释由@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

相关内容