You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
135 lines
3.8 KiB
135 lines
3.8 KiB
%% LaTeX2e file `ltxtable.sty'
|
|
%% generated by the `filecontents' environment
|
|
%% from source `ltxtable' on 2018/05/30.
|
|
%%
|
|
%
|
|
%% 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}
|
|
|
|
|
|
|