5

Some definitions and theorems end with an itemize. When I use pure amsthm this looks good, but when I use thmtools+amsthm it looks ugly with too much space below the theorem. I do not see what I have done wrong in my \declaretheoremstyle.

Could somebody please help me?

\documentclass{article}
\usepackage{amsthm}

%%%%%%%%%%% Uncomment to use pure amsthm %%%%%%%%%%%%
% \newtheorem{mytheorem}{Mytheorem}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%% Comment out to use pure amsthm %%%%%%%%%%
\usepackage{thmtools}

% Set all vertical spaces I know of to zero to illustrate issue.
\declaretheoremstyle[
spaceabove=0pt,
spacebelow=0pt,
headfont=\normalfont\bfseries,
notefont=\bfseries,
notebraces={(}{)},
bodyfont=\normalfont,
qed={},
headpunct={.}
]{mytheoremstyle}

\declaretheorem[style=mytheoremstyle, name=MyTheorem]{mytheorem}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\noindent
Text before theorem without indent for clarity.

\begin{mytheorem}
  Here is my theorem with itemize inside it.
  \begin{itemize}

  \item My item A.

  \item My item B.

  \end{itemize}
\end{mytheorem}

\noindent
Text after the theorem without indent for clarity.

\begin{mytheorem}
  Here is another theorem without any itemize inside it.
\end{mytheorem}

\noindent
Final text here without indent for clarity.

\end{document}
2
  • Welcome to TeX.SE!
    – Mico
    Feb 6, 2016 at 3:31
  • You're adding a line with the qed={}. If you remove that, things get much more squished.
    – cfr
    Feb 6, 2016 at 3:59

1 Answer 1

1

The qed={} is adding a line of space, I think. If you comment that out, the disparity disappears:

\documentclass{article}
\usepackage{amsthm}

%%%%%%%%%%% Uncomment to use pure amsthm %%%%%%%%%%%%
% \newtheorem{mytheorem}{Mytheorem}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%% Comment out to use pure amsthm %%%%%%%%%%
\usepackage{thmtools}

% Set all vertical spaces I know of to zero to illustrate issue.
\declaretheoremstyle[
spaceabove=0pt,
spacebelow=0pt,
headfont=\normalfont\bfseries,
notefont=\bfseries,
notebraces={(}{)},
bodyfont=\normalfont,
% qed={},
headpunct={.}
]{mytheoremstyle}
%
\declaretheorem[style=mytheoremstyle, name=MyTheorem]{mytheorem}
% \declaretheorem[name=MyTheorem]{mytheorem}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\noindent
Text before theorem without indent for clarity.

\begin{mytheorem}
  Here is my theorem with itemize inside it.
  \begin{itemize}

  \item My item A.

  \item My item B.

  \end{itemize}
\end{mytheorem}

\noindent
Text after the theorem without indent for clarity.

\begin{mytheorem}
  Here is another theorem without any itemize inside it.
\end{mytheorem}

\noindent
Final text here without indent for clarity.

\end{document}

unset qed option for squishedness

3
  • If I understand this correctly, the semantics are as follows:
    – Douglas
    Feb 6, 2016 at 13:06
  • Let me try to summarize my understanding for future readers: If qed=FOO is used at all, then we put a qed symbol at the end of the environment (e.g., a square or box). In the case of an itemize or similar this means on a new line unless we use \qedhere. If qed=FOO is not used at all, then there will be no qed at the end of the environment and in particular no additional new line. This is what we want. It is a matter of taste to say if this is a bug in thmtools or not. I do not see a heavy use of an invisible qed symbol out there, so perhaps qed={} should mean no qed symbol?
    – Douglas
    Feb 6, 2016 at 13:13
  • But right now: not specifying qed= at all means no automatic QED symbol, whereas qed={} means an automatic invisible one. While I can't think the latter is likely to be in great demand, it isn't easy to say whether it is a bug or not. I guess it depends on the intention of the package author, so you'd have to ask them. It is a bit odd. On the other hand, there's an obvious way around it. I mean, semantically, saying qed={<something>} is saying 'add the symbol `<something>' as a QED symbol at the end of each theorem. And that is, after all, what it does in each case.
    – cfr
    Feb 6, 2016 at 22:07

You must log in to answer this question.

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