[Tex/LaTex] How to change the font size of all theorem environments

fontsizetheorems

I have several theorem environments:

\newtheorem{theorem}{Theorem}
\newtheorem{definition}{Definition}
\newtheorem{proposition}{Proposition}

etc.

and I want to change them so that they all use "small" for font size. Is there a way to re-define the font size for all of these environments?

Best Answer

I wouldn't do that, but if you really need it...

  1. If you need BOTH the header and the body of the theorem in \small size you can load the package etoolbox and issue the command

    \AtBeginEnvironment{theorem}{\small}
    

    that is, add the following lines in the preamble:

    \usepackage{etoolbox}
    \AtBeginEnvironment{theorem}{\small}
    
  2. If you need ONLY the body of the theorem in \small size you can redefine the theorem environment as follows:

    \let\oldtheorem\theorem
    \let\oldendtheorem\endtheorem
    \renewenvironment{theorem}
      {\oldtheorem\small}
      {\oldendtheorem}
    

In the following MWE theorem has both the header and the body in \small size, while definition has only the body and proposition is left as it was originally.

\documentclass{article}

\newtheorem{theorem}{Theorem}
\newtheorem{definition}{Definition}
\newtheorem{proposition}{Proposition}

\usepackage{etoolbox}
\AtBeginEnvironment{theorem}{\small}

\let\olddefinition\definition
\let\oldenddefinition\enddefinition
\renewenvironment{definition}
  {\olddefinition\small}
  {\oldenddefinition}

\begin{document}
\begin{theorem}
My theorem
\end{theorem}
\begin{definition}
My definition
\end{definition}
\begin{proposition}
My proposition
\end{proposition}
\end{document} 

Output:

enter image description here

Note that it works fine with amsthm and ntheorem as well.

Related Question