有没有更好的方法来定义第二个证明环境?

有没有更好的方法来定义第二个证明环境?

我看过这个帖子定义我自己的证明环境?我还有一个后续问题,因为那里的答案不能令人满意。

我想定义证明环境——一个带有黑色 qed 方块,另一个带有白色 qed 方块。我通过以下代码片段将默认证明环境设置为带有黑色 qed 符号:

\renewcommand{\qedsymbol}{$\blacksquare$}

我通过修改定义了另一个证明环境我上面提到的页面中给出的建议并写下了以下内容:

\newenvironment{claimproof}[1]{\par\noindent\textit{Proof.}\space#1}{\hfill$\square$}

这似乎有效,但我遇到了一些极端情况,其中两者之间存在差异。后者的 claimproof 环境不能保证 qed-box 放置在默认证明环境放置它的同一位置。下面是一个我发现实际差异的示例。

图片1(使用claimproof带有白色 qed-box 的自定义环境)。

在此处输入图片描述

图片2(使用proof带有黑色 qed-box 的默认环境)。

在此处输入图片描述

环境claimproof无法将白框放在右侧(我可以通过添加来解决这个问题,但这会产生默认环境不会产生的\newline不必要的新行)。我想以与默认环境完全相同的方式运行。有没有一种不那么临时的方式来做到这一点,实际上复制了真实的环境?proofclaimproofproofproof

答案1

以下代码将环境定义claimproofproof来自amsthm包的环境,但也在\qedsymbol环境的开头重新定义。由于重新定义是\qedsymbol在组内完成的,因此它仅在本地应用(在环境内claimproof)。


\documentclass{article}
\usepackage{amssymb,amsthm}

\newenvironment{claimproof}[1][\proofname]
{\renewcommand\qedsymbol{$\blacksquare$}\proof[#1]}
{\endproof}

\begin{document}
    \begin{proof}
        a proof with a hollow square as a Q.E.D
    \end{proof}

    \begin{claimproof}
        a proof with a solid square as a Q.E.D
    \end{claimproof}
\end{document}  

在此处输入图片描述

我认为最好不要修改证明环境,而是使用claimproof实心 qed 符号。如果您希望证明环境具有实心正方形,则可以保存原始符号,然后在原始符号\qedsymbol内部进行重新定义。claimproof

\documentclass{article}
\usepackage{amssymb,amsthm}

\let\origqedsymbol\qedsymbol
\renewcommand\qedsymbol{$\blacksquare$}

\newenvironment{claimproof}[1][\proofname]
{\renewcommand\qedsymbol{\origqedsymbol}\proof[#1]}
{\endproof}

\begin{document}
    \begin{proof}
        a proof with a solid square as a Q.E.D
    \end{proof}

    \begin{claimproof}
        a proof with a hollow square as a Q.E.D
    \end{claimproof}
\end{document}

在此处输入图片描述

相关内容