Удалить вертикальные пробелы вокруг теорем

Удалить вертикальные пробелы вокруг теорем

Я новичок в LaTeX (еще пару дней назад я не знал, как им пользоваться \newtheorem) и надеялся, что кто-нибудь сможет мне помочь со следующей проблемой.

Если я использую \usepackage{amsthm}, как мне получить контроль над вертикальным зазором между теоремами, предложениями и т. д. и их соответствующими доказательствами? В частности, я ищу доказательство, которое будет следовать как обычная строка. Это лучшее, что я придумал на данный момент:

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

Однако у меня есть две основные проблемы с ним. Во-первых, %Below skipпохоже, что не дает мне особого контроля — есть довольно существенный скачок между {}и , когда я ввожу любое отрицательное значение. Во-вторых, нумерация испорчена, например, если бы я ввел \begin{thm}...\end{thm}, а затем \begin{prop}...\end{prop}(скажем, в разделе 1) я бы получил в качестве вывода:

Теорема 1.1
Предложение 1.1.1

Спасибо за любую помощь.

решение1

Во-первых, ниже пропуск должен быть положительным, отрицательные значения игнорируются. Вы можете очистить интервал, предоставленный как стандарт, написав

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

перед вашим \newtheoremstyle. Вы можете настроить это, изменив значения0pt или используя параметры в \newtheoremstyle.

Пытаться

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

для вашей среды проверки. Если это слишком упрощенно, например, если вы хотите иметь возможности \qedсреды AMS, то вы можете использовать следующую адаптацию кода проверки 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

Важным моментом является установление значения\topsep на ноль.

Наконец, номер предложения неверен, потому что вы попросили, чтобы он был пронумерован в пределах thms! Вы должны написать

\newtheorem{prop}[thm]{Proposition}

с[thm] размещением между другими аргументами, а не в конце.

Вот все это собрано в один образец документа.

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

Пример вывода

Связанный контент