我已经创建了自己的定理环境,如下所示
\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
软件包。