4

I want to modify the standard amsthm environment proof so that its beginning, including the word "Proof", is indented by the same amount as any normal text paragraph.

How do I refer to the size of a normal text paragraph's indentation so that I can use it as a length with \hskip, as in:

\makeatlatter
\renewenvironment{proof}[1][\proofname]{\par
  \pushQED{\qed}%
  \normalfont \topsep6\p@\@plus6\p@\relax
  \trivlist
  \item[\hskip\SOMETHING       %% WHAT GOES IN PLACE OF "SOMETHING"
      \itshape
    #1\@addpunct{.}]\ignorespaces
}{%
  \popQED\endtrivlist\@endpefalse
} 
\makeatother    

I'd like this to be independent of any particular documentclass or the class's base font-size option, which is why I want to refer to the size of the normal paragraph indentation rather than specify something specific (looking at the code for the documentclass) like 10pt or 2em, or whatever.

Important I do not want to indent the entire proof, including the first line that contains "Proof" — just that first line.

Minimal example:

\documentclass{memoir}

\usepackage{amsthm}
\newtheorem{thm}{Theorem}

\makeatletter
\renewenvironment{proof}[1][\proofname]{\par
  \pushQED{\qed}%
  \normalfont \topsep6\p@\@plus6\p@\relax
  \trivlist
  \item[\hskip\labelsep % WHAT GOES IN PLACE OF \labelsep??
        \itshape
    #1\@addpunct{.}]\ignorespaces
}{%
  \popQED\endtrivlist\@endpefalse
}
\makeatother

\begin{document}

Lots of text here.

\begin{thm}
This is true.
\end{thm}

\begin{proof}
It's ovvious!
\end{proof}

\end{document}

On the output I've indicated graphically what I want to move.

How indent just 1st line of proof as indicated?

  • \hskip\dimexpr\labelsep+\parindent\relax – Steven B. Segletes Dec 6 '16 at 2:36
  • Just replace [\proofname] with [\indent\proofname]. – John Kormylo Dec 6 '16 at 3:41
3

Add a new length that's set to \parindent at begin document, so it will be available inside lists (that may reset \parindent).

\documentclass{memoir}

\usepackage{amsthm}
\newtheorem{thm}{Theorem}

\makeatletter
\newlength{\normalparindent}
\AtBeginDocument{\setlength{\normalparindent}{\parindent}}
\renewenvironment{proof}[1][\proofname]{\par
  \pushQED{\qed}%
  \normalfont \topsep6\p@\@plus6\p@\relax
  \trivlist
  \item[\hskip\labelsep\hskip\normalparindent
        \itshape
    #1\@addpunct{.}]\ignorespaces
}{%
  \popQED\endtrivlist\@endpefalse
}
\makeatother

\begin{document}

Lots of text here.

\begin{thm}
This is true.
\end{thm}

\begin{proof}
It's obvious!
\end{proof}

\end{document}

enter image description here

A more compact version using xpatch:

\documentclass{memoir}

\usepackage{amsthm,xpatch}
\newtheorem{thm}{Theorem}

\newlength{\normalparindent}
\AtBeginDocument{\setlength{\normalparindent}{\parindent}}
\xpatchcmd{\proof}{\hskip\labelsep}{\hskip\labelsep\hskip\normalparindent}{}{}

\begin{document}

Lots of text here.

\begin{thm}
This is true.
\end{thm}

\begin{proof}
It's obvious!
\end{proof}

\end{document}
  • Why does you "compact version", at least, not work if I also use amsthm to define theorem styles? See added example in my OP, please. – murray Dec 6 '16 at 18:04
  • I meant thmtools, not amsthm. I've found that I merely need to move the \xpatchcommand expression to go before loading thmtools. – murray Dec 6 '16 at 18:22
1

I'd imagine you can just set the proof as a regular paragraph, not as part of a list.

enter image description here

\documentclass{memoir}

\usepackage{amsthm}
\newtheorem{thm}{Theorem}

\newlength{\storeparindent}
\AtBeginDocument{\setlength{\storeparindent}{\parindent}}

\makeatletter
\renewenvironment{proof}[1][\proofname]{\par
  \pushQED{\qed}%
  \normalfont \vspace{6\p@\@plus6\p@}%
  {\itshape #1\@addpunct{.}}\hspace*{\labelsep}%
  \ignorespaces
}{%
  \popQED
  \@endpefalse
}
\makeatother

\begin{document}

Lots of text here.

\begin{thm}
This is true.
\end{thm}

\begin{proof}
It's obvious!
\end{proof}

\end{document}

This will ensure that the "proof paragraph" will indent the same way other paragraphs should. Also, if the document class resets \parindent, the proof environment will follow suit.

You may wish to play a little with the post-proof spacing, since lists do have that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.