定理の周りの縦方向のスペースを削除する

定理の周りの縦方向のスペースを削除する

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

しかし、これには 2 つの大きな問題があります。まず、 では%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ゼロに設定することです。

最後に、命題番号は間違っていますthm。s内で番号付けするように要求しているからです。次のように書くべきです。

\newtheorem{prop}[thm]{Proposition}

[thm]末尾ではなく他の引数の間に配置します。

これらすべてを 1 つのサンプル ドキュメントにまとめたものがこれです。

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

サンプル出力

関連情報