[Tex/LaTex] A question on the proof environment of amsthm

amsthm

I would like to alternate between two proof environments under the amsthm package, e.g. distinguished between \begin{proof1} ... \end{proof1} and \begin{proof2} ... \end{proof2}. In these I want to use different end signs like QED or $\blacksquare$.

How may I do this?

Best Answer

You can define a proofi environment based on proof but making the desired redefinition for the \qedsymbol:

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

\newenvironment{proof1}[1][\proofname]
  {\begin{proof}[#1]\renewcommand\qedsymbol{$\blacksquare$}}
  {\end{proof}}
\newenvironment{proof2}[1][\proofname]
  {\begin{proof}[#1]\renewcommand\qedsymbol{\textsc{qed}}}
  {\end{proof}}

\begin{document}

\begin{proof}
Test text.
\end{proof}

\begin{proof1}
Test text.
\end{proof1}

\begin{proof2}
Test text.
\end{proof2}

\end{document}

enter image description here

With xparse, you can easily set another optional argument allowing to specify the symbol, if desired; something along these lines:

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

\NewDocumentEnvironment{proofi}{d()O{\proofname}}
  {\begin{proof}[#2]\IfNoValueTF{#1}{}{\renewcommand\qedsymbol{#1}}}
  {\end{proof}}

\begin{document}

\begin{proofi}
Test text.
\end{proofi}

\begin{proofi}($\blacksquare$)
Test text.
\end{proofi}

\begin{proofi}(\textsc{qed})
Test text.
\end{proofi}

\end{document}

enter image description here

Or, redefining proof:

\usepackage{letltxmacro}
\usepackage{xparse}

\LetLtxMacro\oldproof\proof
\let\oldendproof\endproof

\RenewDocumentEnvironment{proof}{d()O{\proofname}}
  {\oldproof[#2]\IfNoValueTF{#1}{}{\renewcommand\qedsymbol{#1}}}
  {\oldendproof}