2

How do I automatically vertically justify (evenly vertically space in a page) the \items of an enumerate environment?

Is adding \vfill after each \item the only way to do this?

2
  • The space between items is \itemsep so you can make that stretchy either in a redefinition, or using enumitem package in an optional argument on specific lists Mar 19 '14 at 15:36
  • if one read this literally, i.e. that the beginning of each item is to be the exact same distance from every adjacent item, this is going to be really difficult unless every item occupies exactly the same number of lines. is that what is meant? Mar 19 '14 at 17:42
3

enumitem is your friend:

\documentclass{article}
\usepackage[pass,showframe]{geometry} % show a frame around the page
\usepackage{enumitem}
\newenvironment{spreadenum}[1][]
  {\begin{enumerate}[itemsep=.6ex plus 1fill,#1]}
  {\end{enumerate}\par\vfill}

\begin{document}

\begin{spreadenum}
\item a
\item b
\item c
\item d
\end{spreadenum}

\end{document}

enter image description here

2

The spacing of top level lists at normalsize in the default 10pt option in the standard classes is set by

\makeatletter
\def\@listi{\leftmargin\leftmargini
            \parsep 4\p@ \@plus2\p@ \@minus\p@
            \topsep 8\p@ \@plus2\p@ \@minus4\p@
            \itemsep4\p@ \@plus2\p@ \@minus\p@}
\let\@listI\@listi
\makeatother

(in size10.clo) so the vertical stretch is by default limited to 2pt, you could change that to 5in or \fill or whatever you need in the preamble if you want a global change/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.