1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
%% LaTeX2e file `ltxtable.sty'
%% generated by the `filecontents' environment
%% from source `ltxtable' on 1999/01/07.
%%
%
%% ltxtable package (C) 1995 David Carlisle
%
% User documentation is in the file ltxtable.tex
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{ltxtable}
[1995/12/11 v0.2 longtable/tabularx merge (DPC)]
% \end{macrocode}
%
% May as get these in, going to need them...
% \begin{macrocode}
\RequirePackage{tabularx,longtable}
% \end{macrocode}
%
% \begin{macrocode}
\def\LTXtable#1#2{%
\begingroup
\TX@target#1\relax
\expandafter\TX@newcol\expandafter{\tabularxcolumn{\TX@col@width}}%
\def\@elt##1{\global\value{##1}\the\value{##1}\relax}%
\edef\TX@ckpt{\cl@@ckpt}%
\let\@elt\relax
\TX@old@table=\maxdimen
\TX@col@width=\TX@target
\global\TX@cols=\@ne
\TX@typeout@
{\@spaces Table Width\@spaces Column Width\@spaces X Columns}%
% \end{macrocode}
% Need to modify |\TX@trial| so that |longtable| functions are
% Subverted to do the measuring that |tabularx| normally does.
% Also during the trial runs each `chunk' is not unboxed so it just
% gets thrown away when the next chunk starts.
% \begin{macrocode}
\def\TX@trial##1{%
\setbox\@tempboxa=\hbox{%
% \end{macrocode}
% |\multicolum| A sad tale, For now just stop |longtable| messing with
% it, so that |tabularx| can mess with it.
% \begin{macrocode}
\let\LTmulticolumn\multicolumn
% \end{macrocode}
%
% \begin{macrocode}
\def\endlongtable{%
\LT@echunk
\global\setbox\@ne\hbox{\unhbox\@ne}%
\kern\wd\@ne
\LT@get@widths%
\endgroup}%
% \end{macrocode}
%
% \begin{macrocode}
\def\LT@ntabularcr{%
\ifnum0=`{}\fi
\LT@echunk
\LT@get@widths
\LT@bchunk}%
% \end{macrocode}
%
% \begin{macrocode}
\def\LT@argtabularcr[####1]{%
\ifnum0=`{}\fi
\ifdim ####1>\z@
\unskip\@xargarraycr{####1}\else \@yargarraycr{####1}\fi
\LT@echunk
\LT@get@widths
\LT@bchunk}%
% \end{macrocode}
%
% \begin{macrocode}
% Any extra commands. This is used on the first run to count the number
% of {\ttfamily X} columns.
% \begin{macrocode}
##1\relax
% \end{macrocode}
% Added at v1.05: dissable "\write"s during a trial run. This trick is
% from the \TeX{}Book.
% \begin{macrocode}
\let\immediate=\relax\def\write####1####{{\afterassignment}\toks@=}%
% \end{macrocode}
% Turn off warnings (see appendix D). Also prevent them being turned
% back on by setting the parameter names to be registers.
% \begin{macrocode}
\hbadness=\@M\hfuzz=\maxdimen
\let\hbadness=\@tempcnta\let\hfuzz=\@tempdima
% \end{macrocode}
% Make the table, and finish the hbox.
% Since v1.06, "\toks@" contains the preamble specification,
% and possible optional argument, as well as the table body.
% Well it does in |tabularx|, here the body is in an external file so
% just input it.
% \begin{macrocode}
\input{#2}\unskip}%
% \end{macrocode}
% Since v1.05 reset all \LaTeX\ counters, by executing "\TX@ckpt".
% \begin{macrocode}
\TX@ckpt
% \end{macrocode}
% Print some statistics.
% Added "\TX@align" in v1.05, to line up the columns.
% \begin{macrocode}
\TX@typeout@{\@spaces
\expandafter\TX@align
\the\wd\@tempboxa\space\space\space\space\space\@@
\expandafter\TX@align
\the\TX@col@width\space\space\space\space\space\@@
\@spaces\the\TX@cols}}%
% \end{macrocode}
% \end{macro}
\TX@trial{\def\NC@rewrite@X{%
\global\advance\TX@cols\@ne\NC@find p{\TX@col@width}}}%
\let\LT@make@row\LT@blank@row
\loop
\TX@arith
\ifTX@
\TX@trial{}%
\repeat
% \end{macrocode}
% On the last run, may as well run with |\setlongtables|.
% \begin{macrocode}
\let\LT@make@row\relax
\input{#2}%
\endgroup}
% \end{macrocode}
|