我使用电子工具箱包在我的文档中。但是,文档很长,修改很多,所以有时在中间某处编辑时,切换的当前状态不清楚。
我认为定义一个能够确保以下内容的环境会很好:
- 我想要的切换值
- 在其末尾恢复切换的值(以便其余代码不受我的编辑的影响)
我想出了这个伪代码/MWE,它当然不起作用,但说明了这个想法:
\documentclass{article}
\usepackage{etoolbox}
\providetoggle{sometoggle}
\newenvironment{sometoggle}[1]
{%
% oldtogglevalue = \gettoggle{sometoggle}
\settoggle{sometoggle}{#1}
}{%
% \settoggle{sometoggle}{oldtogglevalue}
\ignorespacesafterend{} % ... this is a hidden second question as it does not work
}
\begin{document}
\begin{sometoggle}{true}
code that needs sometoggle to be true
\begin{sometoggle}{false}
code that need sometoggle to be false%
\end{sometoggle}
\end{sometoggle}
\end{document}
新环境的任意嵌套我感觉特别困难。
有什么想法吗?谢谢阅读,Franz
答案1
您的代码似乎运行良好。
\documentclass{article}
\usepackage{etoolbox}
\providetoggle{sometoggle}
\newenvironment{sometoggle}[1]
{%
\settoggle{sometoggle}{#1}
}{}
\newcommand{\togglevalue}{``TOGGLE IS \iftoggle{sometoggle}{\textbf{TRUE}}{\textbf{FALSE}}''}
\begin{document}
No env: \togglevalue
\begin{sometoggle}{true}
In env: \togglevalue
\begin{sometoggle}{false}
In second env: \togglevalue
\end{sometoggle}
In env: \togglevalue
\end{sometoggle}
No env: \togglevalue
\end{document}
生产