
Ich verwende das amsthm
Paket, um eine definition
Umgebung wie folgt zu definieren:
\theoremstyle{definition}
\newtheorem{definition}{Definition}
Zu meiner Überraschung gibt dies kaum einen typografischen Hinweis darauf, wo die Definition endet und der folgende Text beginnt (es gibt einen neuen Absatz, aber das ist offensichtlich nicht genug, insbesondere wenn die Definition mit einer Gleichung endet).
Was kann ich tun, um das deutlicher zu machen? Ich möchte nicht, dass der Definitionstext in einer anderen Schriftart als normaler Text ist. Vielleicht sollte eine Definition, wie ein Beweis, mit einem enden \qedsymbol
– wie kann ich das hinzufügen?
Antwort1
Deramsthm
ist nicht das Beste für sich allein; aberthmtools
bietet ein wirklich hübsches „Frontend“ für amsthm
und andere Theorempakete.
Insbesondere thmtools
enthält ein prefoothook
und postfoothook
das für Ihren Bedarf verwendet werden kann. Unten sehen Sie einen kleinen Anwendungsfall von thmtools
in Verbindung mit amsthm
das Beispiele mit einer einfachen horizontalen Linie abschließt. Sie können dies leicht an Ihren Bedarf anpassen. Sie könnten dies beispielsweise mit dem kombinierentcolorbox
für wirklich ausgefallene Kästchen, oder Sie könnten den Text „Ende des Beispiels“ rechts daneben einfügen.
\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}
und die Ausgabe:
Nachtrag
Wie von Caramdir erwähnt und von Barbara Beeton in den Kommentaren angefordert, ist hier ein Beispiel, das mit Gleichungen arbeitet und die qed
Option verwendet:
\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}
was ergibt:
Antwort2
Ich sehe wirklich keine Notwendigkeit dafür. Aber da Sie fragen,
\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}
Ich gehe einfach davon aus, dass Sie keine Beweise inmitten von Definitionen haben.
Antwort3
Derthmbox
Pakettheorem
bietet eine schöne Möglichkeit , -ähnliche Umgebungen anzuzeigen .
Mit den drei vordefinierten Stilen können Sie beispielsweise Folgendes erreichen:
\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}
Bitte beachten Sie:
- Ich habe die Schriftart
normalfont
nur für das erste Beispiel (Umgebung) auf (also nicht schräg) eingestelltdefiS
, - Die Nummerierung ist in den drei Fällen 1,1, da ich drei unterschiedliche Umgebungen verwendet habe (d. h.
defiS
,defiM
unddefiL
), aber wenn Sie bei einer Umgebung bleiben, sind die Nummern korrekt (d. h. 1,1, 1,2, 1,3 usw.). - Ich habe einfach den vordefinierten Stil verwendet, aber Sie können ihn umfassend anpassen.
Antwort4
Eine Lösung besteht darin, den gesamten Beweis um einen bestimmten Betrag einzurücken und ein wenig mit der Schriftgröße zu spielen. Sie können die folgende Neudefinition der proof
Umgebung in Betracht ziehen:
\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