我正在尝试让 LaTeX 在定理和证明之间不添加额外的空格。这是我的代码:
\newtheorem*{pr3}{Theorem}
\begin{pr3}
foo
\end{pr3}
\begin{proof}[Proof:]
bar
\end{proof}
有没有办法只用amsthm
/来实现这一点amsmath
,怎么做?我想更新环境证明,但我找不到最好的方法。所以如果有人能告诉我在哪里可以找到这样的信息(这也可以算是第一个问题的答案),那就太好了。
答案1
你可能不想删除证明后的空格,所以方法应该是
\makeatletter
\renewenvironment{proof}[1][\proofname]{\par
\vspace{-\topsep}% remove the space after the theorem
\pushQED{\qed}%
\normalfont
\topsep0pt \partopsep0pt % no space before
\trivlist
\item[\hskip\labelsep
\itshape
#1\@addpunct{.}]\ignorespaces
}{%
\popQED\endtrivlist\@endpefalse
\addvspace{6pt plus 6pt} % some space after
}
\makeatother
然而,如果proof
环境前面没有定理,则会排版错误。
答案2
你可以在定理和证明之间放置一个负垂直空间,如下所示:
\newtheorem*{pr3}{Theorem}
\begin{pr3}
foo
\end{pr3}
\vspace{-1.5em}
\begin{proof}[Proof:]
bar
\end{proof}
你可以把所有内容包装成新命令\theoremproof{定理主体}{证明主体}。