[Tex/LaTex] Vertical space around theorems

spacingtheorems

I'm working in a document that has double-spacing (yuck!), and I want to establish some standards in order to make the thing look "presentable".

Currently, the only environment that has an automatic cushion of vertical space is the proof environment. I would like for the theorems to have the same effect. In other words, I want a little bit of extra space (say, 1em) between my theorems and the surrounding text. Here is a minimal example of the code which establishes the spacing.

\oddsidemargin 0.25in
\evensidemargin 0.25in
\textheight 612\p@   
\textwidth 6.0in
\footskip 0.5in
\topmargin -12\p@
\headheight 1.5ex
\headsep 24\p@
\parindent 30\p@
\itemsep 0\p@        % keeps spacing within lists consistent
\parsep 0\p@         % keeps spacing within lists consistent
\parskip 0\p@        % keeps spacing b/t pars consistent
\topsep 0\p@         % consistent spacing b/t lists & paragraphs
\partopsep 0\p@      % consistent spacing b/t lists & paragraphs
\topskip 0\p@        % keeps top margin consistent
\textfloatsep 25\p@  % proper spacing for floats
\intextsep 25\p@     % proper spacing for floats

\clubpenalty= 10000           % no orphans allowed
\widowpenalty= 10000          % no widows allowed
\displaywidowpenalty= 10000   % no widows allowed in "displayed" text
\def\myskip{\vskip 9\p@}
\def\stretchv@l{1.66}
\renewcommand{\baselinestretch}{\stretchv@l} % double spacing
\pagenumbering{roman}
\renewcommand{\floatpagefraction}{0.8}

I did not write this code, and I would like to know what I should add/edit in order to get the desired results. I tried to manually add space around the theorem environments, but it seems to cause more problems than not. By the way, I'm using the report document class.

Best Answer

If you're using one of the AMS document classes (amsart or amsbook) or saying \usepackage{amsthm}, you can define a new theoremstyle, two parameters of which are the skip above the theorem and the skip below the theorem. For example, I like my theorems to use slanted type in the body instead of italics, and so I use the following:

\newtheoremstyle{slplain}% name
  {.5\baselineskip\@plus.2\baselineskip\@minus.2\baselineskip}% Space above
  {.5\baselineskip\@plus.2\baselineskip\@minus.2\baselineskip}% Space below
  {\slshape}% Body font
  {}%Indent amount (empty = no indent, \parindent = para indent)
  {\bfseries}%  Thm head font
  {.}%       Punctuation after thm head
  { }%      Space after thm head: " " = normal interword space;
        %       \newline = linebreak
  {}%       Thm head spec


\theoremstyle{slplain}
\newtheorem{thm}[equation]{Theorem}  % Numbered with the equation counter
\newtheorem{cor}[equation]{Corollary}     
\newtheorem{lem}[equation]{Lemma}         
\newtheorem{prop}[equation]{Proposition}  

Almost all of the parameters I used for that \newtheoremstyle command are exactly the ones used for the plain theoremstyle in amsart, except that I changed the body font from \itshape to \slshape.

As noted in the comments, the second and third parameters to the \newtheoremstyle command are the space above and the space below. You can change those to whatever you like (and even change the \slshape that I use back to \itshape if that's what you prefer).

Related Question