Soy muy nuevo en LaTeX (hace un par de días no sabía cómo usarlo \newtheorem
) y esperaba que alguien pudiera ayudarme con el siguiente problema.
Si estoy usando \usepackage{amsthm}
, ¿cómo obtengo control sobre la brecha vertical entre teoremas, proposiciones, etc. y sus respectivas demostraciones? En particular, estoy buscando la prueba para seguir como una línea normal. Esto es lo mejor que se me ha ocurrido hasta ahora:
\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}}\
Sin embargo, tengo dos problemas principales con esto. En primer lugar, %Below skip
no parece darme mucho control: hay un salto bastante sustancial entre {}
y cuando escribo cualquier valor negativo. En segundo lugar, la numeración se estropea, por ejemplo, si escribo \begin{thm}...\end{thm}
y luego \begin{prop}...\end{prop}
(en la sección 1 digo) obtendría como mi salida:
Teorema 1.1
Proposición 1.1.1
Gracias por cualquier ayuda.
Respuesta1
En primer lugar, el siguiente salto debe ser positivo; los valores negativos se ignoran. Puede borrar el espacio proporcionado de forma estándar escribiendo
\makeatletter
\def\thm@space@setup{\thm@preskip=0pt
\thm@postskip=0pt}
\makeatother
antes de su \newtheoremstyle
. Puede ajustar esto cambiando los valores 0pt
o usando los parámetros en el archivo \newtheoremstyle
.
Intentar
\newenvironment{pf}{\noindent\textit{Proof.}\begin{mdseries}}{\end{mdseries}}
para su entorno de prueba. Si esto es demasiado simplista, por ejemplo, si desea tener las \qed
características del entorno AMS, puede utilizar la siguiente adaptación del código de prueba de 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
El punto importante es establecer el valor de \topsep
en cero.
Por último, el número de la proposición es incorrecto porque usted pidió que se numerara dentro de thm
s. Deberías escribir
\newtheorem{prop}[thm]{Proposition}
con [thm]
colocado entre los otros argumentos no al final.
Aquí está todo esto reunido en un documento de muestra.
\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}