[freeside-commits] freeside/etc fslongtable.sty,NONE,1.1
Jeff Finucane,420,,
jeff at wavetail.420.am
Mon Dec 29 10:06:24 PST 2008
Update of /home/cvs/cvsroot/freeside/etc
In directory wavetail.420.am:/tmp/cvs-serv7333/etc
Added Files:
fslongtable.sty
Log Message:
ease deployment of patched longtable
--- NEW FILE: fslongtable.sty ---
%%
%% This is file `fslongtable.sty',
%%
%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
%% This file was forked from file(s) of the Standard LaTeX `Tools Bundle'.
%% This file includes a new length LTextracouponspace which modifies
%% the behavior of the package at the end of a page. This feature
%% and package is not supported or acknowledged by Dave Carlisle.
%% Do not contact him for such support.
%% --------------------------------------------------------------------------
%%
%% It may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2003/12/01 or later.
%%
%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle
%% File: fslongtable.sty Copyright (C) 2008 Jeff Finucane
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
\ProvidesPackage{longtable}
[2004/02/01 v4.11 Multi-page Table package (DPC)]
\def\LT at err{\PackageError{longtable}}
\def\LT at warn{\PackageWarning{longtable}}
\def\LT at final@warn{%
\AtEndDocument{%
\LT at warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}%
\global\let\LT at final@warn\relax}
\DeclareOption{errorshow}{%
\def\LT at warn{\PackageInfo{longtable}}}
\DeclareOption{pausing}{%
\def\LT at warn#1{%
\LT at err{#1}{This is not really an error}}}
\DeclareOption{set}{}
\DeclareOption{final}{}
\ProcessOptions
\newskip\LTleft \LTleft=\fill
\newskip\LTright \LTright=\fill
\newskip\LTpre \LTpre=\bigskipamount
\newskip\LTpost \LTpost=\bigskipamount
\newcount\LTchunksize \LTchunksize=20
\let\c at LTchunksize\LTchunksize
\newdimen\LTcapwidth \LTcapwidth=4in
\newlength\LTextracouponspace
\newbox\LT at head
\newbox\LT at firsthead
\newbox\LT at foot
\newbox\LT at lastfoot
\newcount\LT at cols
\newcount\LT at rows
\newcounter{LT at tables}
\newcounter{LT at chunks}[LT at tables]
\ifx\c at table\undefined
\newcounter{table}
\def\fnum at table{\tablename~\thetable}
\fi
\ifx\tablename\undefined
\def\tablename{Table}
\fi
\newtoks\LT at p@ftn
\mathchardef\LT at end@pen=30000
\def\longtable{%
\par
\ifx\multicols\@undefined
\else
\ifnum\col at number>\@ne
\@twocolumntrue
\fi
\fi
\if at twocolumn
\LT at err{longtable not in 1-column mode}\@ehc
\fi
\begingroup
\@ifnextchar[\LT at array{\LT at array[x]}}
\def\LT at array[#1]#2{%
\refstepcounter{table}\stepcounter{LT at tables}%
\if l#1%
\LTleft\z@ \LTright\fill
\else\if r#1%
\LTleft\fill \LTright\z@
\else\if c#1%
\LTleft\fill \LTright\fill
\fi\fi\fi
\let\LT at mcol\multicolumn
\let\LT@@tabarray\@tabarray
\let\LT@@hl\hline
\def\@tabarray{%
\let\hline\LT@@hl
\LT@@tabarray}%
\let\\\LT at tabularcr\let\tabularnewline\\%
\def\newpage{\noalign{\break}}%
\def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT at no@pgbk-}4}%
\def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT at no@pgbk4}%
\let\hline\LT at hline \let\kill\LT at kill\let\caption\LT at caption
\@tempdima\ht\strutbox
\let\@endpbox\LT at endpbox
\ifx\extrarowheight\@undefined
\let\@acol\@tabacol
\let\@classz\@tabclassz \let\@classiv\@tabclassiv
\def\@startpbox{\vtop\LT at startpbox}%
\let\@@startpbox\@startpbox
\let\@@endpbox\@endpbox
\let\LT at LL@FM at cr\@tabularcr
\else
\advance\@tempdima\extrarowheight
\col at sep\tabcolsep
\let\@startpbox\LT at startpbox\let\LT at LL@FM at cr\@arraycr
\fi
\setbox\@arstrutbox\hbox{\vrule
\@height \arraystretch \@tempdima
\@depth \arraystretch \dp \strutbox
\@width \z@}%
\let\@sharp##\let\protect\relax
\begingroup
\@mkpream{#2}%
\xdef\LT at bchunk{%
\global\advance\c at LT@chunks\@ne
\global\LT at rows\z@\setbox\z@\vbox\bgroup
\LT at setprevdepth
\tabskip\LTleft \noexpand\halign to\hsize\bgroup
\tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}%
\endgroup
\expandafter\LT at nofcols\LT at bchunk&\LT at nofcols
\LT at make@row
\m at th\let\par\@empty
\everycr{}\lineskip\z@\baselineskip\z@
\LT at bchunk}
\def\LT at no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}}
\def\LT at start{%
\let\LT at start\endgraf
\endgraf\penalty\z@\vskip\LTpre
\dimen@\pagetotal
\advance\dimen@ \ht\ifvoid\LT at firsthead\LT at head\else\LT at firsthead\fi
\advance\dimen@ \dp\ifvoid\LT at firsthead\LT at head\else\LT at firsthead\fi
\advance\dimen@ \ht\LT at foot
\advance\dimen@ \LTextracouponspace
\dimen at ii\vfuzz
\vfuzz\maxdimen
\setbox\tw@\copy\z@
\setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
\setbox\tw@\vbox{\unvbox\tw@}%
\vfuzz\dimen at ii
\advance\dimen@ \ht
\ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
\advance\dimen@\dp
\ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
\advance\dimen@ -\pagegoal
\ifdim \dimen@>\z@\vfil\break\fi
\global\@colroom\@colht
\ifnum\thepage=1
\advance\vsize-\LTextracouponspace
\dimen@\pagegoal\advance\dimen at -\LTextracouponspace\pagegoal\dimen@
\fi
\ifvoid\LT at foot\else
\advance\vsize-\ht\LT at foot
\global\advance\@colroom-\ht\LT at foot
\dimen@\pagegoal\advance\dimen at -\ht\LT at foot\pagegoal\dimen@
\maxdepth\z@
\fi
\ifvoid\LT at firsthead\copy\LT at head\else\box\LT at firsthead\fi\nobreak
\output{\LT at output}}
\def\endlongtable{%
\crcr
\noalign{%
\let\LT at entry\LT at entry@chop
\xdef\LT at save@row{\LT at save@row}}%
\LT at echunk
\LT at start
\unvbox\z@
\LT at get@widths
\if at filesw
{\let\LT at entry\LT at entry@write\immediate\write\@auxout{%
\gdef\expandafter\noexpand
\csname LT@\romannumeral\c at LT@tables\endcsname
{\LT at save@row}}}%
\fi
\ifx\LT at save@row\LT@@save at row
\else
\LT at warn{Column \@width s have changed\MessageBreak
in table \thetable}%
\LT at final@warn
\fi
\endgraf\penalty -\LT at end@pen
\endgroup
\global\@mparbottom\z@
\pagegoal\vsize
\endgraf\penalty\z@\addvspace\LTpost
\ifvoid\footins\else\insert\footins{}\fi}
\def\LT at nofcols#1&{%
\futurelet\@let at token\LT at n@fcols}
\def\LT at n@fcols{%
\advance\LT at cols\@ne
\ifx\@let at token\LT at nofcols
\expandafter\@gobble
\else
\expandafter\LT at nofcols
\fi}
\def\LT at tabularcr{%
\relax\iffalse{\fi\ifnum0=`}\fi
\@ifstar
{\def\crcr{\LT at crcr\noalign{\nobreak}}\let\cr\crcr
\LT at t@bularcr}%
{\LT at t@bularcr}}
\let\LT at crcr\crcr
\let\LT at setprevdepth\relax
\def\LT at t@bularcr{%
\global\advance\LT at rows\@ne
\ifnum\LT at rows=\LTchunksize
\gdef\LT at setprevdepth{%
\prevdepth\z@\global
\global\let\LT at setprevdepth\relax}%
\expandafter\LT at xtabularcr
\else
\ifnum0=`{}\fi
\expandafter\LT at LL@FM at cr
\fi}
\def\LT at xtabularcr{%
\@ifnextchar[\LT at argtabularcr\LT at ntabularcr}
\def\LT at ntabularcr{%
\ifnum0=`{}\fi
\LT at echunk
\LT at start
\unvbox\z@
\LT at get@widths
\LT at bchunk}
\def\LT at argtabularcr[#1]{%
\ifnum0=`{}\fi
\ifdim #1>\z@
\unskip\@xargarraycr{#1}%
\else
\@yargarraycr{#1}%
\fi
\LT at echunk
\LT at start
\unvbox\z@
\LT at get@widths
\LT at bchunk}
\def\LT at echunk{%
\crcr\LT at save@row\cr\egroup
\global\setbox\@ne\lastbox
\unskip
\egroup}
\def\LT at entry#1#2{%
\ifhmode\@firstofone{&}\fi\omit
\ifnum#1=\c at LT@chunks
\else
\kern#2\relax
\fi}
\def\LT at entry@chop#1#2{%
\noexpand\LT at entry
{\ifnum#1>\c at LT@chunks
1}{0pt%
\else
#1}{#2%
\fi}}
\def\LT at entry@write{%
\noexpand\LT at entry^^J%
\@spaces}
\def\LT at kill{%
\LT at echunk
\LT at get@widths
\expandafter\LT at rebox\LT at bchunk}
\def\LT at rebox#1\bgroup{%
#1\bgroup
\unvbox\z@
\unskip
\setbox\z@\lastbox}
\def\LT at blank@row{%
\xdef\LT at save@row{\expandafter\LT at build@blank
\romannumeral\number\LT at cols 001 }}
\def\LT at build@blank#1{%
\if#1m%
\noexpand\LT at entry{1}{0pt}%
\expandafter\LT at build@blank
\fi}
\def\LT at make@row{%
\global\expandafter\let\expandafter\LT at save@row
\csname LT@\romannumeral\c at LT@tables\endcsname
\ifx\LT at save@row\relax
\LT at blank@row
\else
{\let\LT at entry\or
\if!%
\ifcase\expandafter\expandafter\expandafter\LT at cols
\expandafter\@gobble\LT at save@row
\or
\else
\relax
\fi
!%
\else
\aftergroup\LT at blank@row
\fi}%
\fi}
\let\setlongtables\relax
\def\LT at get@widths{%
\setbox\tw@\hbox{%
\unhbox\@ne
\let\LT at old@row\LT at save@row
\global\let\LT at save@row\@empty
\count@\LT at cols
\loop
\unskip
\setbox\tw@\lastbox
\ifhbox\tw@
\LT at def@row
\advance\count@\m at ne
\repeat}%
\ifx\LT@@save at row\@undefined
\let\LT@@save at row\LT at save@row
\fi}
\def\LT at def@row{%
\let\LT at entry\or
\edef\@tempa{%
\ifcase\expandafter\count@\LT at old@row
\else
{1}{0pt}%
\fi}%
\let\LT at entry\relax
\xdef\LT at save@row{%
\LT at entry
\expandafter\LT at max@sel\@tempa
\LT at save@row}}
\def\LT at max@sel#1#2{%
{\ifdim#2=\wd\tw@
#1%
\else
\number\c at LT@chunks
\fi}%
{\the\wd\tw@}}
\def\LT at hline{%
\noalign{\ifnum0=`}\fi
\penalty\@M
\futurelet\@let at token\LT@@hline}
\def\LT@@hline{%
\ifx\@let at token\hline
\global\let\@gtempa\@gobble
\gdef\LT at sep{\penalty-\@medpenalty\vskip\doublerulesep}%
\else
\global\let\@gtempa\@empty
\gdef\LT at sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}%
\fi
\ifnum0=`{\fi}%
\multispan\LT at cols
\unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
\noalign{\LT at sep}%
\multispan\LT at cols
\unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
\noalign{\penalty\@M}%
\@gtempa}
\def\LT at caption{%
\noalign\bgroup
\@ifnextchar[{\egroup\LT at c@ption\@firstofone}\LT at capti@n}
\def\LT at c@ption#1[#2]#3{%
\LT at makecaption#1\fnum at table{#3}%
\def\@tempa{#2}%
\ifx\@tempa\@empty\else
{\let\\\space
\addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}%
\fi}
\def\LT at capti@n{%
\@ifstar
{\egroup\LT at c@ption\@gobble[]}%
{\egroup\@xdblarg{\LT at c@ption\@firstofone}}}
\def\LT at makecaption#1#2#3{%
\LT at mcol\LT at cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{%
\sbox\@tempboxa{#1{#2: }#3}%
\ifdim\wd\@tempboxa>\hsize
#1{#2: }#3%
\else
\hbox to\hsize{\hfil\box\@tempboxa\hfil}%
\fi
\endgraf\vskip\baselineskip}%
\hss}}}
\def\LT at output{%
\ifnum\outputpenalty <-\@Mi
\ifnum\outputpenalty > -\LT at end@pen
\LT at err{floats and marginpars not allowed in a longtable}\@ehc
\else
\setbox\z@\vbox{\unvbox\@cclv}%
\ifdim \ht\LT at lastfoot>\ht\LT at foot
\dimen@\pagegoal
\advance\dimen at -\ht\LT at lastfoot
\ifdim\dimen@<\ht\z@
\setbox\@cclv\vbox{\unvbox\z@\copy\LT at foot\vss}%
\@makecol
\@outputpage
\setbox\z@\vbox{\box\LT at head}%
\fi
\fi
\global\@colroom\@colht
\global\vsize\@colht
\vbox
{\unvbox\z@\box\ifvoid\LT at lastfoot\LT at foot\else\LT at lastfoot\fi}%
\fi
\else
\setbox\@cclv\vbox{\unvbox\@cclv\copy\LT at foot\vss}%
\@makecol
\@outputpage
\global\vsize\@colroom
\copy\LT at head\nobreak
\fi}
\def\LT at end@hd at ft#1{%
\LT at echunk
\ifx\LT at start\endgraf
\LT at err
{Longtable head or foot not at start of table}%
{Increase LTchunksize}%
\fi
\setbox#1\box\z@
\LT at get@widths
\LT at bchunk}
\def\endfirsthead{\LT at end@hd at ft\LT at firsthead}
\def\endhead{\LT at end@hd at ft\LT at head}
\def\endfoot{\LT at end@hd at ft\LT at foot}
\def\endlastfoot{\LT at end@hd at ft\LT at lastfoot}
\def\LT at startpbox#1{%
\bgroup
\let\@footnotetext\LT at p@ftntext
\setlength\hsize{#1}%
\@arrayparboxrestore
\vrule \@height \ht\@arstrutbox \@width \z@}
\def\LT at endpbox{%
\@finalstrut\@arstrutbox
\egroup
\the\LT at p@ftn
\global\LT at p@ftn{}%
\hfil}
\def\LT at p@ftntext#1{%
\edef\@tempa{\the\LT at p@ftn\noexpand\footnotetext[\the\c at footnote]}%
\global\LT at p@ftn\expandafter{\@tempa{#1}}}%
\endinput
%%
%% End of file `longtable.sty'.
More information about the freeside-commits
mailing list