From dce0ff5a005e417ac63aafe94583124544bfada3 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Fri, 4 Sep 2009 01:05:22 +0000
Subject: needspace update (3sep09)

git-svn-id: svn://tug.org/texlive/trunk@15072 c570f23f-e606-0410-a88d-b1316a301751
---
 .../texmf-dist/tex/latex/needspace/needspace.sty   | 80 ++++++++++++++++++++++
 1 file changed, 80 insertions(+)
 create mode 100644 Master/texmf-dist/tex/latex/needspace/needspace.sty

(limited to 'Master/texmf-dist/tex/latex/needspace/needspace.sty')

diff --git a/Master/texmf-dist/tex/latex/needspace/needspace.sty b/Master/texmf-dist/tex/latex/needspace/needspace.sty
new file mode 100644
index 00000000000..ee286352e8e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/needspace/needspace.sty
@@ -0,0 +1,80 @@
+% needspace.sty
+%
+% Provides commands to reserve space at the bottom of a page. If there
+% is not enough space on the current page (column) a new page (column)
+% is started.
+%
+% Author: Peter Wilson, Herries Press
+% Maintainer: Will Robertson (will dot robertson at latex-project dot org)
+% Copyright 1996--2003 Peter Wilson
+% Released under the LaTeX Project Public License
+%
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{needspace}[2009/09/03 v1.3b reserve vertical space]
+
+\newcommand{\needspace}[1]{\begingroup\setlength{\dimen@}{#1}%
+  \vskip\z@\@plus\dimen@ \penalty -100\vskip\z@\@plus -\dimen@
+  \vskip\dimen@ \penalty 9999\vskip -\dimen@\endgroup}
+
+\newcommand{\Needspace}{\@ifstar{\@sneedsp@}{\@needsp@}}
+
+\newcommand{\@sneedsp@}[1]{\par \penalty-100\begingroup
+  \setlength{\dimen@}{#1}%
+  \dimen@ii\pagegoal \advance\dimen@ii-\pagetotal
+  \ifdim \dimen@>\dimen@ii
+    \break
+  \fi\endgroup}
+
+\newcommand{\@needsp@}[1]{\par \penalty-100\begingroup
+  \setlength{\dimen@}{#1}%
+  \dimen@ii\pagegoal \advance\dimen@ii-\pagetotal
+  \ifdim \dimen@>\dimen@ii
+    \ifdim \dimen@ii>\z@
+      \vfil
+    \fi
+    \break
+  \fi\endgroup}
+
+\endinput
+
+%     Example uses:
+%
+% ... previous text.\par
+% \needspace{5\baselineskip} % need next 5 lines on a single page/column
+% The next five lines ...
+%
+% \Needspace*{4\baselineskip} % need 4 lines kept on same page
+%    The major principles are:
+% \begin{itemize}
+% \item ...
+% 
+%
+%     The \needspace macro reserves an APPROXIMATE amount of space (depending
+% on what penalties are in effect) but is efficient and normally adequate.
+% A short page will be ragged bottom even if \flushbottom is in
+% effect.
+%
+%     \Needspace is less efficient but reserves the requested space. It
+% should only be used between paragraphs. Short pages produced by 
+% \Needspace{<length>} will be ragged bottom but short pages produced by 
+% \Needspace*{<length>} will be flush bottom if \flushbottom is in effect.
+%
+% Changes v1.3b (2009/09/03)
+%   New maintainer (Will Robertson)
+%
+% Changes v1.3a (2003/02/18)
+%   At the suggestion of Donald Arseneau (private emails) changed guts of
+%   \needspace from 
+%   ... \vskip\z@\@plus\dimen@\pagebreak[3]\vskip\z@\@plus-\dimen@\endgroup}
+%
+% Changes v1.3 (2003/02/07)
+%   Added \Needspace (an extended version of postings by Donald Arseneau 
+%   to comp.text.tex e.g., in November 1993, August 1995, September 1997, ...)
+%
+% Changes v1.2 (2002/09/11)
+%   At the suggestion of Robin Fairbairns, added use of \dimen@ to capture 
+%   the argument so that calc package commands can be used in the argument.
+%
+% 
+%
-- 
cgit v1.2.3

