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.

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

1 Answer 1

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.

3
  • This worked it seems. I'm so confused, would you mind providing more explanation? Thanks in advance.
    – William M.
    Mar 11 at 17:23
  • 3
    @WilliamM. Added as requested
    – egreg
    Mar 11 at 17:29
  • Amazing! Thank you.
    – William M.
    Mar 11 at 17:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .