%% LaTeX2e file `ltxtable.sty' %% generated by the `filecontents' environment %% from source `ltxtable' on 2021/06/13. %% % %% ltxtable package (C) 1995, 2021 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} [2021/06/13 v0.4 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 % from 2021 longtable uses an allocated box \LT@gbox not \box1 \global\setbox\LT@gbox\hbox{\unhbox\LT@gbox}% \kern\wd\LT@gbox \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}