summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/addlines
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-10-13 22:43:47 +0000
committerKarl Berry <karl@freefriends.org>2007-10-13 22:43:47 +0000
commitf20ec35ac0bb2ddf9fd31463dd01f118641309f4 (patch)
tree64daa2d4d9024955297b55054098e5f930f48f1b /Master/texmf-dist/source/latex/addlines
parent00fd18b649b5eaa172d3831df80680767d22be33 (diff)
new latex package addlines (13oct07)
git-svn-id: svn://tug.org/texlive/trunk@5178 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/addlines')
-rw-r--r--Master/texmf-dist/source/latex/addlines/addlines.dtx318
-rw-r--r--Master/texmf-dist/source/latex/addlines/addlines.ins64
2 files changed, 382 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/addlines/addlines.dtx b/Master/texmf-dist/source/latex/addlines/addlines.dtx
new file mode 100644
index 00000000000..fa39d15cbdc
--- /dev/null
+++ b/Master/texmf-dist/source/latex/addlines/addlines.dtx
@@ -0,0 +1,318 @@
+% \iffalse
+%<*internal>
+\iffalse
+%</internal>
+%<*readme>
+____________________
+The addlines package
+v0.1
+
+This package provides the command \addlines for adding
+or removing space in the textblock of the page it's
+used on. E.g., adding an extra line of text to the page
+so that a section fits better on the next page.
+
+It will also add space to the *facing* page in a
+two-sided document.
+
+______________
+Will Robertson
+wspr 81 [at] gmail [dot] com
+
+Copyright 2007
+Distributed under the LaTeX Project Public License
+%</readme>
+%<*internal>
+\fi
+\begingroup
+%</internal>
+%<*batchfile>
+\input docstrip.tex
+\keepsilent
+\preamble
+
+ __________________________________
+ Copyright (C) 2007 Will Robertson
+
+ License information appended.
+
+
+\endpreamble
+\postamble
+
+Copyright (C) 2007 by Will Robertson <wspr81@gmail.com>
+
+Distributable under the LaTeX Project Public License,
+version 1.3c or higher (your choice). The latest version of
+this license is at: http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status)
+by Will Robertson.
+
+This work consists of the files addlines.dtx and
+ addlines.ins,
+ and the derived files addlines.pdf,
+ addlines.sty, and
+ addlines-example.ltx.
+
+\endpostamble
+\askforoverwritefalse
+\generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}}}
+\generate{\file{\jobname-example.ltx}{\from{\jobname.dtx}{example}}}
+%</batchfile>
+%<batchfile>\endbatchfile
+%<*internal>
+\generate{\file{\jobname.ins}{\from{\jobname.dtx}{batchfile}}}
+\nopreamble\nopostamble
+\generate{\file{README.txt}{\from{\jobname.dtx}{readme}}}
+\generate{\file{prepare.sh}{\from{\jobname.dtx}{prepare}}}
+\generate{\file{dtx-style.sty}{\from{\jobname.dtx}{dtx-style}}}
+\endgroup
+\immediate\write18{makeindex -s gind.ist -o \jobname.ind \jobname.idx}
+\immediate\write18{makeindex -s gglo.ist -o \jobname.gls \jobname.glo}
+%</internal>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\usepackage{dtx-style}
+\begin{document}
+ \DocInput{addlines.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \GetFileInfo{\jobname.sty}
+% \CheckSum{0}
+% \makeatletter
+%
+% \title{The \pkg{\jobname} package}
+% \author{Will Robertson}
+% \date{\filedate \qquad \fileversion}
+%
+% \maketitle
+%
+% This is a small package that defines a user command for adding lines
+% to the current and facing page. This is intended to be used in the
+% final typesetting
+% process of a manuscript for running pages long or short in order to
+% fit their material better (starting a paragraph on the next page,
+% for example).
+%
+% The \cmd\addlines\ command adds enough vertical space to
+% the current text block to fit in one more line of text. An optional
+% argument specifies the number of lines to add; negative numbers
+% \emph{remove} space, and fractional numbers are fine, too. For
+% example:
+% \begin{center}
+% \begin{tabular}{l>{\itshape\small}l}
+% |\addlines| & adds one line to the current page height\\
+% |\addlines[2]| & adds two lines to the current page\\
+% |\addlines[-1]| & subtracts one line from the current page height
+% \end{tabular}
+% \end{center}
+%
+% The command should be placed somewhere near the middle of the page
+% that it is intending to affect. Too near the top and it may not be
+% seen in time (\LaTeX's page breaking routine is asynchronous).
+%
+% For syntactic sugar, \cmd{\addline} is a synonym for \cmd\addlines,
+% and \cmd{\removeline\textcolor{gray}(s\textcolor{gray})} is the opposite of \cmd\addlines.
+%
+% As mentioned in the introduction, for a double-sided document
+% (\eg, if the class option |[twoside]| is in
+% effect) extra height must be added to \emph{both pages} on a spread
+% for things to look good. If \cmd\addlines\ is called on an even page
+% (\ie, a \emph{verso} or left-side page) it adds the same space to its
+% facing page. Conversely, on an odd page (\ie, a \emph{recto} or right-side
+% page) an error is produced, but the space is still added.
+%
+% \subsection*{Notes}
+% This command is a wrapper around the more basic command
+% \cmd\enlargethispage. It uses the \pkg{chngpage} package to check if
+% the command is called on an even page, and the \pkg{afterpage}
+% package to add material to a facing odd page if necessary.
+%
+% The \pkg{chngpage} mechanism for detecting page number oddness may
+% require more than a single \LaTeX\ compilation to stabilise, so
+% false positives may occur. If \pkg{memoir} is used, its
+% \cmd\strictpagechecktrue\ command is executed.
+%
+% \pkg{afterpage} may conflict poorly with
+% other packages that modify \LaTeX's output routine (\ie, the
+% algorithm used to chunk the document into discrete pages).
+%
+% Uses $\varepsilon$-\TeX\ because I'm lazy.
+%
+% \subsection*{Example document}
+%
+% \begin{macrocode}
+%<*example>
+\documentclass[twoside]{article}
+\usepackage[a5paper,width=30em,lines=30]{geometry}
+\usepackage{lipsum,addlines}
+\begin{document}
+\lipsum[1-5]
+
+\emph{Here is the command used correctly on an even page.}
+\addlines
+
+\lipsum[6-15]
+
+\emph{Here is the command used erroneously on an odd page.}
+\addlines
+\end{document}
+%</example>
+% \end{macrocode}
+%
+%
+%
+% \StopEventually{}
+%
+% \clearpage
+% \part{\pkg{\jobname} implementation}
+%\iffalse
+%<*package>
+%\fi
+%
+%
+% \begin{macrocode}
+\ProvidesPackage{addlines}
+ [2007/10/13 v0.1 Add/remove lines from a page]
+% \end{macrocode}
+%
+% Packages:
+% \begin{macrocode}
+\RequirePackage{etex,afterpage,chngpage}
+% \end{macrocode}
+%
+% Detecting \pkg{memoir} for \pkg{chngpage} incompatibilities.
+% \begin{macrocode}
+\newif\ifpl@memoir
+\def\ifmemoir@tf{%
+ \ifpl@memoir\expandafter\@firstoftwo
+ \else\expandafter\@secondoftwo\fi}
+\@ifclassloaded{memoir}{\pl@memoirtrue}{\pl@memoirfalse}
+% \end{macrocode}
+%
+% \begin{macro}{\addlines}
+% \oarg{Number of lines to add to the text height}
+% \begin{macrocode}
+\newcommand\addlines[1][1]{%
+ \enlargethispage{#1\baselineskip}%
+ \if@twoside
+ \checkoddpage
+ \ifmemoir@tf\ifoddpage\ifcpoddpage
+ \PackageError{addlines}
+ {You're adding lines to the wrong page}
+ {Extra lines need to be added to both sides of a doublepage spread.^^J
+ This error might clear up after a recompile, though.}%
+ \else
+ \afterpage{\enlargethispage{#1\baselineskip}}%
+ \fi
+ \fi}
+\let\addline\addlines
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\removelines}
+% \oarg{Number of lines to remove from the text height}
+% Works with negative numbers through the miracles of $\varepsilon$-\TeX.
+% \begin{macrocode}
+\newcommand\removelines[1][1]{%
+ \addlines[\numexpr -1*(#1) \relax]}
+\let\removeline\removelines
+% \end{macrocode}
+% \end{macro}
+%
+% Finally, we don't want sloppy page number checking if we're using
+% \pkg{memoir}:
+% \begin{macrocode}
+\ifpl@memoir
+ \strictpagechecktrue
+\fi
+% \end{macrocode}
+%
+%\iffalse
+%</package>
+%\fi
+%
+%
+%\iffalse
+%<*dtx-style>
+% \begin{macrocode}
+\ProvidesPackage{dtx-style}
+
+\errorcontextlines=999
+
+\def\@dotsep{1000}
+\setcounter{tocdepth}{2}
+\setlength\columnseprule{0.1pt}
+\renewcommand\tableofcontents{\relax
+ \begin{multicols}{2}[\section*{\contentsname}]\small
+ \@starttoc{toc}\relax
+ \end{multicols}}
+
+\setcounter{IndexColumns}{2}
+\renewenvironment{theglossary}
+ {\small\list{}{}
+ \item\relax
+ \glossary@prologue\GlossaryParms
+ \let\item\@idxitem \ignorespaces
+ \def\pfill{\hspace*{\fill}}}
+ {\endlist}
+
+\usepackage{xcolor}
+\usepackage{array,booktabs,calc,enumitem,fancyvrb,addlines,ifthen,refstyle,varioref,titlesec,url}
+
+\usepackage[sc,osf]{mathpazo}
+
+\linespread{1.069} % A bit more space between lines
+\frenchspacing % Remove extra space after punctuation
+\setlength\parindent{2em}
+\definecolor{niceblue}{rgb}{0.2,0.4,0.8}
+\def\theCodelineNo{\textcolor{niceblue}{\sffamily\tiny\arabic{CodelineNo}}}
+
+\newcommand*\name[1]{{#1}}
+\newcommand*\pkg[1]{\textsf{#1}}
+\newcommand*\feat[1]{\texttt{#1}}
+\newcommand*\opt[1]{\texttt{#1}}
+\newcommand*\note[1]{\unskip\footnote{#1}}
+\let\latin\textit
+\def\eg{\latin{e.g.}}
+\def\Eg{\latin{E.g.}}
+\def\ie{\latin{i.e.}}
+\def\etc{\@ifnextchar.{\latin{etc}}{\latin{etc.}\@}}
+\def\CTAN{\textsc{ctan}}
+
+\newcounter{argument}
+\g@addto@macro\endmacro{\setcounter{argument}{0}}
+\newcommand*\darg[1]{%
+ \stepcounter{argument}%
+ {\ttfamily\char`\#\theargument~:~}#1\par\noindent\ignorespaces}
+\newcommand*\doarg[1]{%
+ \stepcounter{argument}%
+ {\ttfamily\makebox[0pt][r]{[}\char`\#\theargument]:~}#1\par\noindent\ignorespaces}
+
+\def\codeline{\par\hspace{\parindent}}% two \indents in total
+% \end{macrocode}
+%</dtx-style>
+%<*prepare>
+rm addlines.zip
+latex addlines.dtx
+mv README.txt README
+
+zip addlines.zip addlines.dtx addlines.ins addlines.pdf README
+%</prepare>
+%\fi
+% \typeout{*************************************************************}
+% \typeout{*}
+% \typeout{* To finish the installation you have to move the following}
+% \typeout{* file into a directory searched by XeTeX:}
+% \typeout{*}
+% \typeout{* \space\space\space addlines.sty}
+% \typeout{*}
+% \typeout{*************************************************************}
+\endinput
diff --git a/Master/texmf-dist/source/latex/addlines/addlines.ins b/Master/texmf-dist/source/latex/addlines/addlines.ins
new file mode 100644
index 00000000000..260a24ddcbb
--- /dev/null
+++ b/Master/texmf-dist/source/latex/addlines/addlines.ins
@@ -0,0 +1,64 @@
+%%
+%% This is file `addlines.ins',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% addlines.dtx (with options: `batchfile')
+%%
+%% __________________________________
+%% Copyright (C) 2007 Will Robertson
+%%
+%% License information appended.
+%%
+%%
+\input docstrip.tex
+\keepsilent
+\preamble
+
+ __________________________________
+ Copyright (C) 2007 Will Robertson
+
+ License information appended.
+
+\endpreamble
+\postamble
+
+Copyright (C) 2007 by Will Robertson <wspr81@gmail.com>
+
+Distributable under the LaTeX Project Public License,
+version 1.3c or higher (your choice). The latest version of
+this license is at: http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status)
+by Will Robertson.
+
+This work consists of the files addlines.dtx and
+ addlines.ins,
+ and the derived files addlines.pdf,
+ addlines.sty, and
+ addlines-example.ltx.
+
+\endpostamble
+\askforoverwritefalse
+\generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}}}
+\generate{\file{\jobname-example.ltx}{\from{\jobname.dtx}{example}}}
+\endbatchfile
+%%
+%% Copyright (C) 2007 by Will Robertson <wspr81@gmail.com>
+%%
+%% Distributable under the LaTeX Project Public License,
+%% version 1.3c or higher (your choice). The latest version of
+%% this license is at: http://www.latex-project.org/lppl.txt
+%%
+%% This work is "maintained" (as per LPPL maintenance status)
+%% by Will Robertson.
+%%
+%% This work consists of the files addlines.dtx and
+%% addlines.ins,
+%% and the derived files addlines.pdf,
+%% addlines.sty, and
+%% addlines-example.ltx.
+%%
+%%
+%% End of file `addlines.ins'.