让不同的 thm 环境具有不同的证明结束标记的最佳方法是什么?

让不同的 thm 环境具有不同的证明结束标记的最佳方法是什么?

是否有一个好的方法,使得证明结束标记(即\qedsymbol)对于定理的证明看起来是一种方式,而对于引理的证明看起来则是另一种方式?

我知道我可以在任何时候出现引理证明时在本地更改其定义\qedsymbol,但我想知道是否有办法自动执行此操作,而无需\qedsymbol每次手动重新定义。

编辑(进一步澄清):

以下是我问题的另一种表述:我有

\theoremstyle{definition}
\newtheorem{theorem}{Theorem}
\newtheorem{lemma}[theorem]{Lemma}

在我的标题中创建theoremlemma环境。我希望\begin{proof} \end{proof}定理之后的环境与引理之后的环境相比具有不同的结束标记\begin{proof} \end{proof}。有什么方法可以做到这一点吗?例如,有没有办法我可以轻松创建某种单独的lemmaproof环境,该环境具有与默认环境不同的结束标记proof

答案1

您可以使用 LaTeX3 的钩子管理工具来利用环境结束后的代码执行。例如,

\AddToHook{env/theorem/after}{<stuff>}

将执行<stuff> afterironment theorem env。这样,您可以\qedsymbol在每个特定的类定理环境之后进行更新。

在此处输入图片描述

\documentclass{article}

\usepackage{amsthm}

\theoremstyle{definition}
\newtheorem{theorem}{Theorem}
\newtheorem{lemma}[theorem]{Lemma}

% Default \qedsymbol is \openbox
% Make any subsequent proof have unique \qedsymbol
\AddToHook{env/theorem/after}{\renewcommand\qedsymbol{\openbox}}
\AddToHook{env/lemma/after}{\renewcommand\qedsymbol{$\clubsuit$}}

\begin{document}

% Theorem
\begin{theorem}
This is a theorem.
\end{theorem}

\begin{proof}
This is a proof of the theorem.
\end{proof}

% Lemma
\begin{lemma}
This is a lemma.
\end{lemma}

\begin{proof}
This is a proof of the lemma.
\end{proof}

\begin{proof}
This is a different proof of the lemma.
\end{proof}

% Theorem
\begin{theorem}
This is a theorem.
\end{theorem}

\begin{proof}
This is a proof of the theorem.
\end{proof}

\end{document}

如果您对定理风格的特定环境感兴趣,您可以使用如下内容:

\NewDocumentEnvironment{lemmaproof}{ }{%
  \RenewDocumentCommand{\qedsymbol}{}{$\clubsuit$}% proof-specific \qedsymbol
  \proof
}{%
  \endproof
}

上述操作\qedsymbol在本地更新,在新定义的内部lemmaproof,同时仍然允许使用proof环境的可选参数。

相关内容