Marcando o fim de uma definição

Marcando o fim de uma definição

Estou usando o amsthmpacote para definir um definitionambiente da seguinte forma:

\theoremstyle{definition}
\newtheorem{definition}{Definition}

Para minha surpresa, isso quase não fornece nenhuma indicação tipográfica de onde termina a definição e começa o texto seguinte (há um novo parágrafo, mas isso claramente não é suficiente, especialmente quando a definição termina com uma equação).

O que posso fazer para deixar isso mais claro? Não quero que o texto de definição tenha uma fonte diferente do texto normal. Talvez uma definição, como uma prova, deva terminar com \qedsymbol- como posso acrescentar isso?

Responder1

Oamsthmnão é o melhor por si só; no entanto,thmtoolsfornece um 'front-end' realmente interessante para amsthmoutros pacotes de teoremas.

Em particular, thmtoolsinclui um prefoothooke postfoothookque pode ser usado conforme sua necessidade. Abaixo está um pequeno caso de uso thmtoolsem conjunto com amsthmo qual finaliza os exemplos com uma linha horizontal simples. Você pode facilmente adaptar isso às suas necessidades. Por exemplo, você pode combinar isso com otcolorboxpara caixas realmente sofisticadas, ou você pode alinhar o texto "Fim do exemplo".

\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}

e a saída:

saída

Termo aditivo

Conforme mencionado por Caramdir e solicitado por Barbara Beeton nos comentários, aqui está um exemplo que trabalha com equações e utiliza a qedopção:

\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}

que produz:

saída2

Responder2

Eu realmente não consigo ver a necessidade disso. Mas já que você está perguntando,

\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}

insira a descrição da imagem aqui

Presumo que você não tenha provas no meio das definições.

Responder3

Othmboxpacotefornece uma ótima maneira de exibir theoremambientes semelhantes.

Por exemplo, usando os três estilos predefinidos, você pode ter:

\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}

insira a descrição da imagem aqui

Por favor, observe que:

  • Defino a fonte como normalfont(ou seja, não inclinada) apenas para o primeiro exemplo (ambiente defiS),
  • A numeração é 1,1 nos três casos porque usei três ambientes diferentes (ou seja defiS, , defiMe defiL), mas se você se limitar a um ambiente, os números estarão corretos (ou seja, 1,1, 1,2, 1,3, etc.).
  • Acabei de usar o estilo predefinido, mas você pode personalizá-los bastante.

Responder4

Uma solução é recuar (em um determinado valor) toda a prova e brincar um pouco com o tamanho da fonte. Você pode considerar a seguinte redefinição do proofambiente:

\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

informação relacionada