答案1
正如 @Werner 在评论中指出的那样,proof
环境不是由 LaTeX 内核定义的。而是由amsthm
包定义的——可能还有其他一些包。
假设您的文档采用amsthm
包,您可以通过在序言中放置以下代码块来实现格式化目标——后amsthm
当然是加载了。
\makeatletter
\renewenvironment{proof}[1][\proofname]{\par
\pushQED{\qed}%
%% Replace "\topsep6\p@\@plus6\p@" with "\topsep0\p@"
%% (or, using LaTeX-like syntax: '\setlength{\topsep}{0pt}')
\normalfont \topsep0\p@\relax
\trivlist
\item[\hskip\labelsep\itshape#1\@addpunct{.}]\ignorespaces}{%
\popQED\endtrivlist\@endpefalse
}
\makeatother
需要注意的是参数\topsep
不仅控制插入的垂直空白量多于这proof
,以及插入的垂直空白量以下环境proof
..
完整的 MWE(最小工作示例及其输出):
\documentclass{article}
\usepackage{amsthm} % for 'proof' environment
\usepackage{lipsum} % for filler text
\makeatletter
\renewenvironment{proof}[1][\proofname]{\par
\pushQED{\qed}%
%% Replace "\topsep6\p@\@plus6\p@" with "\topsep0\p@"
%% (or, using LaTeX-like syntax: '\setlength\topsep{0pt}')
\normalfont \topsep0\p@\relax
\trivlist
\item[\hskip\labelsep\itshape#1\@addpunct{.}]\ignorespaces}{%
\popQED\endtrivlist\@endpefalse
}
\makeatother
\begin{document}
\lipsum[2] % filler text
\hrule
\begin{proof}
\lipsum[2] % filler text
\end{proof}
\hrule
\lipsum[2] % filler text
\end{document}