From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/needspace/README | 79 +++++++++++++ macros/latex/contrib/needspace/needspace.ins | 4 + macros/latex/contrib/needspace/needspace.pdf | Bin 0 -> 157011 bytes macros/latex/contrib/needspace/needspace.tex | 163 +++++++++++++++++++++++++++ 4 files changed, 246 insertions(+) create mode 100644 macros/latex/contrib/needspace/README create mode 100644 macros/latex/contrib/needspace/needspace.ins create mode 100644 macros/latex/contrib/needspace/needspace.pdf create mode 100644 macros/latex/contrib/needspace/needspace.tex (limited to 'macros/latex/contrib/needspace') diff --git a/macros/latex/contrib/needspace/README b/macros/latex/contrib/needspace/README new file mode 100644 index 0000000000..46c02494ff --- /dev/null +++ b/macros/latex/contrib/needspace/README @@ -0,0 +1,79 @@ + +The NEEDSPACE package +===================== + +Provides the \needspace and \Needspace macros for +requesting a certain amount of space on the current +page for the following material. + + +INSTALLATION +------------ + +Run `pdflatex` on needspace.tex to produce the files + needspace.ins and needspace.sty, +as well as to compile the PDF documentation. + +Execute `tex needspace.ins` to produce the files above +except needspace.ins itself (and the PDF file, obviously). + + +CHANGE HISTORY +-------------- + +* v1.3c (2010/09/12): + Patch to improve behaviour with commands like `\section` that use + `\addvspace`. See [this thread][ctt] on comp.text.tex. + +[ctt]: http://groups.google.com/group/comp.text.tex/browse_frm/thread/8d849a1e0be2120e + +* v1.3b (2009/09/03): + New maintainer (Will Robertson) + +* 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} + +* 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, ...) + +* 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. + + +COPYRIGHT AND LICENSING +----------------------- + +Authors: Donald Arseneau and Peter Wilson (Herries Press) +Maintainer: Will Robertson (will dot robertson at latex-project dot org) +Copyright 1996-2003 Peter Wilson +Copyright 2010 Will Robertson + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either +version 1.3c of this license or (at your option) any +later version: + +This work has the LPPL maintenance status "maintained". +The Current Maintainer of this work is Will Robertson. + +This work consists of the files needspace.tex and the +derived files needspace.sty and needspace.ins. + + +MAINTENANCE +----------- + +Please report bugs or request features: + + +Developmental and historical versions: + + +Current release version: + + diff --git a/macros/latex/contrib/needspace/needspace.ins b/macros/latex/contrib/needspace/needspace.ins new file mode 100644 index 0000000000..1d8548d8c2 --- /dev/null +++ b/macros/latex/contrib/needspace/needspace.ins @@ -0,0 +1,4 @@ +%&latex +\def\documentationCompile{N} +\input needspace.tex +\csname@@end\endcsname diff --git a/macros/latex/contrib/needspace/needspace.pdf b/macros/latex/contrib/needspace/needspace.pdf new file mode 100644 index 0000000000..385ac3b4ea Binary files /dev/null and b/macros/latex/contrib/needspace/needspace.pdf differ diff --git a/macros/latex/contrib/needspace/needspace.tex b/macros/latex/contrib/needspace/needspace.tex new file mode 100644 index 0000000000..fc7c81e92f --- /dev/null +++ b/macros/latex/contrib/needspace/needspace.tex @@ -0,0 +1,163 @@ + +%%%%%%%%%1%%%%%%%%%2%%%%%%%%%3%%%%%%%%%4%%%%%%%%%5%%%%%%%%%6 +% Bundled source file for the NEEDSPACE package +%--------1---------2---------3---------4---------5---------6 +% Please see the accompanying README for author, +% license, documentation and installation information +%%%%%%%%%1%%%%%%%%%2%%%%%%%%%3%%%%%%%%%4%%%%%%%%%5%%%%%%%%%6 + + +%%%%%%%%%%%%%%%%%%%% +%% PACKAGE SOURCE %% +%%%%%%%%%%%%%%%%%%%% + +\RequirePackage{filecontents} +\begin{filecontents*}{needspace.sty} + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{needspace}[2010/09/12 v1.3d 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@ + \vskip\z@skip % hide the previous |\vskip| from |\addvspace| + \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} + +\end{filecontents*} +%%%%%%%%%1%%%%%%%%%2%%%%%%%%%3%%%%%%%%%4%%%%%%%%%5 + + +% Conditionally compile the documentation & generate the .ins file: +\providecommand\documentationCompile{Y} +\makeatletter +\if\documentationCompile N + \expandafter\@@end +\fi + + +\begin{filecontents*}{needspace.ins} +%&latex +\def\documentationCompile{N} +\input needspace.tex +\csname@@end\endcsname +\end{filecontents*} + + +%%%%%%%%%%%%%%%%%%% +%% DOCUMENTATION %% +%%%%%%%%%%%%%%%%%%% + +\documentclass{ltxdoc} +\usepackage[it,medium]{titlesec} +\usepackage[T1]{fontenc} +\usepackage{microtype} +\usepackage{lmodern} +\usepackage[sc,osf]{mathpazo} +\linespread{1.1} +\frenchspacing + +\usepackage{fancyvrb} + +\usepackage[svgnames]{xcolor} +\usepackage[colorlinks,linktocpage]{hyperref} +\DeclareRobustCommand\pkg{\textsf} + +\usepackage{needspace} +\GetFileInfo{needspace.sty} + +\begin{document} + +\title{The \pkg{needspace} package} +\author{% + Author: Peter Wilson, Herries Press\\ + Maintainer: Will Robertson\\ + \texttt{will dot robertson at latex-project dot org}% +} +\date{\fileversion \qquad \filedate} + +\maketitle + +\section{Documentation} + +This packages two commands, \cs{needspace} and \cs{Needspace}, for reserving +space to keep a certain amount of material from being split over a page break. +If there is not enough space, a \verb|\newpage| is automatically inserted. + +The \cs{needspace}\meta{length} macro reserves an \emph{approximate} amount of space \meta{length} for +the material following to be kept on the same page. The accuracy of its +calculations depend on what penalties are in effect, but is efficient and +normally adequate. A short page will be ragged bottom even if \cs{flushbottom} +is in effect. + +\cs{Needspace}\marg{length} is less efficient but reserves the requested space \meta{length} exactly. It +should only be used between paragraphs. Short pages that are produced by +\cs{Needspace} will be ragged bottom but short pages produced by +\cs{Needspace*}\marg{length} will be flush bottom if \cs{flushbottom} is in +effect. + +\section{Examples} + +Here, we request that we need next five lines on a single page/column: +\begin{verbatim} +... previous text. + +\needspace{5\baselineskip} +The next five lines ... +\end{verbatim} + +\newpage +\noindent +In this case, the space is reserved more accurately: +\begin{verbatim} +... previous text. + +\Needspace*{4\baselineskip} + The major principles are: +\begin{itemize} +\item ... +\end{verbatim} + + +\section*{Licence and copyright} + +This work may be modified and/or distributed under the terms and +conditions of the \LaTeX\ Project Public License\footnote{\url{http://www.latex-project.org/lppl.txt}}, version~1.3c or later (your choice). +The current maintainer of this work is Will Robertson. + +\bigskip + \noindent + Copyright Peter Wilson, 1996--2003 \\ + Copyright Will Robertson, 2010, 2013 + +\clearpage +\parindent=0pt + +\section{Implementation} +\VerbatimInput{needspace.sty} + +\end{document} -- cgit v1.2.3