更改 etoolbox 切换以适应环境跨度

更改 etoolbox 切换以适应环境跨度

我使用电子工具箱包在我的文档中。但是,文档很长,修改很多,所以有时在中间某处编辑时,切换的当前状态不清楚。

我认为定义一个能够确保以下内容的环境会很好:

  1. 我想要的切换值
  2. 在其末尾恢复切换的值(以便其余代码不受我的编辑的影响)

我想出了这个伪代码/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}

生产

在此处输入图片描述

相关内容