9

How can I suppress vertical space between a theorem head and an enumitem environment? I would like the output to look like version 3 below, but I hope there is an automatical solution without ~ and \vspace.

\documentclass{article}
\usepackage{amsthm}
\usepackage{enumitem}
\newtheoremstyle{mythmstyle}%
{0.5em}% space above
{0.5em}% space below
{}% body font
{}% indent amount
{\sffamily\bfseries}% head font
{}% punctuation after head
{\newline}% space after head
{\thmname{#1}\ \thmnumber{#2}\ \thmnote{(#3)}}% head spec
\theoremstyle{mythmstyle}
\newtheorem{Theorem}{Theorem}
\begin{document}

%% version 1: vertical spacing correct
\begin{Theorem}
Dummy text
\begin{enumerate}[label=(\arabic*),leftmargin=*,align=left]
\item Item 1: More dummy text
\item Item 2: More dummy text
\end{enumerate}
\end{Theorem}

%% version 2: vertical spacing too large
\begin{Theorem}
~
\begin{enumerate}[label=(\arabic*),leftmargin=*,align=left]
\item Item 1: More dummy text
\item Item 2: More dummy text
\end{enumerate}
\end{Theorem}

%% version 3: desirable output, but ugly solution via \vspace
\begin{Theorem}
~\vspace{-1.4em}
\begin{enumerate}[label=(\arabic*),leftmargin=*,align=left]
\item Item 1: More dummy text
\item Item 2: More dummy text
\end{enumerate}
\end{Theorem}

%% version 4: does it work with enumitem alone? (no, topsep seems to be ignored)
\begin{Theorem}
~
\begin{enumerate}[label=(\arabic*),leftmargin=*,align=left, topsep=-1.4em]
\item Item 1: More dummy text
\item Item 2: More dummy text
\end{enumerate}
\end{Theorem}
\end{document}

2 Answers 2

12

Don't use ~ just use nothing (or a blank line) in the markup. You then have the problem that latex lists use a run-in style for the first item if following a run-in heading. This is by design (it goes to some trouble to make that work) If you don't like that style the thing to do is change that rather than put markup in the document. I don't know my way round that code as well as I used to, but this seems to work, it may need a bit more care to ensure that page breaks etc are suppressed in all the right places but...

enter image description here

\documentclass{article}
\usepackage{amsthm}
\usepackage{enumitem}
\newtheoremstyle{mythmstyle}%
{0.5em}% space above
{0.5em}% space below
{}% body font
{}% indent amount
{\sffamily\bfseries}% head font
{}% punctuation after head
{\newline}% space after head
{\thmname{#1}\ \thmnumber{#2}\ \thmnote{(#3)}}% head spec
\theoremstyle{mythmstyle}
\newtheorem{Theorem}{Theorem}


\makeatletter
\def\enumfix{%
\if@inlabel
 \noindent \par\nobreak\vskip-\parskip\vskip-\baselineskip\hrule\@height\z@
\fi}

\let\oldenumerate\enumerate
\def\enumerate{\enumfix\oldenumerate}


\begin{document}

%% version 1: vertical spacing correct
\begin{Theorem}
Dummy text
\begin{enumerate}[label=(\arabic*),leftmargin=*,align=left]
\item Item 1: More dummy text
\item Item 2: More dummy text
\end{enumerate}
\end{Theorem}


%% version 2a: vertical spacing too large
\begin{Theorem}

\begin{enumerate}[label=(\arabic*),leftmargin=*,align=left]
\item Item 1: More dummy text
\item Item 2: More dummy text
\end{enumerate}
\end{Theorem}
\end{document}
3
  • This is a follow-up question: tex.stackexchange.com/questions/60001/…
    – mathlete
    Commented Jun 15, 2012 at 17:36
  • How about just using \begin{theorem}\mbox{}\begin{itemize}\item 1 \item 2\end{itemize}\end{theorem}?
    – pluton
    Commented Jul 17, 2013 at 14:02
  • @pluton as I say above " If you don't like that style the thing to do is change that rather than put markup in the document." Commented Jul 17, 2013 at 19:45
4

your approach may be ugly, and it really should use a vertical unit like ex instead of em, but if it gives you the result you want, why not just embed it into a \newenvironment?

for example,

\newenvironment{thmenumerate}{%
\leavevmode\vspace{-1.4em}
\begin{enumerate}[label=(\arabic*),leftmargin=*,align=left]
}{%
\end{enumerate}
}

and use it like this:

\begin{Theorem}
\begin{thmenumerate}
\item Item 1: More dummy text
\item Item 2: More dummy text
\end{thmenumerate}
\end{Theorem}
1
  • Thanks for helping, Barbara. I was hoping for a more flexible solution since I do not always have the same vertical space (of fixed size such as -1.4em as above) and also not the same enumerate environment (especially the label but also other parameters of the numerate environment often change).
    – mathlete
    Commented Mar 1, 2012 at 14:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .