自定义定理环境中的 QED 符号

自定义定理环境中的 QED 符号

我已经创建了自己的定理环境,如下所示

\newtheoremstyle{mythmstyle}{}{}{}{}{\scshape}{.}{ }{}
\theoremstyle{mythmstyle} \newtheorem{mythm}{Theorem}

如何将 QED 符号(白色矩形)添加到此自定义环境中? \qedhere 也适用于此,以防我需要它。

答案1

一个选择是使用thm工具包作为前端amsthm

\documentclass{article}
\usepackage{amsthm}
\usepackage{thmtools}

\declaretheoremstyle[
  spaceabove=\topsep, spacebelow=\topsep,
  headfont=\normalfont\scshape,
  notefont=\mdseries, notebraces={(}{)},
  bodyfont=\normalfont,
  postheadspace=1em,
  qed=\qedsymbol
]{mythmstyle}
\declaretheorem[style=mythmstyle]{theorem}

\begin{document}

\begin{theorem}
test
\end{theorem}

\begin{theorem}
test
\[
a\qedhere
\]
\end{theorem}

\end{document}

在此处输入图片描述

答案2

由于您正在使用该amsthm包,因此您可以简单地重新定义包的\@endtheorem宏以包含\qed指令,这将在定理最后一行的最右端放置一个空的方框。有必要用一对\makeatletter\makeatother指令包围这样的重新定义,因为该@符号在 LaTeX 中(故意)很特殊。以下 MWE 显示了如何实现这一点。

\documentclass{article}
\usepackage{amsthm}
% redefine the \@endtheorem macro
\makeatletter  
\def\@endtheorem{\qed\endtrivlist\@endpefalse } % insert `\qed` macro
\makeatother

\newtheoremstyle{mythmstyle}{}{}{}{}{\scshape}{.}{ }{}
\theoremstyle{mythmstyle} 
\newtheorem{mythm}{Theorem}

\begin{document}
\begin{mythm}[Pythagoras]
Consider a right triangle with sides of length $a$, $b$, and 
$c$, and assume w.l.o.g.\ that $a\le b<c$. Then $a^2+b^2=c^2$. 
\end{mythm}
\end{document}

在此处输入图片描述

请注意,这种方法虽然简单,但并不完美,因为如果定理结束带有显示的方程式。在这种情况下,您可能应该遵循 Gonzalo 的答案中提供的方法,该方法采用了功能强大的thmtools软件包。

相关内容