% Used below to define pcases.
\usepackage{enumitem}
+% Needed to perform division in the definition of \singleblskip.
+\usepackage{calc}
+
+% A \baselineskip without the \baselinestretch scaling factor. Even
+% though \baselinestretch defaults to 1.0, it doesn't really have that
+% value. Thus to avoid division by zero, we need to do the ``is this
+% thing empty?'' hack.
+%
+% If we use \baselineskip instead of \singleblskip in our list, things
+% get real ugly when the text is e.g. double-spaced.
+%
+\newlength{\singleblskip}
+\setlength{\singleblskip}{
+ \baselineskip / \real{
+ \if\relax\detokenize{\baselinestretch}\relax
+ \baselinestretch%
+ \else
+ 1%
+ \fi}
+}
+
% Using the enumitem package, we define a new type of list, called
% ``pcases'' (proof by cases). Each case has a label with an arabic
% numeral (the case number), but also a \thiscase identifier. The
leftmargin=0pt,
listparindent=\parindent,
parsep=\parskip,
- itemsep=\baselineskip}
+ itemsep=\singleblskip}
% The optional argument here gets stuffed into the \thiscase macro, to
% be called by pcases when it creates this list item. The \hfill is a
% so we consume the rest of the line instead.
\newcommand{\case}[1][]{
\def\thiscase{#1}%
- \item \hfill\par\vspace{\baselineskip}
+ \item \hfill\par\vspace{\singleblskip}
}