# Define a \<name> and \end<name> pair directly rather than define an environment called <name>?

While defining an environment <env> also defines the \<env> and \end<env> declarations, what are the circumstances where defining those declarations directly (without defining an environment) is preferable?

I see the following use where \proof and \endproof are defined separately in the informs3 document class file:

%% Use for proper proofs that end with extra space (regardless of the use
%% or non-use of \qed (=the black box)
\def\proof#1{\Trivlist\item[\hspace*{1em}\hskip\labelsep{\it #1\enskip }]\ignorespaces}


Is there any reason not to do \newenvironment{proof}[1]{...}{...} instead?

• I'm always amazed when journal styles reinvent the wheel, making it worse than the available models. Nov 17, 2018 at 16:43
• @egreg Totally.
– tvk
Nov 17, 2018 at 17:07
• There are pieces of code which you can use both in LaTeX as \begin{envname}..\end{envname} and, e.g., in plain-TeX (, where you neither have LaTeX 2e's \newenvironment-command nor have LaTeX 2e's environment-mechanism,) as \envname..\endenvname. Nov 18, 2018 at 11:23

\newenvironment other than checking that the name is "safe" to define does nothing different to the \def forms that you show (apart from using \long\def unless the * form is used).
• I realize I can actually do \begin{proof}{Proof.} It's obvious. \end{proof}.