How can I manually indent environments like theorem, corollary, etc.?

I am submitting a paper to a journal that requires labels like theorems, corollaries, proofs, and lemmas to be indented. Right now, these environments are flush to the left margin. How can I make this happen?

\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{cite}
\usepackage{amsfonts}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}

% for the journal
\usepackage[labelsep=period]{caption}
\captionsetup[table]{name=TABLE}
\renewcommand{\thetable}{\Roman{table}}
\usepackage{indentfirst}
\title{title}
\author{
people
}

\newtheorem{theorem}{Theorem}
\newtheorem{corollary}{Corollary}

\begin{document}
\maketitle

\begin{theorem}
theorem to be indented at the label
\end{theorem}

\begin{proof}
proof to be indented at the label
\end{proof}

• You mean normal indented paragraphs or should the body of the theorem be indented as well? – egreg May 20 at 17:29
• @egreg The journal wants just the label indented, like it's a new paragraph. They don't want the entire body of the theorem to be indented, as well. – Carl Yocto May 20 at 17:30

You can load amsthm and define your own style. My answer https://tex.stackexchange.com/a/17555/4427 lists the parameters for the plain style, so it's easy to modify them.

\documentclass{article}
\usepackage{amsthm}

\usepackage{lipsum} % for mock text

\newtheoremstyle{plainindent}
{\topsep}   % ABOVESPACE
{\topsep}   % BELOWSPACE
{\itshape}  % BODYFONT
{\parindent}% INDENT (empty value is the same as 0pt)
{5pt plus 1pt minus 1pt} % HEADSPACE

\theoremstyle{plainindent}
\newtheorem{theorem}{Theorem}

\begin{document}

\lipsum[1][1-4]

\begin{theorem}
\lipsum[2][1-3]
\end{theorem}

\lipsum[3][1-4]

\end{document}


If you also use \theoremstyle{definition}, define a definitionindent style like plainindent, but with \upshape for BODYFONT.

Here's how you can also indent proofs.

\documentclass{article}
\usepackage{amsthm}
\usepackage{xpatch}

\usepackage{lipsum} % for mock text

\newtheoremstyle{plainindent}
{\topsep}   % ABOVESPACE
{\topsep}   % BELOWSPACE
{\itshape}  % BODYFONT
{\parindent}% INDENT (empty value is the same as 0pt)
{5pt plus 1pt minus 1pt} % HEADSPACE
\xpatchcmd{\proof}{\itshape}{\hspace{\parindent}\itshape}{}{}

\theoremstyle{plainindent}
\newtheorem{theorem}{Theorem}

\begin{document}

\lipsum[1][1-4]

\begin{theorem}
\lipsum[2][1-3]
\end{theorem}
\begin{proof}
\lipsum[2][4-6]
\end{proof}

\lipsum[3][1-4]

\end{document}


• This works perfectly for my theorems and corollaries; however, it does not work for proofs that are defined as \newtheorem{proof}{Proof}. How could I indent proofs in a similar way? – Carl Yocto May 20 at 18:10
• @CarlYocto Added the indentation for proofs. – egreg May 20 at 19:13
• Wonderful. Thank you! – Carl Yocto May 20 at 19:44

Not sure this is exactly what you want, but the ntheorem package defines a \theoremindent length:

\documentclass{article}
\usepackage{amsmath}%
usepackage{cite}
\usepackage{amsfonts}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}

% for the journal
\usepackage[labelsep=period]{caption}
\captionsetup[table]{name=TABLE}
\renewcommand{\thetable}{\Roman{table}}
\usepackage{indentfirst}
\title{title}
\author{
people
}
\usepackage{showframe}
\renewcommand{\ShowFrameLinethickness}{0.2pt}
\usepackage{ntheorem}
\setlength{\theoremindent}{1cm}
\theoremseparator{.}
\newtheorem{theorem}{Theorem}
\newtheorem{corollary}{Corollary}

\theoremstyle{nonumberplain}
\theoremseparator{\upshape:}
\theorembodyfont{\normalfont}

\newtheorem{proof}{Proof}

\begin{document}
\maketitle

\begin{theorem}
A theorem to be indented at the label. And all its contents is indented indeed.
\end{theorem}

\begin{proof}
proof to be indented at the label. Blah blah blah. Blahblah. Blahblah.
\end{proof}

\end{document}


Edit:To indent only the theorems and proofs labels, I defined two new styles: indented and nonumberindented:

\documentclass{article}
\usepackage{amsmath}%
\usepackage{cite}
\usepackage{amsfonts}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}

% for the journal
\usepackage[labelsep=period]{caption}
\captionsetup[table]{name=TABLE}
\renewcommand{\thetable}{\Roman{table}}
\usepackage{indentfirst}
\title{title}
\author{
people
}
\usepackage{showframe}
\renewcommand{\ShowFrameLinethickness}{0.2pt}
\usepackage{ntheorem}
\usepackage{thmtools}
\makeatletter
\newtheoremstyle{indented}%
\newtheoremstyle{nonumberindented}%
\makeatother
\theoremstyle{indented}
\theoremseparator{.}
\newtheorem{theorem}{Theorem}
\newtheorem{corollary}{Corollary}

\theoremstyle{nonumberindented}

\theoremseparator{\,\upshape:}
\theorembodyfont{\normalfont}

\newtheorem{proof}{Proof}

\begin{document}
\maketitle

\begin{theorem}
A theorem to be indented at the label. The theorem body is not indented .
\end{theorem}

\begin{proof}
proof to be indented only at the label. Blah blah blah. Blahblah. Blahblah.Blahblahblah.
\end{proof}

\end{document}


• This worked great! Is there a way to have just the label be indented and the rest of the contents have standard spacing? – Carl Yocto May 20 at 17:29
• That's the point for which I had a doubt. It should be possible adding the thmtools package. Let me test it first. – Bernard May 20 at 17:32
• Okay, thank you! – Carl Yocto May 20 at 18:04
• @CarlYocto: Finally, thmtools was not necessary. I just defined two new styles, which add \parindent at the beginning. Please see if it's fine for you. – Bernard May 20 at 18:13
• @WillieWong: Thanks for the edit! – Bernard May 20 at 18:48