Remova o espaço vertical em torno dos teoremas

Remova o espaço vertical em torno dos teoremas

Sou muito novo no LaTeX (há alguns dias não sabia como usá-lo \newtheorem) e esperava que alguém pudesse me ajudar com o seguinte problema.

Se estou usando \usepackage{amsthm}, como faço para obter controle da lacuna vertical entre Teoremas, Proposições etc e suas respectivas provas? Em particular, estou procurando que a prova siga uma linha normal. Este é o melhor que encontrei até agora:

\usepackage{amthm}

\newtheoremstyle{newstyle}      
{} %Aboveskip 
{-.25pt} %Below skip
{\mdseries} %Body font e.g.\mdseries,\bfseries,\scshape,\itshape
{} %Indent
{\bfseries} %Head font e.g.\bfseries,\scshape,\itshape
{.} %Punctuation afer theorem header
{ } %Space after theorem header
{} %Heading

\theoremstyle{newstyle}
\newtheorem{thm}{Theorem}[section]
\newtheorem{prop}{Proposition}[thm]
\newtheorem{lem}{Lemma}
\newtheorem{cor}{Corollary}

\newenvironment{pf}
{\n\textit{Proof.}\begin{mdseries}}
{\end{mdseries}}\

No entanto, tenho dois problemas principais com isso. Em primeiro lugar, %Below skipnão parece me dar muito controle - há um salto bastante substancial entre {}e quando digito qualquer valor negativo. Em segundo lugar, a numeração está confusa, por exemplo, se eu digitasse \begin{thm}...\end{thm}e então \begin{prop}...\end{prop}(na seção 1, digamos) eu ficaria como meu resultado:

Teorema 1.1
Proposição 1.1.1

Obrigado por qualquer ajuda.

Responder1

Em primeiro lugar, o salto abaixo deve ser positivo, os valores negativos são ignorados. Você pode limpar o espaçamento fornecido como padrão escrevendo

\makeatletter
\def\thm@space@setup{\thm@preskip=0pt
\thm@postskip=0pt}
\makeatother

antes do seu \newtheoremstyle. Você pode ajustar isso alterando os valores 0ptou usando os parâmetros no arquivo \newtheoremstyle.

Tentar

\newenvironment{pf}{\noindent\textit{Proof.}\begin{mdseries}}{\end{mdseries}}

para seu ambiente de prova. Se isso for muito simplista, por exemplo, se você deseja ter os \qedrecursos do ambiente AMS, então você pode usar a seguinte adaptação do código de prova AMS

\makeatletter
\newenvironment{pf}[1][\proofname]{\par
  \pushQED{\qed}%
  \normalfont \topsep0\p@\relax
  \trivlist
  \item[\hskip\labelsep\itshape
  #1\@addpunct{.}]\ignorespaces
}{%
  \popQED\endtrivlist\@endpefalse
}
\makeatother

O ponto importante é definir o valor de \topsepcomo zero.

Por último, o número da proposição está errado porque você pediu que fosse numerado dentro de thms! Você deveria escrever

\newtheorem{prop}[thm]{Proposition}

com [thm]colocado entre os outros argumentos não no final.

Aqui está tudo isso colocado em um documento de amostra.

\documentclass{article}

\usepackage{amsthm}

\makeatletter
\def\thm@space@setup{\thm@preskip=0pt
\thm@postskip=0pt}
\makeatother
\newtheoremstyle{newstyle}      
{} %Aboveskip 
{} %Below skip
{\mdseries} %Body font e.g.\mdseries,\bfseries,\scshape,\itshape
{} %Indent
{\bfseries} %Head font e.g.\bfseries,\scshape,\itshape
{.} %Punctuation afer theorem header
{ } %Space after theorem header
{} %Heading

\theoremstyle{newstyle}
\newtheorem{thm}{Theorem}[section]
\newtheorem{prop}[thm]{Proposition}
\newtheorem{lem}{Lemma}
\newtheorem{cor}{Corollary}

\makeatletter
\newenvironment{pf}[1][\proofname]{\par
  \pushQED{\qed}%
  \normalfont \topsep0\p@\relax
  \trivlist
  \item[\hskip\labelsep\itshape
  #1\@addpunct{.}]\ignorespaces
}{%
  \popQED\endtrivlist\@endpefalse
}
\makeatother

\begin{document}
Some text to indicate the spacing.

\begin{thm}
  First theorem, with sufficiently long text so that it spills on to a
  second line.
\end{thm}

Some text to indicate the spacing.  Fill-up text make this spill on to
an extra line.  Fill-up text make this spill on to an extra line.

More text.

\begin{prop}
  A proposition, with sufficiently long text so that it spills on to a
  second line.
\end{prop}

\begin{pf}
  Proof of the proposition with \verb+pf+ environment and sufficiently
  long text so that it spills on to a second line.
\end{pf}

\begin{prop}
  Another proposition, with sufficiently long text so that it spills
  on to a second line.
\end{prop}

\begin{proof}
  The original proof environment and sufficiently long text so that it
  spills on to a second line.
\end{proof}

\end{document}

Exemplo de saída

informação relacionada