我正在使用 amsthm 包来布局定理及其证明。如何减少定理陈述的最后一行和证明的第一行之间的垂直间距?
顺便说一句,我尝试通过摆弄第三个参数来实现这一点
\newtheoremstyle{mystyle}{4ex}{-4ex}{}{}{\bfseries}{.}{3ex}{}
...但即使是负值(如上所示)也无法使证明的第一行比大约 2.5 行高的某个固定距离更近。
相关问题:如何防止定理和证明之间出现分页符?我想确保定理陈述中的至少两行位于页面上证明的第一行之前。(可以合理地假设定理陈述的最后一行和证明的第一行之间没有插入任何文本。)
答案1
一种可能性是重新定义proof
环境,如中所述amsthm.sty
(定义使用\topsep6\p@\@plus6\p@\relax
,因此您可以在那里进行一些更改)。另一种方法是使用前端thm工具定义一个新的定理类结构,其行为与标准proof
环境类似,但使用spaceabove
键来控制其上方的垂直空间。以下示例说明了第二种方法,并显示了新prf
环境和标准proof
环境的不同间距:
\documentclass{article}
\usepackage{amsthm}
\usepackage{thmtools}
\declaretheorem{theorem}
\declaretheoremstyle[%
spaceabove=-6pt,%
spacebelow=6pt,%
headfont=\normalfont\itshape,%
postheadspace=1em,%
qed=\qedsymbol%
]{mystyle}
\declaretheorem[name={Proof},style=mystyle,unnumbered,
]{prf}
\begin{document}
\begin{theorem}
A really important result.
\end{theorem}
\begin{prf}
And its proof with less space above.
\end{prf}
\begin{theorem}
A really important result.
\end{theorem}
\begin{proof}
And its proof with too much space above.
\end{proof}
\end{document}