我正在使用该amsthm
包来定义definition
如下环境:
\theoremstyle{definition}
\newtheorem{definition}{Definition}
令我惊讶的是,这几乎没有提供任何印刷指示来表明定义在何处结束以及以下文本在何处开始(有一个新段落,但这显然不够,特别是当定义以等式结尾时)。
我该怎么做才能让这个更清楚?我不希望定义文本的字体与普通文本不同。也许定义(如证明)应该以\qedsymbol
- 结尾,我该如何添加它?
答案1
这amsthm
本身并不是最好的;然而,thmtools
amsthm
为和其他定理包提供了一个非常整洁的“前端” 。
具体来说,thmtools
包括prefoothook
和postfoothook
,可根据您的需要使用。下面是thmtools
与它结合的一个小用例amsthm
,它用一条简单的水平线完成示例。您可以轻松调整它以满足您的需要。例如,您可以将其与tcolorbox
对于非常花哨的盒子,或者您可以刷新文本“示例结束”。
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{lipsum}
\declaretheoremstyle[
headfont=\normalfont\scshape,
numbered=unless unique,
bodyfont=\normalfont,
spaceabove=1em plus 0.75em minus 0.25em,
prefoothook=\newline\rule{\linewidth}{1pt},
spacebelow=1em plus 0.75em minus 0.25em,
]{exmpstyle}
\declaretheorem[
style=exmpstyle,
title=Example,
refname={example,examples},
Refname={Example,Examples}
]{exmp}
\begin{document}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut pustibulum ut,
placerat ac, adipiscing vitae, felis. Curabitur dictum uris. Nam arcu libero,
nonummy eget, consectetuer id, vulputate a, nec vehicula augue eu
neque. Pellentesque habitant morbi tristique t netus et malesuada fames ac
turpis egestas. Mauris ut leo.
\begin{exmp}
\lipsum*[1]
\end{exmp}
\lipsum[2-3]
\begin{exmp}
\lipsum*[4]
\end{exmp}
\end{document}
输出:
附录
正如 Caramdir 所提到的以及 Barbara Beeton 在评论中所要求的,这里有一个使用方程式并使用以下qed
选项的示例:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{lipsum}
\declaretheoremstyle[
headfont=\normalfont\bfseries\itshape,
numbered=unless unique,
bodyfont=\normalfont,
spaceabove=1em plus 0.75em minus 0.25em,
spacebelow=1em plus 0.75em minus 0.25em,
qed={\itshape That's All Folks!},
]{exmpstyle2}
\declaretheorem[
style=exmpstyle2,
title=Example,
refname={example,examples},
Refname={Example,Examples}
]{exmp2}
\begin{document}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut pustibulum ut,
placerat ac, adipiscing vitae, felis. Curabitur dictum uris. Nam arcu libero,
nonummy eget, consectetuer id, vulputate a, nec vehicula augue eu
neque. Pellentesque habitant morbi tristique t netus et malesuada fames ac
turpis egestas. Mauris ut leo.
\begin{exmp2}
\lipsum*[1]
\end{exmp2}
\lipsum[2-3]
\begin{exmp2}
\lipsum*[4]
\begin{equation*}
\mathcal{L} = \overline \psi (i \gamma \cdot \partial - m) \psi
\qedhere
\end{equation*}
\end{exmp2}
\end{document}
生成结果:
答案2
我真的看不出有什么必要。不过既然你问了,
\documentclass{article}
\usepackage{amsthm}
\usepackage{lipsum}
\theoremstyle{definition}
\newtheorem{defi/}{Definition}
\newenvironment{defi}
{\renewcommand{\qedsymbol}{$\heartsuit$}%
\pushQED{\qed}\begin{defi/}}
{\popQED\end{defi/}}
\begin{document}
\lipsum[2]
\begin{defi}
This is the definition of \emph{definition}.
\end{defi}
\lipsum[3]
\begin{defi}
This is the definition of recursion,
\[
x\gets x+1 \qedhere
\]
\end{defi}
\lipsum[2]
\end{document}
我只是假设你在定义中间没有证明。
答案3
这thmbox
包裹提供了一种很好的方式来显示theorem
类似环境。
例如,使用三种预定义样式,您可以获得:
\documentclass{article}
\usepackage{mathtools}
\usepackage{thmbox} % Overrides \newtheorem command! See [nothm] to disable this feature.
\usepackage{lipsum} % Useless, just for the demo.
\newtheorem[S, bodystyle=\normalfont\noindent]{defiS}{Definition}[section]
\newtheorem[M]{defiM}{Definition}[section]
\newtheorem[L]{defiL}{Definition}[section]
\begin{document}
\section{My nice demo}
\begin{defiS}[Inverse of a relation]
Let \(R\) be a relation, \emph{the inverse of \(R\)} is
\[R^{-1} = \{(x,y) \mid (y, x) \in R\}\]
\end{defiS}
\lipsum[2] % Just for the demo
\begin{defiM}[Union]
Let \(R\) and \(S\) be relations, the \emph{union of \(R\) and \(S\)} is defined as
\[
R \cup S = \{(x, y) \mid (x,y) \in R \text{ or } (x,y) \in S\}
\]
\end{defiM}
\lipsum[1] % Just for the demo
\begin{defiL}[Graph of a function]
Let \(f\) be a fuction, the \emph{graph of \(f\)} is
\[
\langle f \rangle = \{(x, y) \mid f x = y\}
\]
\end{defiL}
\end{document}
请注意:
normalfont
我仅为第一个例子(环境)将字体设置为(即不倾斜)defiS
,- 在这三种情况下,编号都是 1.1,因为我使用了三种不同的环境(即
defiS
、defiM
和defiL
),但如果您坚持使用一种环境,则数字将是正确的(即 1.1、1.2、1.3 等)。 - 我只是使用了预定义的样式,但您可以对其进行大量自定义。
答案4
一个解决方案是将整个证明缩进(按给定量)并稍微调整一下字体大小。您可以考虑对环境进行以下重新定义proof
:
\makeatletter
\renewenvironment{proof}[1][\proofname]{\par
\pushQED{\qed}%
\normalfont\small\topsep6\p@\@plus6\p@\relax
%\trivlist %%%% old
\list{}{\leftmargin=\parindent
\rightmargin=0pt
\settowidth{\itemindent}{\itshape#1}%
\labelwidth=\itemindent}
\item[\hskip\labelsep\itshape#1\@addpunct{.}]\ignorespaces
}{%
\popQED
%\endtrivlist %%OLD
\endlist %%NEW
\@endpefalse
}
\makeatother