summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/carlisle/ltxtable.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/carlisle/ltxtable.sty')
-rw-r--r--Master/texmf-dist/tex/latex/carlisle/ltxtable.sty135
1 files changed, 135 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/carlisle/ltxtable.sty b/Master/texmf-dist/tex/latex/carlisle/ltxtable.sty
new file mode 100644
index 00000000000..d6e5ffb9d3a
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/carlisle/ltxtable.sty
@@ -0,0 +1,135 @@
+%% LaTeX2e file `ltxtable.sty'
+%% generated by the `filecontents' environment
+%% from source `ltxtable' on 2006/06/21.
+%%
+%
+%% ltxtable package (C) 1995 David Carlisle
+%%
+%% This file may be distributed under the terms of the LPPL.
+%% See 00readme.txt for details.
+%
+% 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}
+
+