如何在校样末尾画一条水平线?

如何在校样末尾画一条水平线?

如何在校样末尾画一条水平线?我使用\begin{proof}....\end{proof}

我使用的amsthm包没有经过任何修改。

答案1

您可以修补\endproof(环境的结束宏proof)以自动插入水平线。以下修补程序通过以下方式提供:etoolbox

在此处输入图片描述

\documentclass{article}
\usepackage{amsthm,etoolbox}% http://ctan.org/pkg/{amsthm,etoolbox}
\patchcmd{\endproof}% <cmd>
  {\endtrivlist}% <search>
  {\endtrivlist\par\nobreak\vspace*{\dimexpr-\baselineskip-\parskip}\nobreak\noindent\hrulefill}% <replace>
  {}{}% <succes><failure>
\begin{document}
\begin{proof}
Here is a proof.
\end{proof}
\end{document}

补丁程序删除了结束后的垂直跳过proof,并\nobreak与水平线(\hrulefill)一起插入,以便它们不会被分页符分隔。

答案2

这是另一个选项,这次使用thmtools包作为前端amsthm

\documentclass{article}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{lipsum}% just to generate text for the example

\let\proof\relax
\let\endproof\relax

\declaretheoremstyle[
spaceabove=6pt, spacebelow=6pt,
numbered=no,
headfont=\normalfont\itshape,
notefont=\mdseries, notebraces={(}{)},
bodyfont=\normalfont,
postheadspace=1em,
prefoothook=\vspace*{\dimexpr-\baselineskip+\topsep\relax}\endgraf\nobreak\noindent\hrulefill
]{mystyle}
\declaretheorem[style=mystyle]{proof}

\begin{document}

\begin{proof}
\lipsum*[2]
\end{proof}

\end{document}

在此处输入图片描述

答案3

例如:

\documentclass{article}


\begin{document}

\def\qed{\hrulefill}

\newtheorem{theorem}{Theorem}
\begin{theorem}
2+2=4.
\qed
\end{theorem}

\end{document}

相关内容