4

I want to eliminate the word "Proof" that appears right after \begin{proof} ... \end{proof}

The basic ideas: \renewcommand{\proofname}{} and \begin{proof}[] \end{proof}

Do not work because there is an unwanted punctuation sign.

cabohah
  • 11,455
  • 2
    Untested, because of missing minimal working example: \makeatletter\renewcommand*{\@addpunct}[1]{}\makeatletter in addition to your \renewcommand{\proofname}{}. – cabohah Mar 11 '24 at 17:18

1 Answers1

5

You can use this trick: \hspace{-\labelsep} undoes the implicit spacing and \spacefactor5000 tells LaTeX that some punctuation is present.

\documentclass{article}
\usepackage{amsthm}

\usepackage{lipsum}

\renewcommand{\proofname}{\hspace{-\labelsep}\spacefactor5000 }

\begin{document}

\begin{proof} \lipsum[1][1-2] \end{proof}

\end{document}

enter image description here

Explanation. The \proofname part is inserted by

 \item[\hskip\labelsep\itshape#1\@addpunct{.}]\ignorespaces

where #1 stands for the optional argument given to \begin{proof}, default is \proofname.

With \hspace{-\labelsep} we counteract the \hskip\labelsep.

The macro \@addpunct is responsible for adding . if no explicit punctuation is given in the optional argument, say

\begin{proof}[Proof?]

It does this by examining the space factor that results after typesetting that argument, which is greater than 1000 when explicit punctuation is present. By manually setting the space factor to 5000 we emulate that presence, but nothing is typeset, and so the period isn't added.

egreg
  • 1,121,712