使用 \fi 宏来显示和隐藏证明

使用 \fi 宏来显示和隐藏证明

我希望能够在文档中全局显示和隐藏校样,并能够使用宏来打开和关闭校样环境。这是我当前的 MWE:

\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\newif\ifshowproof
\newcommand{\bp}{\ifshowproof\begin{proof}}
\newcommand{\ep}{\end{proof}}
\showprooffalse

\begin{document}
Goodbye.
\bp
Hello.
\ep\fi
Test.
\end{document}

正如这里所探讨的:newcommand 不能与 \fi 一起使用,我无法简单地添加\fi到 的定义中\ep,但是,我想有一个“catch-all”宏,也就是说,理想情况下是可以作为 执行的宏\end{proof}\fi。有没有简单的方法可以做到这一点?

答案1

我只需使用\NewEnviron来定义一个Proof可以执行您想要的操作的环境:

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{environ}

\newif\ifshowproof
\showprooffalse

\NewEnviron{Proof}{%
    \ifshowproof%
        \begin{proof}%
            \BODY
        \end{proof}%
    \fi%
}%

\begin{document}

Goodbye.
\begin{Proof}
Hello.
\end{Proof}
Test.

\showprooftrue
Goodbye.
\begin{Proof}
Hello.
\end{Proof}
Test.

\end{document}

相关内容