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